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

来源:互联网 发布:淘宝网羊毛衫外套 编辑:程序博客网 时间:2024/05/17 02:08
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);  } }

0 0
原创粉丝点击