




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 实验内容或题目(1) 用结构体描述一个字符型的单向链表。(2) 创建线性表;在线性表中插入元素、删除元素;显示线性表中所有元素的基本操作。(3) 用if语句设计一个选择式菜单。线 性 表 子 系 统 * * 1-建 表 * * 2-插 入 * * 3-删 除 * * 4-显 示 * * 5-查 找 * * 6-求 表 长 * * 0-返 回 * * 2、 实验目的与要求(1) 掌握线性表的特点;(2) 掌握线性表顺序存储结构和链式存储结构的基本运算;(3) 掌握线性表的创建,插入,删除和显示线性表中元素的基本操作。3、 实验步骤与源程序 实验步骤首先构建出各个函数在主调函数main()函数中的作用以及返回值:CreatList()函数是用来建立线性表,InsList()函数用来插入结点元素,DelList()函数用来删除结点元素,ShowList()函数用来显示线性表,SearchList()函数用来查找线性表元素,主函数main()用于菜单界面,方便操作。之后便是具体实现每个函数功能的细节。程序编好后经过不断地差错改错,最后得到正确的源程序。 程序源代码#include#includetypedef struct linknodechar data;struct linknode *next;linnode;linnode *head;int n;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,&x);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 i,char x)linnode *s,*p;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线性表已为空!);return;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-next!=NULL)printf(%5c,p-next-data);p=p-next;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(ntt抱歉!未找到值为%c的结点!,x);void main() int choice,i,j; char x; head=NULL; 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*); printf(ntt 请选择菜单号(0-6):); scanf(%d,&choice); getchar(); if(choice=1)CreateList(); elseif(choice=2) printf(ntt请输入插入的位置i和插入的数据(输入格式:i,x):); scanf(%d,%c,&i,&x); InsList(i,x); elseif(choice=3) printf(ntt请输入要删除的数值:); scanf(%c,&x); DelList(x);else if(choice=4) if(head=NULL) printf(ntt请先建立线性表!); else ShowList(); else if(choice=5) printf(ntt请输入要查找的元素:); scanf(%c,&x); SearchList(x);else if(choice=6) printf(ntt线性表长度为:%d,n); elseif(choice=0) j=0;else printf(ntt输入错误!请重新输入!); 4、 测试数据与实验结果图一 建立一个线性表图二 线性表数据的插入图三 线性表数据的删除图四 线性表数据的查找图五 求表长图六 返回5、 结果分析与实验体会在学过本节有关线性表的两种存储结构的基础操作后,做这个验证性的实验的焦点便在于验证各种操作的正确与否,在对照书上的线性表基本运算的实现的算法思路和注意事项,结合老师上课强调的每种算法的注意重点,找出了原始程序的几个主要的错误点:1、某些地方运用了C+语言而不是C,如:每个函数在为申请一块LinkNode类型的存储单元的操作,并将其地址复制给变量时:p=new LinkNode;而在C环境中应为:p=(LinkList *)malloc(sizeof(LinkNode);。再如:在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全咨询-活动方案
- 钢板切割合同2篇
- 洪湖道路沥青施工方案
- 2025年电子产品销售合同补充协议范本
- 中国邮政2025阳泉市秋招系统维护岗位高频笔试题库含答案
- 中国邮政集团2025巴音郭楞蒙古自治州秋招笔试题库含答案
- 高速防撞护栏施工方案
- 城乡道路施工方案范本
- 中国邮政集团2025荆州市秋招金融科技岗笔试题库及答案
- 中国邮政2025青海省秋招电商运营岗位面试模拟题及答案
- 2025年高考全国一卷语文试题真题文档版(含答案)
- 公司财务u盾管理制度
- 拍摄肖像授权协议书
- 叶轮逆向设计方法与流程
- 《畜禽环境卫生》第一章-环境与畜禽的关系
- 《医疗的人文关怀》课件
- 非盗抢汽车合同协议
- 爱国卫生运动主题班会课件
- 染织工艺知识培训课件
- 企业团委管理制度
- 全屋定制家具安装规范
评论
0/150
提交评论