洛阳理工学院实验报告
系部 计算机系 课程名称 实验名称 实验目的: 掌握线性表的基本操作:插入、删除、查找在顺序存储结构上的实现。 实验条件: 电脑一台,VC++6.0软件。 实验内容与算法思想: 内容: 建立一有序的顺序表,并实现下列操作: 1. 把元素x插入表中并保持有序;2.查找值为x的元素,若找到将其删除; 3.输出表中各元素的值。 算法思想: 在一顺序存储结构的程序的主函数中利用switch语句实现多分支选择结构。程序的主要部分还有主函数中switch语句对输入数据(输入插入元素)函数、删除元素函数、输出已有元素函数的调用。其中在输入数据(输入插入元素)函数中先将元素插入到顺序表的表尾,再进行排序。 班级 B110505 数据结构 顺序表的基本操作 学号 B11050516 姓名 李满意 实验日期 2013.03.13 成绩 实验总结: 这是本学期的第一次试验,也是数据结构的第一次试验,经过试验对数据结构有了初步的了解,也培养了自己对数据结构的兴趣、增进了编程的能力。 经过这次顺序存储程序的编程实验,对顺序存储有了更深刻的理解。 附:源程序: #include
0 1
#define MAXSIZE 100 typedef int ElemType; typedef struct {
ElemType elem[MAXSIZE]; int last;
}SeqList;
void insert(SeqList *L) {
int elem;
int i,j,k,t; int flag=1;
printf(\请输入数据:\\n\while(flag) {
scanf(\if (elem==-1)
break;
if (L->last>MAXSIZE-1) { } L->last++;
printf(\顺序表已满!\\n\return;
L->elem[L->last]=elem;
}
k=L->last; }
int DelList(SeqList *L,int key) {
int i; int k; if (L->last<0) {
return ERROR; for(j=0;j for(i=0;i if(L->elem[i]>L->elem[i+1]) {t=L->elem[i];L->elem[i]=L->elem[i+1];L->elem[i+1]=t;} } } for (i=0;i<=L->last;i++) { } return ERROR; if (L->elem[i]==key) { } for (k=i;k void printSeq(SeqList *L) { int i; if (L->last<0) { } for (i=0;i<=L->last;i++) { } printf(\ printf(\if ((i+1)%8==0) { } printf(\ printf(\没有任何元素!\\n\ } void main() { int choice; int flag=1; int key; SeqList L; SeqList *pL=&L; pL->last=-1; printf(\退出\\n\ printf(\输入数据(输入插入元素)\\n\printf(\删除元素\\n\printf(\输出已有元素\\n\printf(\请输入选项:\while(flag) {printf(\请输入选项:\ scanf(\switch(choice) { case 1:insert(pL);break; case 2:printf(\请输入要删除的元素:\ scanf(\if (DelList(pL,key)) { } else printf(\输入的i,k值不合法!\\n\printf(\删除成功!\\n\ break; } } case 3:printSeq(pL);break; case 0:flag=0;break; default:printf(\请输入正确的选项序号!\\n\}