数据结构与算法 链表的操作

tepedef struct Node{int date;struct Node *next;} List;//创建一个链表void CreatList(List **ptrl){(**ptrl)=(List*)malloc(sizeof(List));(*List)->next=NULL;} //求长度 int length(List *ptrl){List *p=ptrl;int j=0;while(p){p=p->next;j++;}return j;}//按序号查找 int FindList(List *ptrl,int k){List *p=ptrl;int i=1;while(p!=NULL&&i<k){p=p->next;i++}if(i=k)return p;elsereturn NULL;}//按值查找List *Find(int x,List *ptrl){List *p=ptrl;while(p!=NULL&&p->date!=x)p=p->next;return p;}//链表的插入List* InsertList(int *e,List *ptrl,int i){List *p,*s;if(i==1)//插入的元素在表头 {s=(List*)malloc(sizeof(List));s->date=x;s->next=ptrl;return s;}p=Find(i-1,ptrl)//如果要插入的元素为空则返回if(p==NULL){printf("canshucuowu");return NULL;}else{s=(List*)malloc(sizeof(List));//插入操作s->date=x;s->next=p->next;p->next=s;return ptrl;}}//链表的删除 List* DelseteList(int *e,List *ptrl,int i,) { List *p,*s; if(i==1) { s=ptrl; if(ptrl!=NULL) ptrl=ptrl->next; else ruturn NULL; free(s); return ptrl; } p=Find(i-1,ptrl) if(p==NULL) { printf("bucunzia1");return ; } else { s=p->next; p->next=s->next; free(s); } }

,两粒种子,一片森林。

数据结构与算法 链表的操作

相关文章:

你感兴趣的文章:

标签云: