📄 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)>0||strcmp(p->data.name,key)<0)
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,int i,Consumer e){//插入到第i个之前
Node * pre,* s;
int k;
if(i<1) return ERROR;
pre=L;
k=0;
while(pre!=NULL&&k<i-1){//null
pre=pre->next;
k=k+1;
}
if(!pre){
printf("It is not a reasonable position.\n");
return ERROR;
}
s=(Node*)malloc(sizeof(Node));
s->data=e;
s->next=pre->next;
pre->next=s;
return OK;
}//insert
//删除结点
int DelList(LinkList L,char e[]){//type
Node * pre,* r;
pre=L;
while(pre->next!=0 && strcmp(pre->data.name,e)){
pre=pre->next;
}
if(!(pre->next) || strcmp(pre->next->data.name , e)){
printf("The position of the node to be deleted is not reasonable.\n");
return ERROR;
}
r=pre->next;
pre->next = pre->next->next;
free(r);
return OK;
}//delete
/*int main(){
LinkList L;
Consumer c;
InitList(&L);
CreateFromHead(L);
DelList(L,"name");
/*printf("name num grade\n");
scanf("%s%d%d",c.name,&c.num,&c.grade);
InsList(L,3,c);
Get(L,"hzf");
return 1;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -