. .
. v .
数据构造实验一 顺序表的实现
班级学号 分数
一、实验目的:
熟悉线性表的根本运算在两种存储构造〔顺序构造和链式构造〕上的实现;
以线性表的各种操作的实现为重点;
通过本次学习帮助学生加深C语言的使用,掌握算法分析方法并对已经设计出的算法进展分析,给出相应的结果。
二、实验要求:
编写实验程序,上机运行本程序,保存程序的运行结果,结合程序进展分析并写出实验报告。
三、实验容及分析:
建立一个含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。
程序如下:
:
*include<>
*include<>
*define LIST_INIT_SIZE 100
*define LISTINCREMENT 10
*define TRUE 1
*define FALSE 0
*define OK 1
*define ERROR 0
. .
. v .
*define INFEASIBLE -1
*define OVERFLOW -2
typedef int ElemType;
typedef int Status;
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
Status InitList_Sq(SqList *L)
{
L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L->elem) return(OVERFLOW);
L->length=0;
L->listsize=LIST_INIT_SIZE;
return OK;
}
Status CreatList_Sq(SqList *L,int n)
{
int i;
printf("输入%d个整数:\n",n);
for(i=0;i<n;i++)
. .
. v .
scanf("\n%d",&L->elem[i]);
return OK;
}
//以下是整个源程序:
*include<>
*include""
int main()
{
int i,n;
SqList a;
SqList *l = &a;
if(InitList_Sq(l)==-2) printf("分配失败");
printf("\n输入要建立的线性表l的长度n:");//输入线性表得长度
scanf("%d",&n);
l->length=n;
printf("线性表的长度是:%d\n",l->length);
CreatList_Sq(l,n);//生成线性表
printf("输出线性表l中的元素值:");//输出线性表中的元素
for(i=0;i<l->length;i++)
printf("%7d",l->elem[i]);
getchar();
}
. .
. v .
程序的运行结果:
利用前面的实验先建立一个顺序表L,然后再第i个位置插入元素,通过比照插入元素前后的线性表发生的变化,判断插入操作是否正确。
参考程序:
*include<>
*include<
数据结构实验一顺序表的实现 来自淘豆网m.daumloan.com转载请标明出处.