云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构线性表实验报告

数据结构线性表实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 20:12:01

《数据结构》实验报告

院系 应用科技学院 专业 电子信息工程 姓名 陈高雪 学号120352010054 10 级 电信 班 2011 年 10 月 11日

1.实验目的

1.掌握线性表的基本运算。

2.掌握顺序村存储的概念,学会对顺序存储数据结构进行操作。

3.加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。

2.需求分析

要求用c语言编写一个演示程序,首先建立一个空表,然后根据用户选择,能够在线性

表的任意位置实现插入元素、删除元素、初始化线性表、查找某一元素的在线性表中得位置。 (1)建立线性表的功能

? 输入的形式和输入的范围:调用出入函数,输入插入的位置和数值,用逗号隔

?

输出的形式:调用输出函数,按顺序输出线性表所插入的值,以及所对应功能

的值。

(2)插入功能

? 输入的形式和输入值的范围:输入一个表示位置的正整数和一个表示插入元素

值的正整数,两个正整数之间用逗号隔开,出入位置的和法取值范围是

?

1

输出的形式:如果输入的参数合法,则按顺序显示插入后的线性表,否则显示

错误。

(3)删除功能

? 输入的形式和输入值的范围:输入一个表示删除位置或要删除的元素值的正整

数,删除位置或删除元素值的取值范围是1

否则显示参数错误的信息。 ?

输出的形式:如果输入参数合法,则按顺序显示删除后线性表中的各个元素值,否则显示参数错误的信息。

(4)查找功能

? 输入的形式和输入值的范围:输入一个要查找的元素值,元素值的合法取值范

围是正整数。 ?

输出的形式:如果存在要查找的元素,则显示要查找元素的位置,否则显示参

数错误信息。

3.概要设计

(1)为了实现上述程序功能,需要第一一个简化的线性表抽象数据类型: Typedef struct LinearList{ Int *list; Int size; Int MAXSIZE; }List;

基本操作:

?

初始化线性表ListInit (L)

操作前提:L是一个未初始化的线性表

操作结果:将L初始化成一个空的线性表

?

向空表指定位置插入元素 ListInsert (L)

操作前提:L是一个还有位置的线性表

?

操作结果:将元素插入到指定位子并输出线性表

删除指定元素值 ListDelete_1(L)

操作前提:线性表L存在

操作结果:将线性表中指定的元素值删除,并输出线性表

?

删除指定位置的元素值 ListDelete_2(L)

操作前提:线性表L存在

操作结果:将线性表中指定位置的元素值删除,并输出线性表 查找线性表中的元素 ListFind(L)

操作前提:线性表L存在

操作结果:在线性表L中查找指定元素e,若存在该元素返回该元素在表中的位置,否则提示错误

输出线性表元素 OutputList(L)

操作前提:线性表存在

?

?

操作结果:输出整线性表L的所有元素值

(2)本程序共有6函数:

? ? ? ? ? ?

主函数main()

初始化线性表函数InitList() 输出函数OutputList() 插入函数ListInsert() 删除函数ListDelete() 查找函数ListFind() 各函数的关系如下:

? ? ? ?

主函数Main()调用初始化线性表函数InitList()、插入函数ListInsert()、删除函数ListDelete()、查找函数ListFind()、查找函数ListFind() 插入函数ListInsert()调用输出函数OutputList(L) 删除函数ListDelete()调用输出函数OutputList(L) 查找函数ListFind()调用输出函数OutputList(L)

(3)主函数的伪码

Main()

{ 定义一个字符参数 ch; 定义整形元素位置参数 i; 定义整形参数e,j=1;

{

说明一个线性表L;

循环做下面处理,直到读入的为‘y’时推出:

根据具体选项,读入需要的数据,做下面的选择处理,知道循环结束: {

根据所选择选项调用相关的函数进行处理,然后输出处理后的线性表以及所要

执行的内容。 } } }

4.详细设计

采用线性表实现概要设计中的定义的抽象数据类型,有关数据数据类型和伪码算法

定义如下:

(1)类型定义

typedef struct LinearList

{

int size;

int *list;

int MAXSIZE; }List;

(2)基本操作的伪码算法

? 初始化

?

void InitList(List &L) { 构造一个空表L; 定义空表长度为0; 初始存储空间的容量; }

插入操作

void ListInsert(List &L, int i, int e) { Int *p; 判断位置i是否合法 不合法返回空;

判断当前容量是否已满

{

申请一个新的基止newbase; L.list=newbase; 增加存储容量;

}

定义插入位置*q;

p>=q;

--p) *(p+1) = *p; 插入元素e; 表长加1;

?

}

删除操作

int ListDelete_1(List &L, int e, int &i) {

定义三个指针*p,*q,*m; P=L.list;;

循环做下面处理 {

If(*p=e); {

m=p;

q=L.list+L.size-1;

被删除元素之后的元素左移; 表长减1; continue; p++;

} i++; } return 1;

?

} 查找操作

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,程序执行过程如下:

运行程序显示如下菜单:

printf(\

---线 性 表--- \\n\

printf(\printf(\ 1-----初 始 化 *\

搜索更多关于: 数据结构线性表实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

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

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com