第四周项目3-单链表应用
来源:互联网 发布:淘宝卖的减肥药可靠吗 编辑:程序博客网 时间:2024/05/29 15:46
虽然单链表的操作因其存储结构而受限制,但这并不影响它可以有很多的有趣操作!以下列出三个;分别为单链表的逆置、两个单链表的连接和判断单链表是否递增。
代码:
#include<bits/stdc++.h>using namespace std;typedef struct node{ int data; node *next;}danlist;danlist *head,*head1;struct node * creat0(int num)///尾插法{ int i; danlist *p,*r,*tou; tou=(struct node *)malloc(sizeof(struct node)); r=tou; for(i=0;i<num;i++) { p=(struct node *)malloc(sizeof(struct node)); p->next=NULL; cin>>p->data; r->next=p; r=p; } return tou;}//struct node * creat1(int num)///头插法//{// danlist *p;// int i;// head1=(struct node *)malloc(sizeof(struct node));// head1->next=NULL;///不要忘了这个// for(i=0;i<num;i++)// {// p=(struct node *)malloc(sizeof(struct node));// cin>>p->data;// p->next=head1->next;// head1->next=p;// }// return head1;//}void display(danlist *p){ p=p->next; while(p->next!=NULL) { cout<<p->data<<' '; p=p->next; } cout<<p->data<<endl;}void deslist(danlist *p){ danlist *r; while(p->next!=NULL) { r=p->next; free(p); p=r; } free(p); cout<<"单链表已经被销毁"<<endl;}void link(danlist *head,danlist *head1)///在保证两个链表都不是空表的情况下!{ while(head->next!=NULL) { head=head->next; } head->next=head1->next;///问题就在这里;真是画蛇添足呀!}int length(danlist *p){ int chang=0; while(p->next!=NULL) { p=p->next; chang++; } return chang;}void nizhi(danlist *p,int num)///这个逆置操作是受单链表的头插法的启示而写出来的!{ int i; danlist *r,*q; r=p->next; q=r->next; p->next=NULL; for(i=0;i<num-1;i++) { r->next=p->next; p->next=r; r=q; q=r->next; } r->next=p->next; p->next=r;}void dizeng(danlist *p){ int te=1; danlist *r; p=p->next; r=p->next; while(p->next!=NULL) { if(r->data>p->data) { p=r; r=p->next; } else { te=0; break; } } if(te==1) cout<<"Yes"<<endl; else cout<<"No"<<endl;}int main(){ int i; head=creat0(5); display(head); head1=creat0(5); display(head1); dizeng(head1); link(head,head1); display(head); nizhi(head,10);///先将两个长度为5的单链表连接起来,然后就地逆置! display(head); dizeng(head); return 0;}
运行结果截图如上!
知识点总结:
知识还是需要活学活用的;单链表的逆置就是受单链表的头插法的启示而修改来的,感觉真的是很有收获呀!
心得体会:
坚持每天都好好学习!
阅读全文
0 0
- 第四周项目3 单链表应用3
- 第四周--项目3-单链表应用3
- 第四周 项目3 单链表应用(3)
- 第四周项目3--单链表应用3
- 第四周-项目3-单链表应用
- 第四周 项目3-单链表应用
- 第四周项目3—单链表应用
- 第四周 项目3--单链表应用1
- 第四周项目3-单链表应用(1)
- 第四周项目3-单链表应用
- 第四周项目(3):单链表应用
- 第四周项目3--单链表应用(2)
- 第四周项目3-单链表的应用
- (第四周项目3)单链表应用
- 第四周 项目3-单链表应用1
- 第四周 项目3 单链表应用
- 第四周项目3 单链表的应用
- 第四周项目3 单链表的应用
- calcHist的使用
- 58 同城 iOS 客户端 iOS11 及 iPhone X 适配实践
- linux中在firefox中安装flash
- Linux 硬盘管理工具
- 使用android studio编程异常汇总
- 第四周项目3-单链表应用
- 【Opencv】【C++】 Opencv之calcHist() 计算直方图
- $.ajax请求数据 IE报 no transport 或拒绝访问
- 51nod 1125 交换机器的最小代价 (贪心 公式)
- 关于解决APP项目中的ANR问题
- 机器学习第3章第2节 : 绘制正余弦图像
- FFmpeg H264/H265边界填充一
- 如何理解typedef关键字
- 自动驾驶技术的六个级别