已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#includetypedef struct List_Node int info; struct List_Node *next; node;/结点结构体/*/* 尾插法建立带头结点的单链表 */*/node* Creat_Node() node *head,*pre,*p; int x; head=(node*)malloc(sizeof(node); head-next=NULL; pre=head; printf(输入各结点的值,以0结束:); while(EOF!=(scanf(%d,&x)&x!=0) p=(node*)malloc(sizeof(node); p-info=x; p-next=pre-next; pre-next=p; pre=pre-next; return head;/*/* 头插法建立带头结点的单链表 */*/node* Build_Node() node *head,*p; int x; head=(node*)malloc(sizeof(node); head-next=NULL; printf(输入各结点的值,以0结束:); while(EOF!=(scanf(%d,&x)&x!=0) p=(node*)malloc(sizeof(node); p-info=x; p-next=head-next; head-next=p; return head;/*/* 打印单链表 */*/void Print_Node(node *head) node *p=head-next; printf(输出该链表:); while(p) printf(%-5d-,p-info); p=p-next; if(p=NULL) printf(nnn); #includeHead_Node.hint Count_Node(node *head) node *p=head-next; int num=0; while(p!=NULL) num+; p=p-next; return num;int main() node *head; head=Creat_Node(); Print_Node(head); printf(结点个数为:%dn,Count_Node(head); return 0;/#includehead_node.h/*/* 删除重复 */*/void Delete_Repeat_Node(node *head) node *p,*pre,*s; pre=head-next; p=pre-next; while(p) s=p-next; while(s&s-info!=p-info) s=s-next; if(s) pre-next=p-next; free(p); p=pre-next; else pre=p; p=p-next; int main() node *head; head=Creat_Node(); Print_Node(head); Delete_Repeat_Node(head); Print_Node(head); return 0;#includeHead_Node.h/*/* 在Y前插入X */*/void Before_y_Insert_x(node* head,int y,int x) node *pre,*p,*s; pre=head; p=pre-next; while(p&p-info!=y) pre=p; p=p-next; if(p=NULL) printf(error!%d不在该链表中n,y); else s=(node*)malloc(sizeof(node); s-info=x; s-next=p; pre-next=s; int main() node *head; int x,y; head=Creat_Node(); printf(在y前插入x,输入y,x:); scanf(%d%d,&y,&x); Print_Node(head); Before_y_Insert_x(head,y,x); Print_Node(head); return 0;/#includeHead_Node.h/*/* 判断链表是否有序 */*/int Is_Sort(node *head) node *p,*pre; int flag; pre=head-next; p=pre-next; flag=pre-infop-info?1:0; while(p) pre=p; p=p-next; if(p) if(flag!=pre-infop-info?1:0) return 0; return 1;int main() node *head; int flag; head=Creat_Node(); Print_Node(head); flag=Is_Sort(head); if(flag=1) printf(该链表有序!n); else printf(该链表无序!n); return 0;#includeHead_Node.h/*/* 链表反序 */*/void convert_Node(node *head) node *pre,*p=head-next; head-next=NULL; while(p) pre=p; p=p-next; pre-next=NULL; pre-next=head-next; head-next=pre; int main() node *head; head=Creat_Node(); Print_Node(head); convert_Node(head); Print_Node(head); return 0;/#includeHead_Node.h/*/* 将奇偶数按原相对顺序分开 */*/node *Divide_Node(node *head1) node *head2,*pre,*p,*s; p=head1-next; pre=head1; head2=(node*)malloc(sizeof(node); head2-next=NULL; s=head2; while(p) if(p-info%2) pre-next=p-next; p-next=s-next; s-next=p; s=p; p=pre-next; else pre=p; p=p-next; return head2;int main() node *head,*head2; head=Creat_Node(); Print_Node(head); head2=Divide_Node(head); printf(打印偶数链表n); Print_Node(head); printf(打印奇数链表n); Print_Node(head2); return 0;#includeHead_Node.h/*/*删除所有大于x而不大于Y的结点 */*/void Delete_X_y(node *head,int x,int y) node *pre=head,*p=head-next; if(x=y) printf(不符合条件!n); return ; while(p) if(p-infox&p-infonext=p-next; free(p); p=pre-next; else pre=p; p=p-next; int main() node *head; int x,y; head=Creat_Node(); printf(输出x,y的值:); scanf(%d%d,&x,&y); Print_Node(head); Delete_X_y(head,x,y); Print_Node(head); return 0;/#includeHead_Node.h/*/* 直接插入排序 */*/void Insert_Sort(node *head) node *p,*pre,*s,*r; p=head-next; head-next=NULL; while(p) pre=p-next; r=head; s=head-next; while(s&s-infoinfo) r=s; s=s-next; p-next=r-next; r-next=p; p=pre; int main() node *head; head=Creat_Node(); Print_Node(head); Insert_Sort(head); Print_Node(head); return 0;#includehead_node.hnode* merge_two_List(node *head1,node *head2) node *head,*s,*p,*r; p=head1-next; s=head2-next; head=(node*)malloc(sizeof(node); head-next=NULL; r=head-next; while(s&p) if(p-infoinfo) head1-next=p-next; p-next=NULL; r-next=p; r=r-next; p=head1-next; else head2-next=s-next; s-next=NULL; r-next=s; r=r-next; s=head2-next; while(s) head2-next=s-next; s-next=NULL; r-next=s; r=r-next; s=head2-next; while(p) head1-next=p-next; p-next=NULL;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下半年佳木斯市中心招考易考易错模拟试题(共500题)试卷后附参考答案
- 蛋白质降解技术-洞察与解读
- 2025年大学毕业考试题及答案
- 2025健身房股份投资合作合同协议书范本
- 2025年上海市铝材采购合同书
- 家政服务合同范本
- 导游员聘用合同范本
- 2024年朔州辅警协警招聘考试真题及答案详解(基础+提升)
- 2024年那曲辅警招聘考试题库附答案详解(b卷)
- 2024年阿里辅警招聘考试题库及答案详解(历年真题)
- 屋顶光伏发电项目EPC工程总承包施工进度计划横道图
- 资源与环境约束下山东省海洋经济可持续发展对策研究的综述报告
- 基层网格员消防培训课件
- 圆的周长学习单
- qdslrdashboard应用软件使用说明
- 《Windows 网络操作系统》-教学教案
- GB/T 28733-2012固体生物质燃料全水分测定方法
- GA 1517-2018金银珠宝营业场所安全防范要求
- 英语形容词和副词课件
- 人教版小学五年级语文上册期中试卷及答案
- 工程结构荷载和可靠度设计原理课件
评论
0/150
提交评论