数据结构 顺序表基本运算实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。
2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找等基本运算。
3.掌握对多函数程序的输入、编辑、调试和运行过程。
二、实验内容
1.预习C语言中结构体的定义与基本操作方法。
2.对顺序表的每个基本操作用单独的函数实现。
3.编写一个完整的程序实现顺序表的下列基本操作:
(1) 新建一个顺序表。。
(2) 打印输出顺序表中的元素。
(3) 在顺序表中查找某个元素。
(4) 在顺序表中指定位置插入元素。
(5) 在顺序表中删除指定位置的元素。
(6) 删除顺序表La中的某一元素。
编写一个主菜单,调用以上基本操作。
参考程序代码如下,请将其补充完整,并上机调试运行。
//顺序表的建立、查找、插入与删除,表元素为数字
#include
#include
#include
#define MAX 100 //表最大长度
//顺序表结构定义
typedef struct SeqList
{
int data[MAX]; //存放表结点
int length; //当前表长度
} SeqList;
//创建初始顺序表
SeqList *createList(int size)
{
int i;
SeqList *list;
; //分配空间
printf("请输入顺序表中的整数(可以不是从小到大排列),元素个数为%d\n",size);
; //逐一向顺序表中输入元素
; //顺序表的长度赋值
}
return list;
}
//打印顺序表中的现有元素
printList(SeqList *list)
{
int i=0;
printf("目前顺序表中有%d个元素\n", );
printf("这些元素分别是:\n");
; //依次打印输出顺序表中的元素
printf("\n");
}
//查找
locate(SeqList *list, int e)
{
int i;
; //依次比较顺序表中各个元素
if( ) //找到元素的处理
printf("要查找的元素%d处于顺序表的第%d位", , );
else
printf("找不到元素%d,该元素不在顺序表中,请核实后再查", ); //未找到元素的处理
}
//插入元素
insert(SeqList *list, int i , int e)
{
int j;
; //检查插入位置的合法性
; //检查表空满情况
; //从第n个元素开始到第i个元素依次向后移动一个位置
; //新元素e插入i位置
; //表长加1
; //插入成功信息提示
}
//删除元素
delete(SeqList *list, int i)
{
int j,temp;
; //检查删除位置的合法性
; //检查表空满情况
; //从第i个元素开始到第n个元素依次向前移动一个位置
; //表长加1
; //删除成功信息提示
}
void main()
{
int num,e,i;
int operate;
SeqList *list;
printf("*这是顺序表的运算实现实验!*\n");
printf("请先建立一个顺序表!\n");
printf("请输入初始顺序表的元素个数:(小于%d)\n",MAX);
scanf("%d",&num);
list=createList(num);
printList(list);
for(;;)
{
//选择顺序表操作动作
printf("请输入操作对应的数字进行顺序表的操作:\n");
printf("————查询(1)\n);
printf("————插入(2)\n);
printf("————删除(3)\n);
printf("————退出(0)\n);
scanf("%d",&operate);
switch(operate)
{
case 1:
printf("查询元素,请输入需要查询的数:\n");
scanf("%d",&e);
locate(list,e);
break;
case 2:
printf("插入元素,请输入需要插入的数:\n");
scanf("%d",&e);
printf("插入元素,请输入需要插入的位置:\n");
scanf("%d",&i);
insert(list,i,e);
printList(list);
break;
case 3:
printf("删除元素,请输入要删除数的位置:\n");
scanf("%d",&i);
delete(list,i);
printList(list);
break;
case 0:
exit(0);
}
}
}
三、实验环境
硬件环境:
软件环境:
四、调试过程
设计输入数据:
记录输出结果:
记录程序调试过程中遇到的问题和解决办法:
五、结论
实验中产生错误的原因分析: