




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 轻工业学院数据结构课程实验实验报告题目:单链表表的基本操作与c语言实现专业:信息管理与信息系统班级:11-01: 高博文 完成日期: 2013/5/23一、 试验容用c语言实现单链表的建立插入删除查找,合并等容二、试验目的掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构,深入对链表链式结构的了解。三源程序代码#include<stdio.h>#include<stdlib.h>typedef int Elemtype;typedef int Status;typedef struct node/定义存储节点int data;/数据域struct
2、 node *next;/结构体指针 *linklist,node;/结构体变量,结构体名称linklist creat (int n)/创建单链表linklist head,r,p;/定义头指针r,p,指针int x,i;head=(node *)malloc(sizeof(node);/生成头结点r=head;/r指向头结点printf("输入数字:n");for(i=n;i>0;i-)/for 循环用于生成第一个节点并读入数据scanf("%d",&x);p=(node *)malloc(sizeof(node);p->data
3、=x;/读入第一个节点的数据r->next=p;/把第一个节点连在头结点的后面r=p;/循环以便于生成第二个节点r->next=0;/生成链表后的断开符return head;/返回头指针void output (linklist head)/输出链表linklist p;p=head->next;doprintf("%3d",p->data);p=p->next;while(p);printf("n");Status insert ( linklist &l,int i, Elemtype e)/插入操作int j
4、=0;linklist p=l,s;while(j<i-1 && p)p=p->next;+j;if(!p | j>i-1)return -1;elses=(node *)malloc(sizeof(node);s->data=e;s->next=p->next;p->next=s;return 1;Status delect ( linklist &l,int i, Elemtype &e)/删除操作int j=0;linklist p=l,q;while(j<i-1 && p->next)
5、p=p->next;+j;if(!p->next | j>i-1)return -1;elseq=p->next;p->next=q->next;e=q->data;free(q);return 1;void combine(linklist la,linklist lb)/合并单链表node *pa,*pb,*pc;linklist lc;pa=la->next;pb=lb->next;lc=pc=la;while(pa && pb)if(pa->data<=pb->data)pc->next=pa
6、;pc=pa;pa=pa->next;elsepc->next=pb;pc=pb;pb=pb->next;pc->next=pa?pa:pb;free(lb); Status GetElem(linklist l,int i,Elemtype &e )/查找操作 linklist p; int j; p=l->next; j=1; while(p && j<i) p=p->next; +j; if(!p | j>i) return -2; e=p->data; return e; void main()linklis
7、t la,lb;int n;int i,j;Elemtype e;printf("请输入第一个链表:n");printf("输入链表元素的个数:n");scanf("%d",&n);la=creat(n);printf("输出链表:n");output(la);printf("请输入要查找元素的位置:n");scanf("%d",&i);j=GetElem(la,i,e);printf("所要查找的元素是%dn",j);printf(&qu
8、ot;请输入插入位置和元素:n");scanf("%d%d",&i,&e);insert(la,i,e);printf("插入后的链表:n");output(la);printf("请输入要删除的位置:n");scanf("%d",&i);delect(la,i,e);printf("删除的那个元素是:%dn",e);printf("输出删除后的顺序表:n");output(la);printf("请输入第一个非递减链表:n&quo
9、t;);printf("输入链表元素的个数:n");scanf("%d",&n);la=creat(n);printf("输出链表:n");output(la);printf("请输入第二个非递减链表:n");printf("输入链表元素的个数:n");scanf("%d",&n);lb=creat(n);printf("输出链表:n");output(lb);combine(la,lb);printf("输出合并后的链表:n");output(la);运行结果如下:六、结果分析与思考关于单链表的建立要比顺序表难懂,单链表的建立有头插法和尾插法两种,我选用的是尾插法,尾插法较之头插法更为简单和使用,一定要熟练使用。1. 若不给自己设限,则人生中就没有限制你发挥的藩篱。2. 若不是心宽似海,哪有人生风平浪静。在纷杂的尘世里,为自己留下一片纯静的心灵空间,不管是潮起潮落,也不管是阴晴圆缺,你都可以免去浮躁,义无反顾,勇往直前,轻松自如地走好人生路上的每一步3. 花一些时间,总会看清一些事。用一些事情,总会看清一些人。有时候觉得自己像个神经病。既纠结了自己,又打扰了别人。努力过后,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 面馆入股合同协议书范本
- 集中公寓转让合同协议
- 门窗幕墙安装合同协议
- 门窗铰链转让合同协议
- 门店工程维修合同协议
- 长期供货意向合同协议
- 领养合同协议书范本
- 2025年上海市经济适用房预售合同
- 食品供货超市合同协议
- 阎良汽车租赁合同协议
- 警卫安检任务流程
- 展览会议展前展中展后服务方案(技术方案)
- 生物分离工程模考试题含参考答案
- 高中家长会 高一下学期期中考试家长会课件
- 慢性病护理的毕业论文范文
- 线雕提升专业知识
- 2025年部编版新教材语文一年级下册期末测试题及答案(一)
- (统编2024版)语文一年级下册第三单元解析+任务目标+大单元教学设计
- 内河船舶船员基本安全知识考试题库300题(含答案)
- 校长论坛交流发言:引领教师专业成长的核心能力点燃教育变革的引擎
- 2024 年普通高等学校招生全国统一考试新课标 I 卷-数学试卷-全国
评论
0/150
提交评论