数据结构实验三 顺序表的基本操作
一、【实验目的】
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;i } 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)。 注意:其中顺序表的数据是随机产生,请考虑如何设计从键盘输入。 三、实验源代码 四、实验结果 五、实验心得 因篇幅问题不能全部显示,请点此查看更多更全内容