江西师范大学计算机信息工程学院实验报告(实验一)
专业计算机科学与技术1班姓名欧阳文彦学号 1208065055 日期 9月1日
课程名称
数据结构
实验室名称
X4313
实验名称
顺序表的创建、查询、插入、删除、打印输出
指导老师
杨庆红
成绩
1、实验目的
利用顺序表的各种运算,编写一个完整的程序,实现顺序表的创建、查询、插入、删除、打印输出等功能
2、实验原理和内容
(1)线性表的顺序存储及其实现
(2)顺序表的插入、查询、删除的算法实现
3、实验步骤
分析问题,提出解决问题的算法
编译程序
程序调试
记录实验结果,以及思考是否能够改善算法
4、程序及运行结果(或实验数据记录及分析)
#define MAXSIZE 100
typedef int datatype;
typedef struct{
datatype a[MAXSIZE];
int size;
}sequence_list;
void init(sequence_list *slt)
{
slt->size=0;
}
void append(sequence_list *slt,datatype x)
{
if(slt->size!=MAXSIZE)
{
slt->a[slt->size]=x;
slt->size++;
}
else
printf("顺序表已满!");
}
void display(sequence_list slt)
{
int i;
if(==0)
printf("顺序表是空的!");
else
for(i=0;i<;i++)
printf("%d ",[i]);
printf("\n");
}
int empty(sequence_list slt)
{
return(==0?1:0);
}
int find(sequence_list slt,datatype x)
{
int i=0;
while(i<&&[i]!=x)
i++;
return(i<?i:-1);
}
datatype get(sequence_list slt,int i)
{
if(i<0||i>=)
{printf("\nnot exist!");exit(1);}
else return([i]);
}
void insert(sequence_list *slt,datatype x,int position)
{
int i;
if(slt->size==MAXSIZE)
{printf("\nfull!cannot insert!");exit(1);}
if(position<0||position>slt->size)
{printf("not exist!");exit(1);}
for(i=slt->size;i>position;i--)
slt->a[i]=slt->a[i-1];
slt->a[position]=x;
slt->size++;
}
void dele(sequence_list *slt,int position)
{
int i;
if(slt->size==0)
{printf("\nempty!");exit(1);}
if(position<0||position>=slt->size)
{printf("not exist!");exit(1);}
for(i=position;i<slt->size-1;i++)
slt->a[i]=slt->a[i+1];
slt->size--;
}
int main()
{
sequence_list l;datatype x;int j;
init(&l);
printf("input some datas and end of number -1:\n");
scanf("%d",&x);
while(x!=-1)
{
append(&l,x);
scanf("%d",&x);
}
display(l);
printf("\n请输入要查找的数x:");
scanf("%d",&x);
printf("\nx的位置为%d",find(l,x));
printf("\n请输入要取的数的位置j:");
scanf("
数据结构实验报告 来自淘豆网www.taodocs.com转载请标明出处.