资源描述:
《单链表的插入与删除运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单链表的插入与删除运算一、题目线性表采用链式存储结构:编写程序实现以下功能1、初始化链表h2、依次采用尾插法插入a,b,c,d,e元素3、输出单链表h4、删除单链表h的第3个元素5、输出单链表h6、释放单链表h二、程序清单#include"stdlib.h"#include"stdio.h"typedefcharElemType;/*链表的存储结构*/typedefstructLNode{ElemTypedata;-7-structLNode*next;}LinkList;/*链表的基本操作*//*******1.初始化链表******/voidInitList(
2、LinkList*&L){L=(LinkList*)malloc(sizeof(LinkList));L->next=NULL;}/*******2.销毁链表******/voidDestroyList(LinkList*&L){LinkList*p=L,*q=p->next;while(q!=NULL){free(p);p=q;q=p->next;}-7-free(p);}/*******3.输出链表******/voidDispList(LinkList*L){LinkList*p=L->next;while(p!=NULL){printf("%ct",p-
3、>data);p=p->next;}printf("");}/*******4.链表的插入******/boolListInsert(LinkList*&L,inti,ElemTypee){LinkList*p,*q;intj;p=L;-7-j=0;while(p&&jnext;++j;}if(!p
4、
5、j>i-1)exit(1);q=(LinkList*)malloc(sizeof(LinkList));q->data=e;q->next=p->next;p->next=q;returnp;}/*******5.链表的删除******/b
6、oolListDelete(LinkList*&L,inti,ElemType&e){intj=0;-7-LinkList*p,*q;p=L;while(p->next&&jnext;++j;}if(!(p->next)
7、
8、j>i-1)exit(1);q=p->next;p->next=q->next;free(q);returnp;}/*主函数*/voidmain(){LinkList*h;ElemTypee;printf("单链表的基本运算如下:");-7-printf("1.初始化链表h");InitList(h);printf
9、("2.依次采用尾插法插入a,b,c,d,e元素");ListInsert(h,1,'a');ListInsert(h,2,'b');ListInsert(h,3,'c');ListInsert(h,4,'d');ListInsert(h,5,'e');printf("3.输出单链表h:");DispList(h);printf("4.删除单链表h的第3个元素:");ListDelete(h,3,e);printf("5.输出单链表h:");DispList(h);printf("6.释放单链表h:");-7-DestroyList(h);}三
10、、程序调试过程中所出现的错误1,符号错误2。语句错误四、运行结果:五、心得体会用C语言进行单链表的运算简单明了-7-