数据结构线性表实验报告_第1页
数据结构线性表实验报告_第2页
数据结构线性表实验报告_第3页
数据结构线性表实验报告_第4页
数据结构线性表实验报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上数据结构实验报告院系 应用科技学院 专业 电子信息工程 姓名 陈高雪 学号410 级 电信 班 2011 年 10 月 11日1.实验目的1.掌握线性表的基本运算。2.掌握顺序村存储的概念,学会对顺序存储数据结构进行操作。3.加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。2.需求分析要求用c语言编写一个演示程序,首先建立一个空表,然后根据用户选择,能够在线性表的任意位置实现插入元素、删除元素、初始化线性表、查找某一元素的在线性表中得位置。(1)建立线性表的功能l 输入的形式和输入的范围:调用出入函数,输入插入的位置和数值,用逗号隔开l 输出的形式:调用

2、输出函数,按顺序输出线性表所插入的值,以及所对应功能的值。(2)插入功能l 输入的形式和输入值的范围:输入一个表示位置的正整数和一个表示插入元素值的正整数,两个正整数之间用逗号隔开,出入位置的和法取值范围是1<size<size+1。l 输出的形式:如果输入的参数合法,则按顺序显示插入后的线性表,否则显示错误。(3)删除功能l 输入的形式和输入值的范围:输入一个表示删除位置或要删除的元素值的正整数,删除位置或删除元素值的取值范围是1<sizee<size+1或线性表中的元素,否则显示参数错误的信息。l 输出的形式:如果输入参数合法,则按顺序显示删除后线性表中的各个元素值

3、,否则显示参数错误的信息。(4)查找功能l 输入的形式和输入值的范围:输入一个要查找的元素值,元素值的合法取值范围是正整数。l 输出的形式:如果存在要查找的元素,则显示要查找元素的位置,否则显示参数错误信息。3.概要设计(1)为了实现上述程序功能,需要第一一个简化的线性表抽象数据类型:Typedef struct LinearListInt *list;Int size;Int MAXSIZE;List; 基本操作:l 初始化线性表ListInit (L)操作前提:L是一个未初始化的线性表操作结果:将L初始化成一个空的线性表l 向空表指定位置插入元素 ListInsert (L)操作前提:L是

4、一个还有位置的线性表操作结果:将元素插入到指定位子并输出线性表l 删除指定元素值 ListDelete_1(L)操作前提:线性表L存在操作结果:将线性表中指定的元素值删除,并输出线性表l 删除指定位置的元素值 ListDelete_2(L)操作前提:线性表L存在操作结果:将线性表中指定位置的元素值删除,并输出线性表l 查找线性表中的元素 ListFind(L)操作前提:线性表L存在操作结果:在线性表L中查找指定元素e,若存在该元素返回该元素在表中的位置,否则提示错误l 输出线性表元素 OutputList(L)操作前提:线性表存在操作结果:输出整线性表L的所有元素值(2)本程序共有6函数:l

5、主函数main()l 初始化线性表函数InitList()l 输出函数OutputList()l 插入函数ListInsert()l 删除函数ListDelete()l 查找函数ListFind()各函数的关系如下:l 主函数Main()调用初始化线性表函数InitList()、插入函数ListInsert()、删除函数ListDelete()、查找函数ListFind()、查找函数ListFind()l 插入函数ListInsert()调用输出函数OutputList(L)l 删除函数ListDelete()调用输出函数OutputList(L)l 查找函数ListFind()调用输出函数O

6、utputList(L)(3)主函数的伪码Main()定义一个字符参数 ch;定义整形元素位置参数 i;定义整形参数e,j=1;说明一个线性表L;循环做下面处理,直到读入的为y时推出:根据具体选项,读入需要的数据,做下面的选择处理,知道循环结束:根据所选择选项调用相关的函数进行处理,然后输出处理后的线性表以及所要执行的内容。4.详细设计采用线性表实现概要设计中的定义的抽象数据类型,有关数据数据类型和伪码算法定义如下:(1)类型定义typedef struct LinearListint *list; int size;int MAXSIZE;List;(2)基本操作的伪码算法l 初始化void

7、 InitList(List &L)构造一个空表L; 定义空表长度为0; 初始存储空间的容量;l 插入操作void ListInsert(List &L, int i, int e)Int *p;判断位置i是否合法 不合法返回空;判断当前容量是否已满申请一个新的基止newbase;L.list=newbase;增加存储容量; 定义插入位置*q; p>=q; -p) *(p+1) = *p; 插入元素e;表长加1;l 删除操作int ListDelete_1(List &L, int e, int &i)定义三个指针*p,*q,*m;P=L.list;循环做

8、下面处理If(*p=e);m=p;q=L.list+L.size-1;被删除元素之后的元素左移;表长减1;continue;p+; i+; return 1;l 查找操作int ListFind(List L, int e) /*在顺序线性表L中查找第1个值与e满足compare()的元素的位序。 若找到,则返回其在L中的位序,否则返回0。*/定义第一元素的存储位置为1;P=首元素的地址;While(i不能超过表长)+I;if (i <= L.size) return i; else return 0;5.使用说明程序名为实验1.exe,程序执行过程如下:运行程序显示如下菜单:print

9、f("ttt -线 性 表- n");printf("nttt*");printf("nttt* 1-初 始 化 *");printf("nttt* 2-插入元数值 *");printf("nttt* 3-删除指定元素值 *");printf("nttt* 4-删除指定位置 *");printf("nttt* 5-查找线性表中的元素 *");printf("nttt* 6-输出线性表元素 *");printf("nttt* 0

10、-退 出 *");printf("nttt*n");printf("请选择菜单号(0-6): "); 用户输入06的数字,选择执行相应的功能。每执行一次功能,就会显示执行的结果以及执行后线性表的内容。l 选择0:提示是否退出程序,输入y退出,输入n返回菜单。l 选择1:初始化线性表l 选择2:提示“请输入位置i和数值e:”,要求用户输入一个表示插入元素位置的和一个表示插入元素的正整数,两个数之间用空格隔开。如果插入合法,按顺序输出线性表,否则提示错误!l 选择3: 提示“请输入要删除的元素值e:”,要求用户输入一个表示删除元素的正整数, 删除元

11、素的合法范围是正整数。如果输入参数合法,按顺序输出线性表,否则提示错误!l 选择4:提示“请输入要删除的指定位置i:”, 要求用户输入一个表示删除位置的正整数, 删除位置的合法范围是1到当前线性表的长度。如果输入参数合法,按顺序输出线性表,否则提示错误!l 选择5:提示“请输入线性表中要查找的元素e:”,要求用户输入一个要查找的元素值,元素的合法范围是正整数。如果输入元素值合法,输出所查找元素值在线性表中的位置,否则提示错误!l 选择6:直接输出整个线性表。6.测试结果程序运行显示一下菜单:-线 性 表- * 1-初 始 化 * 2-插入元数值 * 3-删除指定元素值 * 4-删除指定位置 *

12、 5-查找线性表中的元素 * 6-输出线性表元素 * 0-退 出 *请选择菜单号(0-6): (1)初始化操作:l 选择1初始化线性表屏幕提示“初始化成功!”再次提示选择菜单(2)插入操作:l 选择2屏幕提示“请输入位置i和数值e:”输入1 1屏幕显示输出线性表元素:1 插入成功!屏幕显示选择菜单l 选择2屏幕提示“请输入位置i和数值e:”输入2 2屏幕显示输出线性表元素:1 插入成功!屏幕显示选择菜单l 选择2屏幕提示“请输入位置i和数值e:”输入3 3屏幕显示输出线性表元素:1 插入成功!屏幕显示选择菜单l 选择2屏幕提示“请输入位置i和数值e:”输入5 5屏幕显示插入位置错误!输出线性表元素:1 屏幕显示选择菜单(3)删除指定元素值操作:l 选择3屏幕提示“请输入要删除的元素值e:” 输入2后, 屏幕显示输出线性表:1 3删除成功!再次显示选择菜单l 选择4屏幕提示“请输入要删除的指定位置i:” 输入1后, 屏幕显示输出线性表:3删除成功!再次显示选择菜单(4)删除指定位置元素操作:l 选择4屏幕显示“请输入要删除的指定位置i:”输入2屏幕显示删除成功!输出线性表元素有:1 3(5)查找操作:l 选择5屏幕显示“请输入线性表中要查找的元素e:”输入3,屏幕显示该元数值在线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论