图解线性表

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

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)

猜你喜欢

转载自www.cnblogs.com/wangzheming35/p/13200498.html