收藏 分享(赏)

数据结构课程单链表实验报告.doc

上传人:精品资料 文档编号:10300238 上传时间:2019-10-28 格式:DOC 页数:7 大小:78.60KB
下载 相关 举报
数据结构课程单链表实验报告.doc_第1页
第1页 / 共7页
数据结构课程单链表实验报告.doc_第2页
第2页 / 共7页
数据结构课程单链表实验报告.doc_第3页
第3页 / 共7页
数据结构课程单链表实验报告.doc_第4页
第4页 / 共7页
数据结构课程单链表实验报告.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、 郑州轻工业学院数据结构课程实验实 验 报 告题目: 单链表表的基本操作及 c 语言实现 专业: 信息管理与信息系统 班级: 11-01 姓名: 高博文 完成日期: 2013/5/23 一、 试验内容用 c 语言实现单链表的建立插入删除查找,合并等内容二、试验目的掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构,深入对链表链式结构的了解。三源程序代码#include#includetypedef int Elemtype;typedef int Status;typedef struct node/定义存储节点int data;/数据域struct node *next

2、;/结构体指针 *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;i0;i-)/for 循环用于生成第一个节点并读入数据scanf(“%d“,p=(node *)malloc(sizeof(node);p-data=x;/读入第一个节点的数据r-next=p;/把第一个节点连在头结点的后面r=p;/循

3、环以便于生成第二个节点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 linklist p=l,s;while(jnext;+j;if(!p | ji-1)return -1;elses=(node *)malloc(sizeof(node);s-data=e;s-next=p-next;p-next=s;

4、return 1;Status delect ( linklist linklist p=l,q;while(jnext)p=p-next;+j;if(!p-next | ji-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 pc=pa;pa=pa-next;elsepc-next=pb;pc

5、=pb;pb=pb-next;pc-next=pa?pa:pb;free(lb);Status GetElem(linklist l,int i,Elemtype int j;p=l-next;j=1;while(p +j;if(!p | ji)return -2;e=p-data;return e;void main()linklist la,lb;int n;int i,j;Elemtype e;printf(“请输入第一个链表:n“);printf(“输入链表元素的个数:n“);scanf(“%d“,la=creat(n);printf(“输出链表 :n“);output(la);pri

6、ntf(“请输入要查找元素的位置:n“);scanf(“%d“,j=GetElem(la,i,e);printf(“所要查找的元素是%dn“,j);printf(“请输入插入位置和元素:n“);scanf(“%d%d“,insert(la,i,e);printf(“插入后的链表 :n“);output(la);printf(“请输入要删除的位置:n“);scanf(“%d“,delect(la,i,e);printf(“删除的那个元素是:%dn“,e);printf(“输出删除后的顺序表:n“);output(la);printf(“请输入第一个非递减链表:n“);printf(“输入链表元素

7、的个数:n“);scanf(“%d“,la=creat(n);printf(“输出链表 :n“);output(la);printf(“请输入第二个非递减链表:n“);printf(“输入链表元素的个数:n“);scanf(“%d“,lb=creat(n);printf(“输出链表 :n“);output(lb);combine(la,lb);printf(“输出合并后的链表:n“);output(la);运行结果如下:六、结果分析与思考关于单链表的建立要比顺序表难懂,单链表的建立有头插法和尾插法两种,我选用的是尾插法,尾插法较之头插法更为简单和使用,一定要熟练使用。您好,欢迎您阅读我的文章,本 WORD 文档可编辑修改,也可以直接打印。阅读过后,希望您提出保贵的意见或建议。阅读和学习是一种非常好的习惯,坚持下去,让我们共同进步。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报