#include <stdio.h>
#define MaxSize 50
typedef int ElemType;
// 定义一个顺序表
typedef struct
{
ElemType data[MaxSize];
int length;
} SqList;
// 打印顺序表
void PrintList(SqList L)
{
for (int i = 0; i < L.length; i++)
{
printf("%4d", L.data[i]);
/* code */
}
printf("\n");
}
// 插入顺序表
bool INserList(SqList &L, int i, ElemType element)
{
// 1.判断i是否合法 逻辑与 ||逻辑或
if (i < 1 || i > L.length + 1)
{
return false;
}
// 2.判断存储空间是否满
if (L.length == MaxSize)
{
return false;
}
// 3.进行插入 后面的元素往后移放到插入的语句
for (int j = L.length; j >=i; j--)
{
/* code */
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = element;
L.length++;
return true;
}
bool DeleteList(SqList &L, int i, ElemType &e)
{
// 判断i是否合法
if (i < 1 || i > L.length)
{
return false;
}
e = L.data[i - 1];
// 删除
for (int j = i; j < L.length; j++)
{
L.data[j-1] = L.data[j];
}
L.length--;
return true;
}
int main()
{
// 初始化顺序表
SqList L;
L.length = 3;
L.data[0] = 1;
L.data[1] = 2;
L.data[2] = 3;
bool ret;
bool ret1;
PrintList(L);
ret = INserList(L, 1, 5);
if (ret)
{
printf("insert SQList success\n");
PrintList(L);
}
else
{
printf("insert SQList failure");
}
ElemType del;
ret1 = DeleteList(L, 2, del);
if (ret1)
{
/* code */
printf("delete sqlist success");
printf("del element= %d\n", del);
PrintList(L);
}
return 0;
}
顺序表的实现
最新推荐文章于 2024-09-14 13:16:14 发布