顺序表的基本操作————插入
ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。
第i个位置称为:位序
用存储位置的相邻来体现数据元素之间的逻辑关系。
位序是从1开始,但是数组是从0开始。
注意位序,数组下标的关系,并从后面的元素依次移动
定义ListInset基本原理
main函数应用如下:
插入算法是基操:让自己的数据结构可以让被人很方便的使用。
用户的输入可能会存在某些问题(输入的插入位序超过或小于了顺序表的长度,存储空间已满及大于等于MAXSIZE时,不能插入):
返回布尔值,代码如下:
好的算法应当具有“健壮性”(能处理异常情况,并给使用者反馈)
下面来分析一下插入这种操作的时间复杂度:
关注的是最深层循环语句的执行次数与问题规模n的关系。
问题规模:n=L.length(表长)
记住可以有n+1种情况哦 !
当i=n+1,循环0次。
顺序表的基本操作————删除
specific node:
定义一个ListDelete函数:
跟之前ListInsert的原理差不多
同样是由i的合法值的判断:
从前面的元素依次移动
这里初始值设置e为-1,因为用引用符号把e带回来。如果不设置引用符号,那么输出的w元素值依旧为-1.
如果函数形参里面的L如果前面不加上引用符号,那么ListDelete函数不会生效,main函数里面的L依旧是L.
下面同样来分析删除操作的时间复杂度:
一样一样的:
知识点的回顾:
由于物理存储位置和逻辑位置都是相邻的:所以位置之后的元素都要移动。
C++线性表的删除实战代码:
结构体别名定义:d
结构体初始化这段node可以省略
ListDelete函数原理(注意函数的健壮性)
main函数
这里显示出 bool类型函数的作用,返回的是真或者假,可以直接用于if——else——判断
文章来源:https://www.toymoban.com/news/detail-816906.html
文章来源地址https://www.toymoban.com/news/detail-816906.html
到了这里,关于2.2-2顺序表的插入和删除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!