- 1、静态分配
- 2、栈空间初始化
- 3、顺序表插入
- 4、顺序表删除
- 5、输出顺序表
- 6、按值查找
1、静态分配
//宏定义
#define MaxSize 50 //表的最大长度
typedef int ElemType;//定义Elemtype为int类型
typedef struct
{
ElemType date[MaxSize];
int length; // length为表长度
} SeqList;
2、栈空间初始化
void InitSeqList(SeqList *Lq)
{
Lq->length = -1; //初始化表为空表
}
3、顺序表插入
代码如下(示例):
//int i为元素的位置 ElemType x为插入的新元素
void InsList(SeqList *Lq, int i, ElemType x)
{
//当表长等于最大值时为满
if (Lq->length == MaxSize - 1)
{
printf("已满");
}
//当插入的位置小于1或大于Lq->length + 2时插入不了
if (i < 1 || i > Lq->length + 2)
{
printf("出错");
}
//向后移动元素
for (int j = Lq->length; j >= i - 1; j--)
{
Lq->date[j + 1] = Lq->date[j];
}
Lq->date[i - 1] = x; //新元素插入
Lq->length++; //length指向最后的元素
})
4、顺序表删除
void DeleteList(SeqList *Lq, int i)
{
// ||用法:一个为真即为真
if (i < 1 || i > Lq->length + 1)
{
printf("不存在");
}
//向前移动元素
for (int j = i; j <= Lq->length; j++)
{
Lq->date[j - 1] = Lq->date[j];
}
Lq->length--;//length指向最后的元素
}
5、输出顺序表
void show(SeqList *Lq)
{
for (int i = 0; i <= Lq->length; i++)
{
printf("%d", Lq->date[i]);
printf("\t");
}
printf("\n");
}
6、按值查找
void LtSeqList(SeqList *Lq, ElemType x)
{
int i = 0;
//&&用法:两个真为真
while (i <= Lq->length && Lq->date[i] != x)
{
i++;
}
if (i > Lq->length)
{
printf("\n没有找到");
}
else
{
printf("\n找到了,在第%d的位置", i + 1);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)