单链表的操作1ppt课件

单链表的操作1ppt课件

ID:17427412

大小:113.50 KB

页数:22页

时间:2018-08-31

单链表的操作1ppt课件_第1页
单链表的操作1ppt课件_第2页
单链表的操作1ppt课件_第3页
单链表的操作1ppt课件_第4页
单链表的操作1ppt课件_第5页
资源描述:

《单链表的操作1ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单链表的操作Week04&Week05建立链表输出链表链表的删除链表的插入需要掌握的内容建立链表(静态/动态)静态建立structstudenta,b,c,*head,*p;/*建立链表的三个结点*/a.num=1001;a.score=95;b.num=1002;b.score=85.5;c.num=1003;c.score=77;/*利用指针将三个结点连接到一起,head为头结点*/head=&a;a.next=&b;b.next=&c;c.next=NULL;静态链表——所有结点都是在程序中定义的,不是临时开

2、辟的,也不能用完后释放动态建立建立链表(静态/动态)动态链表——在执行的过程中从无到有建立一个链表,即一个一个开辟结点和输入各结点数据,并建立前后链的关系while(){malloc()开辟新的结点;把新结点连接到链表当中去;}思考:头插法PK尾插法输出链表已知链表的头指针,将链表中的结点内容依次输出p=head;while(p){printf(“%d”,p->data);p=p->next;}p=head;if(head!=NULL)do{printf(“%d”,p->data);p=p->next;}while

3、(p!=NULL)链表的删除ABCDEABCDE从动态链表中删去一个结点,只要撤销原来的链接关系,把它从链表中分离开来即可链表的删除ABCheadABCheadp1p2p3p1->next=p3;p1->next=p2->next;例1.输入104表示要求删除学号为104的结点……101102110headp……101102110headqp……101102110headqp103……101103110headqp104例1.输入104表示要求删除学号为104的结点(例4_1)……q->next=p->next;p

4、rintf("请输入想删除的字符");scanf("%c",&ch);p=head;while(p&&p->data!=ch){q=p;p=p->next;}if(p==NULL)printf("链表中无此字符");elseif(p==head)head=p->next;elseq->next=p->next;例1.输入104表示要求删除学号为104的结点P=NULLp走到表尾P->data=ch找到要删除的结点未找到结点删除的是第一个结点删除的是中间结点链表的插入问题:输入数据的同时,将数据插入到链表中,

5、并且保持链表中数据有序分析:第一个:接到head后面第二个:查找合适的插入位置插入,并保持链表的前后链第三个……第N个……ACEheadBqpq->next=s;s->next=p;ss->next=q->next;q->next=s;或者链表的插入printf(“请输入待插入字符");scanf("%c",&ch);s=(student*)malloc(LEN);s->data=ch;s->next=NULL;p=head;while(p&&ch>p->data){q=p;p=p->next;}q->next

6、=s;s->next=p;接受输入的数据,新生成一个新的结点SBs寻找合适的插入位置AheadCqps插入到p和q之间链表的插入考虑插入结点时的几种特殊情况插入后为第一个结点插入后为最后一个结点ACEheadspACEheadsq链表的插入插入后为第一个结点ACEheadspp=head;while(p&&ch>p->data){q=p;p=p->next;}if(p==head){head=s;s->next=p;}上一页正常情况+特殊情况p=head;while(p&&ch>p->data){q=p;p=p->

7、next;}q->next=s;s->next=p;p=head;while(p&&ch>p->data){q=p;p=p->next;}if(p==head){head=s;s->next=p;}main(){printf(“输入待插入字符");scanf("%c",&ch);s=(student*)malloc(LEN);s->data=ch;s->next=NULL;}//mainmain(){printf("请输入待插入字符");scanf("%c",&ch);s=(student*)malloc(

8、LEN);s->data=ch;s->next=NULL;p=head;while(p&&ch>p->data){q=p;p=p->next;}if(p==head){head=s;s->next=p;}else{q->next=s;s->next=p;}}//main正常情况+特殊情况(例4_2)单链表的综合使用(例4_3)main(){student*h

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。