1、 运行样例程序,理解静态分配顺序存储结构的线性表的下列基本操作。
(1)初始化顺序表(2)创建顺序表(3)判断空表(4)求顺序表长度
(5)输出顺序表(6)取顺序表位置 i 的元素值(7)在顺序表中查找值为 e 的元素位置
(8)向顺序表中插入一个元素(9)从顺序表中删除一个元素
2、采用书上第 22 页定义的线性表动态分配顺序存储结构,编程实现书中算法 2.3、算法 2.4 和算法 2.5。
例题1:
#include <stdio.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];//存放顺序表元素//
int length;//存放数据表长度
}SqList;
void InitList(SqList &L)
{
L.length=0;
}
void CreateList(SqList &L,int n)
{
int i;
printf("输入%d个元素: \n",n);
for(i=0;i<n;i++)
scanf("%d",&L.data[i]);
printf("\n");
L.length=n;
}
int ListEmpty(SqList L)
{
return (L.length==0);
}
int ListLength(SqList L)
{
return (L.length);
}
void DispList(SqList L)
{
int i;
if(L.length==0)return;
for(i=0;i<L.length;i++)
printf("%d",L.data[i]);
printf("\n");
}
int GetElem(SqList L,int i,ElemType &e)
{
if(i<1||i>L.length)
return 0;
e=L.data[i-1];
return 1;
}
int LocateElem(SqList L,ElemType e)
{
int i=1;
while(i<=L.length&&L.data[i-1]!=e)i++;
if(i<=L.length)
return i;
else
return 0;
}
int ListInsert(SqList &L,int i,ElemType e)
{
int j;
if(i<1||i>L.length+1)return 0;
for(j=L.length-1;j>=i-1;j--)
L.data[j+1]=L.data[j];
L.data[i-1]=e;
++L.length;
return 1;
}
int ListDelete(SqList &L,int i,ElemType &