美文网首页数据结构和算法分析算法
从零开始养成算法·篇二:线性表历练

从零开始养成算法·篇二:线性表历练

作者: 文竹_自然 | 来源:发表于2020-04-01 16:58 被阅读0次

    一、线性表定义及特色

    满足数据元素不同,但是在同一个线性表中的元素必定具有相同的特点,即属于同一数据对象, 相邻数据元素之间存在这个序偶关系. 诸如此类由(n>=0)个数据特性相同的元素构成的有限序列称为"线性表".

    线性表中的元素的个数n定义为线性表的长度,如果n = 0则称为空表.

    对于非空的线性表和线性结构,其特点如下:

    存在唯一的一个被称作"第一个"的数据元素

    存在唯一的一个呗称作"最后一个"的数据元素

    除了第一个之外,结构中的每个数据元素均有一个前驱

    除了最后一个之外,结构中的每个数据元素都有一个后继.

    二、顺序表初始化、插、删、改、查、清相关要点

    1、初始化:结构体数据的意义及作用。初始化理解参考数组的初始化

    定义及初始化

    2、插入:注意判断的临界点

    插入

    3、读取:

    读取也就是查

    4、删除:删除除了移位,记得减表长度

    删除具体

    5、清空:直接表长度置为0

    清空

    6、方法调用:建议参数有驼峰感,打印形成鲜明对比

    方法实现 结果打印

    三、线性表链式存储初始化、插、删、清相关要点

    1、初始化:线性表在链式存储时需要额外的指针域来记录结点间的关系;初始化需要注意的是我们常常在首元结点前添加头结点。这样可以便于操作首元结点,也便于空表和非空表的统一操作。

    初始化

    2、插入具体位置:位置唯一,数量唯一

    指定插入

    2、前插:数量可变、倒序插入(打印效果)

    前插

    2、后插:数量可变、顺序插入(打印效果)

    后插

    3.删除:回收节点删除内存

    删除

    4、清空:内存释放及头部指针域为空

    清表

    四、单链表与顺序表的对比(来自其他人优秀总结)

    (1)存储方式:顺序表用一组连续的存储单元依次存储线性表的数据元素;而单链表用一组任意的存储单元存放线性表的数据元素。

    (2)时间性能:采用循序存储结构时查找的时间复杂度为O(1),插入和删除需要移动平均一半的数据元素,时间复杂度为O(n)。采用单链表存储结构的查找时间复杂度为O(n),插入和删除不需要移动元素,时间复杂度仅为O(1)。

    (3)空间性能:采用顺序存储结构时需要预先分配存储空间,分配空间过大会造成浪费,过小会造成问题。采用单链表存储结构时,可根据需要进行临时分配,不需要估计问题的规模大小,只要内存够就可以分配,还可以用于一些特殊情况,如一元多项的表示。

    相关文章

      网友评论

        本文标题:从零开始养成算法·篇二:线性表历练

        本文链接:https://www.haomeiwen.com/subject/cteauhtx.html