📄 linklist.cpp
字号:
#include<iostream>
#include<string>
using namespace std;
#include<stdio.h>
#include "LinkList.h"
//初始化链表
void InitList(LinkList * L){
*L=(LinkList)malloc(sizeof(Node));
(*L)->next=0;
}
//头插法建立链表
void CreateFromHead(LinkList L){
Node * s;
Consumer c;
int flag=1;
while(flag){
printf("name num grade\n");
scanf("%s%d%d",c.name,&c.num,&c.grade);//intputing a node
if(strcmp(c.name,"$")){
s=(Node*)malloc(sizeof(Node));
strcpy(s->data.name,c.name);
s->data.num=c.num;
s->data.grade=c.grade;
s->next=L->next;
L->next=s;
}
else flag=0;
}
}
//查找,输出
int Get(LinkList L,char x[]){
Node * p;
p=L;
//if(x==0) return 0;
while((p->next!=0)&&(strcmp(p->data.name,x)>0||strcmp(p->data.name,x)<0))
p=p->next;
if(strcmp(p->data.name,x)==0) {
printf("name:%s num:%d grade:%d\n",p->data.name,p->data.num,p->data.grade);
return 1;
}
else return 0;
}
//按客户名查找定位
Node * Locate(LinkList L,char key[]){//name
Node * p;
p=L->next;
while(p != 0)//null
if(strcmp(p->data.name,key))
p=p->next;
else break;
return p;
}
//表长
int ListLength(LinkList L){
Node * p;
int j=0;
p=L->next;
while(p!=0){ //null
p=p->next;
j++;
}
return j;
}
//插入结点
int InsList(LinkList L,Consumer e){//按姓名从大到小有序
Node * pre,*q,* s;
pre = L;
q = L->next;
while (q!=NULL&& strcmp(q->data.name , e.name) > 0){ //null
q = q->next;
pre=pre->next;
}
s=(Node*)malloc(sizeof(Node));
s->data=e;
s->next=q;
pre->next=s;
return OK;
}//insert
//删除结点
int DelList(LinkList L,char e[]){//type
Node * pre,* r;
pre=L;
while(pre->next!=0 && strcmp(pre->next->data.name,e)){
pre=pre->next;
}
if(!(pre->next) || strcmp(pre->next->data.name , e))
return ERROR;
r=pre->next;
pre->next = pre->next->next;
free(r);
return OK;
}//delete
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -