实验一:顺序表的基本操作
【实验目的】
1、掌握建立顺序表的基本方法。 2、理解和掌握顺序表元素查找算法
3、掌握顺序表的插入算法的思想和实现。 4、掌握顺序表的删除算法的思想和实现 【实验内容】
1、建立一个顺序表,要求从键盘输入10个整数,并将该顺序表的元素从屏幕显示出来。
2、用函数实现在顺序表中查找其中一个元素,如果找到,返回该元素在顺序表中的位置和该元素的值,否则提示无此元素。
3、用函数实现顺序表的插入和删除操作。由用户输入待插入元素及插入位置,
将完成插入后的顺序表输出;由用户输入删除第几个元素,将完成删除后的顺序表输出。 【实验源代码】 #include
typedef struct { int *k; int length; }SqList; main() {SqList a; int i,x,y;
int ListInsert_Sq(SqList &L,int i,int e);
printf(\请输入顺序表长度\scanf(\
a.k=(int*)malloc(sizeof(int)*a.length); for(i=0;i<=a.length-1;i++) {a.k[i]=rand()0; printf(\}
printf(\请输入要插入的位置和元素\\n\scanf(\y=ListInsert_Sq(a,i,x); for(i=0;i
int ListInsert_Sq(SqList &L,int i,int e) {int j;
for(j=L.length;j>=i;j--) L.k[j+1]=L.k[j]; L.k[i]=e; ++L.length; return 1; }
头文件:\typedef struct {
datatype list[maxsize]; int size;
}seqlist;
void ListInitiate(SeqList *L) //初始化顺序表L { }
int ListLength(SeqList L) //返回顺序表L的当前数据元素个数 { }
int ListInsert(SeqList *L,int i,int x) //在顺序表L的第i(0<=i<=size)个位置前插入数据元素值x {int j;
if (L->size>=10) //插入成功返回1,插入失败返回0 {
printf(\顺序表已满无法插入!\\n\return L.size;
L->size=0; //定义初始数据元素个数
}
return 0;
else if(i<0||i>L->size) { } else {
for(j=L->size;j>i;j--)
L->list[j]=L->list[j-1]; //从后面向前一次后以数据,未插入做准备 L->list[i]=x; //插入x L->size ++; //元素个数加1 return 1; } }
int ListDelete(SeqList *L,int i,int *x); {
int j;
printf(\参数i不合法!\\n\return 0;
if(L->size<=0)
printf(\顺序表已空无数据元素可删!\\n\return 0; }
else { } }
int ListGet(SeqList L,int i,int *x) { }
【实验结果】
if(i<0||i>L。size-1) { } else { }
*x=L.list[i]; return 1;
printf(\参数i不合格!\\n\return 0; *x=L->list[i];
for(j=i+1;j<=L->list-1;j++)
L->list[j-1]=L->list[j];
L->list--; return 1;
【实验心得】