已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安全管理人员安全培训试题及答案
- 2025年关于脚码的测试题及答案
- 2025年新版守规矩试题及答案
- 2025年物流师考试综合练习题附答案
- 2026年法务助理招录考前模拟公基题库(附解析)
- 2026年许昌体育真题试题及答案
- 2025年旅游团购测试题及答案
- (2025年)保育员高级测试题库及答案
- 动物疫病防治员练习题库+参考答案解析
- 2025年新版安全防范的试题及答案
- 期中测试卷(含答案)三年级英语下册辽师大版
- 学前教育毕业综述
- DB62T 3136-2023 公路沥青路面施工技术规范
- 江苏省南通市海安市2024-2025学年高二下学期4月期中生物试题(原卷版+解析版)
- 2025年入团考试团队效果试题及答案
- 疟疾防控知识试题及答案
- 肝包虫超声课件
- 西美附中英语考题及答案
- 东南大学版三基内科
- 倪海厦汉唐药方全集
- 河北嘉恒隆生物科技有限责任公司建设年产 10000 吨食品用明胶、5000 吨食用蛋白粉、5000 吨宠物饲料和 5000 吨油脂资源综合利用项目环境影响报告表
评论
0/150
提交评论