版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、程序流程说明二、 1)创建一个单链表,其数据元素为整数,从键盘输入,输入0 结束(注意0 不放到链表内);三、2)从键盘任意输入一个整数,在单链表中查询该数,如果单链表中已经存在这个数,就调用删除函数,删除该元素所在结点,并将单链表在删除前后的数据元素依次输出到屏幕上;四、如果单链表中不存在这个数,就调用插入函数,将这个数插入到单链表尾,并将单链表在插入前后的数据元素依次输出到屏幕上。五、 3)教材第一章习题第9 题(用链表实现)ex2_3扩展题六、 1)删除单链表中全部的负数七、 2)创建一个双向链表,按照冒泡排序的思路对这个双向链表进行排序,打印排序结果。注意,本算法在交换元素时是将链
2、点整个交换而不是将链点中的元素值交换。八、九、十、十一、2_21)创建一个单链表,其数据元素为整数,从键盘输入, 输入 0 结束(注意 0 不放到链表内) ;( if x ! =0, scanf)2)从键盘任意输入一个整数,在单链表中查询该数, 如果单链表中已经存在这个数,就调用删除函数, 删除该元素所在结点, 并将单链表在删除前后的数据元素依次输出到屏幕上;(search 返回重复的位置,然后删除(同实验一) )如果单链表中不存在这个数,就调用插入函数,将这个数插入到单链表尾,并将单链表在插入前后的数据元素依次输出到屏幕上。 (同实验一,直接加在链表末尾)3)判断插入元素与表内元素的大小,如
3、temp->data<x<temp->link->data ,则插入temp 后2_31)删除单链表中全部的负数(逐个判断是不是负数,并且返回负数所在位置,删除过春哥同实验一)2)创建一个双向链表,按照冒泡排序的思路对这个双向链表进行排序,打印排序结果。注意,本算法在交换元素时是将链点整个交换而不是将链点中的元素值交换。 (从一开始逐个比较,将比第一位大的与第一位交换位置, 一直比较到最后一位然后开始对于第二位重复比较)二、程序代码2_2#include<stdio.h>#include<malloc.h>#include<stdli
4、b.h>typedef struct Nodeint data;struct Node *link;node;typedef struct Listnode *head;node *tail;int length;list;void creat_list(list *table)int x,i;node *temp;table->head=NULL;table->tail=NULL;table->length=0;x=1;scanf("%d",&x);for(i=0;x!=0;i+)fflush(stdin);printf("n&q
5、uot;);temp=(node*)malloc(sizeof(node);temp->data=x;temp->link=NULL;temp->link=table->head;table->head=temp;table->length+;scanf("%d",&x);node * create_node(int new_node)node * temp;temp = (node*)malloc(sizeof(node);temp->data = new_node;temp->link = NULL;return
6、temp;void get(list *table,int n)int i,loc=table->length+1;node *temp;node *newnode;temp=table->head;table->length+;newnode=create_node(n);for(i=2;i<loc;i+)temp=temp->link;newnode->link = temp->link;temp->link = newnode;void show_list(list *table)int x,i;node *temp;printf(&quo
7、t; 链表为: n");temp=table->head;for(i=1;i <= table->length;i+)x=temp->data;printf("%d",x);temp=temp->link;void delete_node(list *table,int n)int i;node *temp,*t;temp=table->head;if(n=1)temp=temp->link;table->head=temp;if(n>2&&n<table->length)temp=
8、table->head;for(i=2;i<n;i+)temp=temp->link;t=temp->link;temp->link=t->link;if(n=table->length)for(i=2;i<n;i+)temp=temp->link;temp->link=NULL;if(n=2)temp=table->head;t=temp->link;temp->link=t->link;table->length-;void search(list *table,int x,int a2)int i=
9、0,j=0;node *temp;temp=table->head;for(i=1;i<=table->length;i+)if(x=temp->data)a1=i;j+;temp=temp->link;if(j=0)a0=0;a1=0;elsea0=1;void main()list table;int m,a2;creat_list(&table);show_list(&table);printf("n输入一个整数n");scanf("%d",&m);search(&table,m,a);
10、if(a0=1)delete_node(&table,a1);show_list(&table);elseget(&table,m);show_list(&table);2_2(3)#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef struct Nodeint data;struct Node *link;node;typedef struct Listnode *head;node *tail;int length;list;void creat_lis
11、t(list *table)int x,i;node *temp;table->head=NULL;table->tail=NULL;table->length=0;x=1;scanf("%d",&x);for(i=0;x!=0;i+)fflush(stdin);printf("n");temp=(node*)malloc(sizeof(node);temp->data=x;temp->link=NULL;temp->link=table->head;table->head=temp;table-&
12、gt;length+;scanf("%d",&x);node * create_node(int new_node)node * temp;temp = (node*)malloc(sizeof(node);temp->data = new_node;temp->link = NULL;return temp;void get(list *table,int n)int i,m=0;node *temp;node *newnode;temp=table->head;table->length+;newnode=create_node(n);i
13、f(n<temp->data)newnode->link=temp;temp=newnode;elsefor(i=1;m=0;i+)if(i<=table->length&&temp->data<n&&n<=temp->link->data)newnode->link = temp->link;temp->link = newnode;m=1;else if(i=table->length) temp->link=newnode; newnode->link=NULL
14、; m=1;temp=temp->link;table->length+;void show_list(list *table)int x,i;node *temp;printf(" 链表为: n");temp=table->head;for(i=1;i <= table->length;i+)x=temp->data;printf("%d",x);temp=temp->link;void main()list table;int m,a2;creat_list(&table);show_list(&am
15、p;table);printf("n输入一个整数n");scanf("%d",&m);get(&table,m);show_list(&table);2_3(1)#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef struct Nodeint data;struct Node *link;node;typedef struct Listnode *head;node *tail;int length;list;void cre
16、at_list(list *table)int x,i;node *temp;table->head=NULL;table->tail=NULL;table->length=0;x=1;scanf("%d",&x);for(i=0;x!=0;i+)fflush(stdin);printf("n");temp=(node*)malloc(sizeof(node);temp->data=x;temp->link=NULL;temp->link=table->head;table->head=temp;t
17、able->length+;scanf("%d",&x);node * create_node(int new_node)node * temp;temp = (node*)malloc(sizeof(node);temp->data = new_node;temp->link = NULL;return temp;void get(list *table,int n)int i,loc=table->length+1;node *temp;node *newnode;temp=table->head;table->length+
18、;newnode=create_node(n);for(i=2;i<loc;i+)temp=temp->link;newnode->link = temp->link;temp->link = newnode;void show_list(list *table)int x,i;node *temp;printf("n链表为: n");temp=table->head;for(i=1;i <= table->length;i+)x=temp->data;printf("%d",x);temp=temp
19、->link;void delete_node(list *table,int n)int i;node *temp,*t;temp=table->head;if(n=1)temp=temp->link;table->head=temp;if(n>2&&n<table->length)temp=table->head;for(i=2;i<n;i+)temp=temp->link;t=temp->link;temp->link=t->link;if(n=table->length)for(i=2;
20、i<n;i+)temp=temp->link;temp->link=NULL;if(n=2)temp=table->head;t=temp->link;temp->link=t->link;table->length-;void search(list *table,int a2)int i=0,j=0;node *temp;temp=table->head;for(i=1;i<=table->length;i+)if(temp->data<0)a1=i;j=1;break;temp=temp->link;if
21、(j=0)a0=0;a1=0;elsea0=1;void paixu(list *table)int i,j,m,u;node *temp,*t,*p;for(i=1;i<=table->length;i+)temp=table->head;for(u=1;u<i;u+)temp=temp->link;t=temp;for(j=i;j<=table->length;j+)temp=t;for(m=i;m<=j;m+)temp=temp->link;if(t->data<(temp->data)p=temp->link
22、;temp->link=t->link;t->link=p;void main()list table;int m,a2;creat_list(&table);show_list(&table);search(&table,a);for(m=1;a0=1;m+)search(&table,a);if(a0=1)delete_node(&table,a1);show_list(&table);2_3( 2)#include<stdio.h>#include<malloc.h>#include<stdl
23、ib.h>typedef struct Nodeint data;struct Node *link,*last;node;typedef struct Listnode *head;node *tail;int length;list;void creat_list(list *table)int x,i;node *temp,*t,*p;table->head=NULL;table->tail=NULL;table->length=0;x=1;scanf("%d",&x);for(i=0;x!=0;i+)fflush(stdin);pri
24、ntf("n");temp=(node*)malloc(sizeof(node);temp->data=x;temp->link=NULL;temp->link=table->head;table->head=temp;table->length+;scanf("%d",&x);t=(node*)malloc(sizeof(node);t=table->head;t->last=NULL;for(i=2;i<=table->length;i+)p=t;t=t->link;t->
25、;last=p;void show_list(list *table)int x,i;node *temp;printf(" 链表为: n");temp=table->head;for(i=1;i <= table->length;i+)x=temp->data;printf("%d",x);temp=temp->link;void paixu(list *table)inti,j,m;node *temp,*t,*p,*q;temp=table->head;t=temp;for(i=2;i<=table->
26、;length;i+)t=t->link;if(t->data>temp->data)p=t->link;t->link=temp->link;temp->link=p;t->last->link=temp;table->head=t;t->last=NULL;temp->last=t->last;p=t;t=temp;temp=t;/*/temp=table->head;for(i=2;i<=table->length;i+)temp=temp->link;t=temp;for(j=i+1;j<=table->length;j+)t=t->link;if(t->da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年青海师范大学马克思主义基本原理概论期末考试题含答案解析(必刷)
- 体检中心护理健康教育与指导
- 2025年湖南大学马克思主义基本原理概论期末考试模拟题含答案解析(夺冠)
- 2025年中国农业大学马克思主义基本原理概论期末考试模拟题附答案解析
- 2024年石阡县幼儿园教师招教考试备考题库含答案解析(夺冠)
- 2025年陆良县幼儿园教师招教考试备考题库及答案解析(必刷)
- 2024年长春建筑学院马克思主义基本原理概论期末考试题及答案解析(夺冠)
- 2025年威宁彝族回族苗族自治县招教考试备考题库附答案解析(必刷)
- 2025年深圳开放大学马克思主义基本原理概论期末考试模拟题附答案解析
- 2025年安徽粮食工程职业学院单招职业技能考试题库附答案解析
- 广东省佛山市2024-2025学年高二上学期期末考试 语文 含解析
- 中药材及中药饮片知识培训
- 2024年台州三门农商银行招聘笔试真题
- 高一政治必修1、必修2基础知识必背资料
- 垃圾处理设备维修合同
- DB4114T 105-2019 黄河故道地区苹果化学疏花疏果技术规程
- 如何高效向GPT提问
- JT-T-969-2015路面裂缝贴缝胶
- 无抗养殖模式可行性分析
- 《常见疾病康复》课程教学大纲
- 饲料厂HACCP计划书
评论
0/150
提交评论