• 图解线性表


    跟了几节王道课,发现在解决线性表问题时我们只需要形象地画出该线性表即可更好、更快地解决问题,对于考研者和数据结构初学小白来说很适用!

    1、认识线性表

    线性表:由n个数据元素组成的有限序列

    线性表由存储结构分为:顺序存储链式存储

    线性表的顺序存储结构称为顺序表(具有随机和顺序存取特性),如:数组

    线性表的链式存储结构称为链表(具有顺序存取特性),如:链队列、链栈

    2、顺序表

    因为具有随机存取特性(当做数组),因此便于查找,不利于删除和插入

    3、单链表

    在插入和删除时只需改变指针,所以更方便(比如删除a1,我们把头结点next指针指向a2即可)

    4、双链表

    5、循环单链表

    也称单向循环链表

    6、循环双链表

    也称双向循环链表

    这样观察更准确:

    关于head指针和rear指针等等,我们只需要在题目给出的情况下加上,而链表中指针的功能是指向下一个元素的地址

    7、一道例题

    参考于李春葆数据结构,研究透该题,做选择题一般就不会有任何问题了。(此处建议画图自行过一遍)

    注意:我在之前写单链表删除、插入操作时只需要改变指针,时间复杂度O(1);这里可以看出这些链表的插入和删除时间复杂度O(n),这是因为本题在考虑插入和删除前,要找到该元素,所以这应该是查找花费的时间,所以在考试时处理该种问题根据具体情况来看。

    8、题目1

    本题虽然是删除和插入,但是依照题目需求要考虑查找的时间。

    (1)

    (2)

    转化:找倒数最后(插入)和倒数第二个(删除)元素O(1)

    9、题目2

    加了蛮多计算机考研群,这种类型的题目对于跨考或者C语言基础不好的同学来说一般都是一脸懵逼,其实我们根据题目画出图像大致分析一下答案就出来了。

    (1)

    (2)

  • 相关阅读:
    ExcelUtil工具类-1
    图论-floyd算法-python实现
    流式编程一些简单的例子
    利用Stream实现简单的等差数列求和
    根据主机IP列表自动部署指定规模的redis cluster
    使用cgroup限制磁盘io读写速率
    consul kv导出和导入(备份)
    mysql8.0 运维相关新特性(未完待续)
    Rider写ASP.NET MVC调试报错
    网络协议知识串讲:搭建一个网络试验环境:授人以鱼不如授人以渔
  • 原文地址:https://www.cnblogs.com/wangzheming35/p/13200498.html
Copyright © 2020-2023  润新知