顺序表的基本操作

上传人:wt****50 文档编号:40181036 上传时间:2018-05-24 格式:DOC 页数:6 大小:85.50KB
返回 下载 相关 举报
顺序表的基本操作_第1页
第1页 / 共6页
顺序表的基本操作_第2页
第2页 / 共6页
顺序表的基本操作_第3页
第3页 / 共6页
顺序表的基本操作_第4页
第4页 / 共6页
顺序表的基本操作_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《顺序表的基本操作》由会员分享,可在线阅读,更多相关《顺序表的基本操作(6页珍藏版)》请在金锄头文库上搜索。

1、*实验题目实验题目 :顺序表的基本操作 班班 级级 : 姓姓 名:名: 学学 号:号: 专专 业:业: 实验完成的时间:实验完成的时间: *一、一、实验目的实验目的(1 1)掌握顺序表的基本运算,熟悉对顺序表的一些基本操作和具体函数的定义。 (2 2)掌握顺序表的存储结构及其基本操作。 (3 3)熟悉 c 语言程序的基本结构,掌握函数定义、调用等功能。 (4 4)熟悉 c 语言环境的使用及程序的输入、编辑、调试和运行的全过程。二二、实验要求实验要求(1)熟练掌握线性表的存储结构及其基本操作。 (2)理解所给出的算法,掌握顺序表在实际中的应用。 (3)将上机程序调试通过,并能独立完成一至两个拓展

2、题目。三、实验内容三、实验内容实现顺序表上的插入、删除等操作。调试程序并对相应的输出作出分析;修改输入数 据,预期输出并验证输出的结果。加深对有关算法的理解。 (1 1)主要内容:)主要内容: #define MAXSIZE 100 /*宏定义*/#define OVERFLOW -2 #include “stdio.h“ /*包含输入输出文件*/typedef int data; typedef struct /*定义顺序表的结构*/ data vecMAXSIZE; /*顺序表数据成员所占据的存储空间*/int last; /*顺序表中最后一个元素在数组中的下标(或向量中的位置) 从 0

3、开始*/sequenlist; int insert(L,i,x) /*在顺序表的第 i 个元素之前插入一个新元素 x*/sequenlist *L; int i; data x; int j;if(*L).last)=MAXSIZE-1)printf(“the list is overflow!n“);return(0); /*溢出判断*/elseif(i(*L).last+1)printf(“position is not correct!n“);return(0); /*插入位置不正确*/elsefor(j=(*L).last;j=i-1;j-) /*后移元素*/(*L).vecj+1=

4、(*L).vecj;(*L).veci-1=x; /*插入新元素*/(*L).last=(*L).last+1;/*修改 last 的值*/return(1); void DELETET(L,i) sequenlist *L; int i; int j; if(iL-last+2) printf(“删除的位置错误n“);else for(j=i;jveci);main()sequenlist sl=1,2,3,4,5,6,7,8,9,10,9;/直接给顺序表赋初值sequenlist *L;/*定义一个指向顺序表类型的指针变量*/int i,j,x;/elemtype e;L= /*给指针变量

5、赋值*/printf(“请输入你插入的位置和数n“);scanf(“%d,%d“,printf(“这个插入的位置: %d n 插入的数:%dn“,i,x);insert(L,i,x);listprint(L);printf(“请输入删除的位置:“);scanf(“%d“,DELETET(L,j);listprint(L); (2 2)预习思考题)预习思考题 (1)定义一个定位函数 locate(L,x),具有元素检索的功能。当顺序表中存在一个值为 x 的数据元素时,返回第一次找到的数据元素的位序,否则,给出一个值,表示值 为 x 的元素不存在。在主程序中调用该函数,分析操作结果。 算法如下 i

6、nt locat(L,x) /* x 由主函数输入并接受 locat 的返回值 */ sequenlist *L; int x; int i; for(i=0;ilast;i+) for( t = i+1; tlast;t+) if(L-veci = L-vect) for(j = t; jlast; j+) L-vecj-1 = L-vecj; L-last -; 运行程序前运行程序前 运行程序后运行程序后说明:主函数只需调用说明:主函数只需调用 delsame(L),delsame(L),把顺序表中重复的元素删除掉,只保留一个,并调用把顺序表中重复的元素删除掉,只保留一个,并调用 list

7、print(L)listprint(L)函数输出结果函数输出结果。四、算法设计与编码四、算法设计与编码1.1. 本实验用到的理论知识本实验用到的理论知识 顺序表的数据结构的定义,C 语言中循环语句,if 条件语句,函数定义、调用等相关 知识。 2.2. 算法概要设计算法概要设计 具体有以下函数: (1)insert(L,i,x) 在顺序表的第 i 个元素之前插入一个新元素 x. (2)deletet(L,i) 删除顺序表的第 i 个元素。 (3)listprint(L) 输出顺序表 (4)locate(L,x) 定位函数,具有元素检索的功能 (5)diverse(L) 逆置函数,把顺序表进行逆

8、置 (6)delsame(L), 把顺序表中重复的元素删除掉,只保留一个 主函数调用以上函数完成相关功能。 3.3. 运行与测试运行与测试 (1)在调试程序的过程中遇到什么问题,是如何解决的? 在定位时出现多次返回 0,在单步调试后,吧 return 0 放到 if 语句外。 (2)程序运行的结果如何?五、总结和心得五、总结和心得通过本次实验我学会了顺序表的基本运算,了解了顺序表的一些基本操作和具体函数,学会了定 义线性表的顺序存储类型。在实验过程中编写 insert 函数的时候对 if(*L).last)=MAXSIZE-1) 很不理解,不知道为什么是 MAXSIZE-1,而不是 MAXSIZE;

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

当前位置:首页 > 生活休闲 > 社会民生

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