C++顺序储存结构线性表一些学习体会

这篇博客介绍了如何使用C++实现顺序存储结构的线性表,包括初始化、判断空表、清空、获取元素、查找、插入、删除、获取长度和显示元素等操作。重点讨论了插入和删除操作的逻辑,插入通过从尾部遍历实现整体后移,删除则通过从删除位置开始向前遍历实现整体前移。
摘要由CSDN通过智能技术生成
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];
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值