数据结构顺序表实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Intlast;
}SeqList;
3.模块划分
(1)创建顺序表输入函数:void Input(SeqList *L,int n);
(2)创建顺序表输出函数:void Output(SeqList *L);
(3)创建顺序表的内容查找函数:int Locate(SeqList L,ElemType e);
printf(”\n”);
Output(la);
}
5。测试数据及结果
实验总结:
经过调试与测试,实验结果与测试预期一致。顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。
{printf("删除位置不合法!\n");
return(ERROR);
}
*e = L->elem[i—1];/*将删除的元素存放到e所指向的变量中*/
for(k=i;k<=L-〉last;k++)
L->elem[k-1] = L—〉elem[k];/*将后面的元素依次前移*/
L-〉last--;
return(TRUE);
L—〉last++;
return(OK);

int DelList(SeqList *L,int i,ElemType *e) //删除函数
/*在顺序表L中删除第i个数据元素,并用指针参数e返回其值。i的合法取值为1≤i≤st+1 */
{int k;
if((i<1)||(i>L-〉last+1))
(4)创建顺序表的插入函数:int InsList(SeqList *L,int i,ElemType e);
(5)创建顺序表的删除函数:int DelList(SeqList *L,int i,ElemType *e);
(6)主函数:void main()
4.详细设计
#include〈stdio。h>
洛阳理工学院实验报告
系别
计算机
班级学号姓名Fra bibliotek课程名称
数据结构
实验日期
10/23
实验名称
顺序表的基本操作
成绩
实验目的:
熟悉掌握线性表顺序存储结构,掌握与应用顺序表的查找、插入、删除等基本操作算法,训练和提高结构化程序设计能力及程序调试能力。
实验条件:
计算机一台,Visual C++6。0
实验内容:
1.问题描述
scanf(”%d",&q);
p=Locate(l,q);
if(p == -1)
printf(”在此线性表中没有该元素! \n");
else
printf(”该元素在线性表中的位置为:%d \n",p);
//插入元素(在i处插入元素e)
printf(”请输入要插入的位置:\n”);
scanf("%d”,&k);
以顺序表为存储结构实现以下基本操作:
(1)在第i个元素前插入一个新元素。
(2)查找值为x的某个元素。若成功,给出x在表中的位置;不成功给出提示信息。
(3)删除第i个元素,若成功,给出提示信息并显示被删元素的值;不成功给出失败的提示信息。
2.数据结构类型定义
typedef struct
{ElemTypeelem[MAXSIZE];
printf(”请输入要插入的元素值:\n”);
scanf("%d",&j);
InsList(la,k,j);//调用插入函数
Output(la);
//删除元素删除第i个元素
printf("请输入需要删除的元素的位置:\n”);
scanf(”%d",&m);
DelList(la,m,&num);
printf("删除成功,删除的元素为%d”,num);
#include〈stdlib。h〉
#include <malloc.h〉
#define OK 1
#define ERROR —1
#define TRUE 1
#define FALSE 0
#define ElemType int
#defineMAXSIZE 100 //最大长度
typedef struct
i++;
if(i<=st)
return(i+1); //返回序号
else
return(—1);

int InsList(SeqList*L,int i,ElemType e)//插入数据
{int k;
if((i〈1)|| (i>L—〉last+2)) /*首先判断插入位置是否合法*/
{printf(”插入位置不合法\n");
{ int i;
for(i=0; i<=L—〉last; i++)
printf(”%2d,”,L—>elem[i]);
printf("\n”);
}
int Locate(SeqList L,ElemType e)//内容查找函数
{int i;
i=0;
while((i〈=st)&&(L。elem[i])!=e)
}
void main()//主函数
{SeqList l,*la;
int p,q,r,k,j,m,num;
printf(”请输入线性表的长度:");
scanf("%d”,&r);
st = r-1;
la=&l;
Input(la,la—〉last+1);
Output(la);
//按内容查找元素
printf("请输入要查找的元素值:\n”);
return(ERROR);

if(L-〉last>= MAXSIZE—1)
{printf(”表已满无法插入”);
return(ERROR);

for(k=L—>last;k>=i—1;k—-) //为插入元素而移动位置
L->elem[k+1]=L->elem[k];
L—〉elem[i—1]=e; //第i个元素的下标为i—1
{ElemType elem[MAXSIZE];
int last;
}SeqList;
void Input(SeqList*L,int n)//输入函数
{ int i;
printf("请输入线性表的各元素值:\n");
for(i=0;i<n;i++)
scanf("%d”,&L—〉elem[i]);
}
void Output(SeqList *L) //输出函数
相关文档
最新文档