验证2:线性表子系统(实验报告)

上传人:第*** 文档编号:34077749 上传时间:2018-02-20 格式:DOCX 页数:12 大小:311.97KB
返回 下载 相关 举报
验证2:线性表子系统(实验报告)_第1页
第1页 / 共12页
验证2:线性表子系统(实验报告)_第2页
第2页 / 共12页
验证2:线性表子系统(实验报告)_第3页
第3页 / 共12页
验证2:线性表子系统(实验报告)_第4页
第4页 / 共12页
验证2:线性表子系统(实验报告)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《验证2:线性表子系统(实验报告)》由会员分享,可在线阅读,更多相关《验证2:线性表子系统(实验报告)(12页珍藏版)》请在金锄头文库上搜索。

1、 数据结构 实验报告 - 1 -1、实验内容或题目(1) 用结构体描述一个字符型的单向链表。(2) 创建线性表;在线性表中插入元素、删除元素;显示线性表中所有元素的基本操作。(3) 用 if 语句设计一个选择式菜单。线 性 表 子 系 统* 1-建 表 * 2-插 入 * 3-删 除 * 4-显 示 * 5-查 找 * 6-求 表 长 * 0-返 回 * 2、实验目的与要求(1) 掌握线性表的特点;(2) 掌握线性表顺序存储结构和链式存储结构的基本运算;(3) 掌握线性表的创建,插入,删除和显示线性表中元素的基本操作。3、实验步骤与源程序 实验步骤首先构建出各个函数在主调函数 main()函数

2、中的作用以及返回值:CreatList()函数是用来建立线性表,InsList()函数用来插入结点元素,DelList()函数用来删除结点元素,ShowList()函数用来显示线性表,SearchList()函数用来查找线性表元素,主函数 main()用于菜单界面,方便操作。之后便是具体实现每个函数功能的细节。程序编好后经过不断地差错改错,最后得到正确的源程序。 程序源代码#include#includetypedef struct linknodechar data;struct linknode *next;linnode;linnode *head;int n; 数据结构 实验报告 -

3、2 -void CreateList()linnode *p,*s;int z;char x;n=0;z=1;head=(linnode *)malloc(sizeof(linnode);p=head;printf(ntt 请逐个输入节点,以x为结束标记!n);printf(n);while(z)printf(tt 输入一个字符数据,并按回车:);scanf(%c,getchar();if(x!=x)s=(linnode *)malloc(sizeof(linnode);n+;s-data=x;p-next=s;s-next=NULL;p=s;else z=0;void InsList(int

4、 i,char x)linnode *s,*p; 数据结构 实验报告 - 3 -int j;p=head;j=10;while(p!=NULL&jnext;if(p!=NULL)s=(linnode *)malloc(sizeof(linnode);s-data=x;s-next=p-next;p-next=s;n+;else printf(ntt 线性表为空或插入位置超出!n);void DelList(char x)linnode *p,*q;if(head=NULL)printf(ntt 链表下溢!);return;if(head-next=NULL)printf(ntt 线性表已为空!

5、);return; 数据结构 实验报告 - 4 -q=head;p=head-next;while(p!=NULL&p-data!=x)q=p;p=p-next;if(p!=NULL)q-next=p-next;free(p);n-;printf(ntt 结点%c 已经被删除!,x);else printf(ntt 抱歉!没有找到您要删除的结点。);void ShowList()linnode *p=head;printf(ntt 显示线性表的所有元素:);if(head-next=NULL|p=NULL)printf(ntt 链表为空!);else printf(ntt);while(p-n

6、ext!=NULL)printf(%5c,p-next-data);p=p-next; 数据结构 实验报告 - 5 -void SearchList(char x)linnode *p;int i=1;if(head=NULL)printf(ntt 链表下溢!);return;if(head-next=NULL)printf(ntt 线性表为空,没有任何节点!);return;p=head-next;while(p!=NULL&p-data!=x)p=p-next;i+;if(p!=NULL)printf(ntt 在表的第%d 位上找到值为%c 的结点!,i,x);else printf(nt

7、t 抱歉!未找到值为%c 的结点!,x);void main() int choice,i,j;char x;head=NULL; 数据结构 实验报告 - 6 -j=1;while(j) printf(n);printf(ntt 线性表子系统 );printf(ntt*);printf(ntt* 1-建 表 *);printf(ntt* 2-插 入 *);printf(ntt* 3-删 除 *);printf(ntt* 4-显 示 *);printf(ntt* 5-查 找 *);printf(ntt* 6-求 表 长 *);printf(ntt* 0-返 回 *);printf(ntt*);p

8、rintf(ntt 请选择菜单号(0-6):);scanf(%d,getchar();if(choice=1)CreateList();elseif(choice=2) printf(ntt 请输入插入的位置 i 和插入的数据(输入格式:i,x):);scanf(%d,%c,InsList(i,x);elseif(choice=3) printf(ntt 请输入要删除的数值:);scanf(%c,DelList(x);else 数据结构 实验报告 - 7 -if(choice=4)if(head=NULL)printf(ntt 请先建立线性表!);elseShowList();elseif(c

9、hoice=5) printf(ntt 请输入要查找的元素:);scanf(%c,SearchList(x);elseif(choice=6)printf(ntt 线性表长度为:%d,n);elseif(choice=0)j=0;elseprintf(ntt 输入错误!请重新输入!);4、测试数据与实验结果 数据结构 实验报告 - 8 -图一 建立一个线性表 数据结构 实验报告 - 9 -图二 线性表数据的插入图三 线性表数据的删除 数据结构 实验报告 - 10 -图四 线性表数据的查找图五 求表长图六 返回5、结果分析与实验体会在学过本节有关线性表的两种存储结构的基础操作后,做这个验证性的实

10、验的焦点便在于验证各种操作的正确与否,在对照书上的线性表基本运算的实现的算法思路和注意事项,结合老师上课强调的每种算法的注意重点,找出了原始程序的 数据结构 实验报告 - 11 -几个主要的错误点:1、某些地方运用了 C+语言而不是 C,如:每个函数在为申请一块 LinkNode 类型的存储单元的操作,并将其地址复制给变量时:p=new LinkNode;而在 C 环境中应为:p=( LinkList *)malloc(sizeof(LinkNode);。再如:在释放 p 所指的结点时运用了delete(p);,应该为 free(p);。2、某些地方将赋值语句写在定义该变量的上面,这就直接导致了程序编译时的错误,如:n=0;linnode *p,*s;char x;int z=1;应改为: linnode *p,*s;char x;int z=1,n=0;。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号