顺序表操作
基本操作为:初始化、销毁、清空、获取长度、判断是否为空、取值、查找、插入、删除。
c语言实现:
#include<iostream>
using namespace std;
#define MAX 100
typedef struct Sq
{
int *elem;
int length;
}SqList;
// 初始化表
int InitSqList(SqList &L)
{
L.elem = new int[MAX];
if (!L.elem)
{
return 0;
}
else
{
L.length = 0;
return 1;
}
}
//判断表是否为空
int ListEmpty(SqList L)
{
if (L.length != 0)
{
return 1; //表存在且表长不为0,返回非空
}
else if (L.length == 0)
{
return 0;//表为空
}
}
//计算表长
int ListLength(SqList L)
{
return L.length;
}
// 输入操作
void Input(SqList &L)
{
int e;
int Loop = 1;
printf("请输入表的元素值(输入0结束):\n");
int i = 0;
while (Loop)
{
scanf("%d", &e);
if (e != 0)
{
L.elem[i++] = e;
L.length = i;
}
else
{
Loop = 0;
}
}
printf("输入结束!\n");
}
// 输出线性表中的所有值
void Output(SqList L)
{
printf("顺序表中的元素值为:\n");
for (int i = 0; i < L.length - 1; i++)
{
printf("%d ", L.elem[i]);
}
printf