C++顺序储存结构线性表大概意思是:如果个数大于0 非空线性表 除了第一个元素和最后一个元素,
每个元素有且仅有一个前继和一个后驱,第一个元素没有前驱,最后一个元素没有后继。个数等于0 是空表。
每个线性表大概都有一下函数:
InitList();初始化操作,建立一个空的线性表
ListEmpty();若线性表为空 返回 true 反之返回false
ClearList();将线性表清空
GetElem();将线性表L中的第i个位置元素值返回给e
LocateElem();在线性表L中查找与给定值相等的元素,找到返回改元素序号否则返回0
ListInsert();在线性表中的第i个位置插入新元素e
ListDelete();删除线性表L中的第i个位置元素 并返回其值
ListLength();返回线性表L的元素个数
ShowList();显示线性表元素
其中认为比较难的是插入和删除。在我的理解里,插入就相当于插队,插队的自然现象便是整体向后移,
那么插入也同理。为了实现整体往后移,肯定要从尾遍历,把第n个元素的值赋给第n+1元素,
这样就把想要插入的位置空出来了。
具体实现如下:
int Cpp_MyLinearlist::ListInsert(Cpp_MyLinearlist* L, status i, status e)
{
if (L->length == MAXSIZE)
return 0;
else if (i<1 || i>L->length + 1)
return 0;
else if (i <= L->length)
{
for (int k = L->length - 1; k >= i - 1; k--)
L->data[k + 1] = L->data[k];
C++顺序储存结构线性表一些学习体会
最新推荐文章于 2022-07-20 09:48:41 发布
这篇博客介绍了如何使用C++实现顺序存储结构的线性表,包括初始化、判断空表、清空、获取元素、查找、插入、删除、获取长度和显示元素等操作。重点讨论了插入和删除操作的逻辑,插入通过从尾部遍历实现整体后移,删除则通过从删除位置开始向前遍历实现整体前移。
摘要由CSDN通过智能技术生成