资源描述:
《算法与数据结构动态链表》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、#include#include#includetypedefintelemtype;typedefstructnode{elemtypedata;structnode*next;}LinkList;LinkList*head;LinkList*creat_LinkList()//建立链表{elemtypeix;LinkList*jl,*p;head=(LinkList*)malloc(sizeof(LinkList));head->next=NULL;printf("请输入数据,输入0结束:");scanf("%d",&
2、ix);while(ix!=0){p=(LinkList*)malloc(sizeof(LinkList));p->data=ix;p->next=head->next;head->next=p;scanf("%d",&ix);}return(jl);}intLinkList_Length(LinkList*head)//表长{intj=0;LinkList*p=head;while(p->next!=NULL){p=p->next;j++;}returnj;}voidSearch_LinkList(LinkList*head,intkey)//查找{intimark=1;Link
3、List*p;p=head->next;while(p!=NULL){if(p->data!=key){p=p->next;imark++;}elsebreak;}if(p==NULL)printf("查找失败");elseprintf("查找的值在第%d位",imark);}Insert(LinkList*head,inth,inti)//在链表第i个结点处插入新元素//{intk=1;LinkList*p=head->next;LinkList*L;L=(LinkList*)malloc(sizeof(LinkList));L->data=h;if(i==1){L->nex
4、t=head->next;head->next=L;}while(p!=NULL&&knext;k++;}if(p==NULL){printf("位置错误");}else{L->next=p->next;p->next=L;printf("插入成功");}}voidprint_LinkList(LinkList*head)//输出{intk;LinkList*p=head->next;while(p!=NULL){printf("t%d",p->data);p=p->next;k++;if(k%5==0)printf(""
5、);}}voiddeleteno_LinkList(LinkList*head,inti)//删除{intk=1;LinkList*p=head->next,*r;if(i==1){head->next=p->next;free(p);printf("删除成功!");}while(p->next!=NULL&&knext;k++;}if(p->next==NULL){printf("删除的位置不存在!");}else{r=p->next;p->next=r->next;free(r);printf("删除成功!");}}vo
6、idmain(){intkey,x,sc,ids,i,h,m;LinkList*p,*jl;for(;;){system("cls");printf("请选择操作:tttt1------输入数据tttt2------输出表长tttt3------查找数据tttt4------插入数据tttt5------输出数据tttt6------删除数据tttt7------退出系统");scanf("%d",&ids);if(ids==1){creat_LinkList(jl);printf("按任意
7、键···");getch();}elseif(ids==2){printf("表长为:%d",LinkList_Length(head));printf("按任意键···");getch();}elseif(ids==3){printf("请输入要查找的值:");scanf("%d",&key);Search_LinkList(head,key);printf("按任意键···");getch();}elseif(ids==4){print