搜索
您的当前位置:首页数据结构实验3 顺序表的基本操作

数据结构实验3 顺序表的基本操作

时间:2022-03-05 来源:智榕旅游


数据结构实验三 顺序表的基本操作

一、【实验目的】

1、掌握建立顺序表的基本方法。

2、理解和掌握顺序表元素查找算法

3、掌握顺序表的插入、删除算法的思想和实现

二、【实验内容】

1、 建立一个顺序表,要求从键盘输入10个整数,并将该顺序表的元素从屏幕显示出来

2、 编写查找函数,在上面的顺序表中查找其中一个元素,如果找到,返回该元素在顺序表中的位置和该元素的值,否则提示无此元素。要求被查找元素从键盘输入。

3、编写插入和删除函数,由用户输入待插入元素及插入位置,将完成插入后的顺序表输出;由用户输入删除第几个元素,将完成删除后的顺序表输出。

以下是程序部分代码,请调试并补充使之正确运行:

#include

#include

#define MAXSIZE 10

typedef struct{

int *elem;

int length;

}SqList;

main()

{int i,x,y;

int LocateElem_Sq(SqList L,int e);

printf(\"请输入顺序表的长度\");

scanf(\"%d\

ST.elem=(int*)malloc(sizeof(int)*ST.length);

for(i=0;i<=ST.length-1;i++)

{ST.elem[i]=rand()%100;

printf(\"%d \

}

printf(\"请输入你要查找的数\");

scanf(\"%d\

y=LocateElem_Sq(x);

printf(\"%d\

printf(\"请输入你要插入的位置及元素值\");

scanf(\"%d,%d\

y=ListInsert_Sq(&ST,i,x);

for(i=0;iprintf(\"%d \

}

int LocateElem_Sq(SqList L,int e)

{int i,*p;

i=1;

p=L.elem;

while(i<=L.length && *p++!=e) ++i;

if(i<=L.length)return i;

else return 0;

}

int ListInsert_Sq(SqList *L,int i,int e)

{int j;

for(j=L->length;j>=i;j--)

L->elem[j+1]=L->elem[j];

L->elem[i]=e;

++L->length;

return 1;

}

上述代码提供参考,其中有的地方有错误,需要修改。请读懂以上代码,体会顺序表操作的C语言实现,注意函数调用过程中参数的值传递和地址传递。在此基础上完成顺序表的删除操作。

删除操作函数定义为:int ListDelete_Sq(SqList *L,int i)。

注意:其中顺序表的数据是随机产生,请考虑如何设计从键盘输入。

三、实验源代码 四、实验结果 五、实验心得

因篇幅问题不能全部显示,请点此查看更多更全内容

Top