线性表采用顺序存储的静态分配方式实现
代码如下:
#include<stdio.h>
#define Maxsize 10
//struct SqList
//{
// int data[Maxsize];
// int length;
//};
typedef struct
{
int data[Maxsize];
int length;
} SqList;
void InitList(SqList &L)
{
L.length=0;
for(int i=0;i<Maxsize;i++)
{
L.data[i]=0;
}
}
bool InsertList(SqList &L,int index,int x)
{
if(index<1||index>L.length+1) return false;
if(L.length==Maxsize) return false;
for(int i=L.length-1;i>=index-1;i--)
{
L.data[i+1]=L.data[i];
}
L.data[index-1]=x;
L.length++;
return true;
}
bool DeleteList(SqList &L,int index,int &y)
{
if(index<1||index>L.length) return false;
y=L.data[index-1];
for(int i=index;i<L.length;i++)
{
L.data[i-1]=L.data[i];
}
L.length--;
return true;
}
bool PrintList(SqList L)
{
for(int i=0;i<L.length;i++)
{
printf("%d ",L.data[i]);
}
printf("\n");
}
bool SearchList(SqList L,int x)
{
for(int i=0;i<L.length;i++)
{
if(L.data[i]==x) return true;
}
return false;
}
int main()
{
SqList L;//声明一个顺序表L
InitList(L);//初始化L
InsertList(L,1,5);
InsertList(L,2,11);
InsertList(L,3,150);
int x=-999;
DeleteList(L,2,x);
printf("x===%d\n",x);
PrintList(L);//输出顺序表
// int %d
// float %f
// double %f
// long %ld
// long long%lld
// bool %d 0 false 非0 true
printf("%d\n",SearchList(L,99));
printf("%d\n",SearchList(L,150));
return 0;
}