2.2-2顺序表的插入和删除

这篇具有很好参考价值的文章主要介绍了2.2-2顺序表的插入和删除。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

顺序表的基本操作————插入

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

到了这里,关于2.2-2顺序表的插入和删除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包