数据结构与算法 链表的操作
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; else return 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); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。