5、双链表:搜索链表中节点的速度还可以更快吗

你好,我是王健伟。 上节课,我们学习了单链表的相关操作,我们会用它来对数据进行顺序存储,如果需要频繁增加和删除数据,同样也可以用到单链表。而它也可以衍生出好多种链表结构,双链表(也称双向链表)就是其中一种。 在单链表中,有一个指针域用于指向后继节点。...

4、单链表:如何通过指针提升插入、删除数据的速度

你好,我是王健伟。 今天我继续说一说“单链表”。 上节课我们提到过,顺序表(线性表的顺序存储)的最大缺点是,在插入和删除操作可能会移动大量元素,去保证元素之间的内存不能有空隙,而这,会导致程序的执行效率变低。 那我们要如何弥补这个缺点呢?这就涉及到了...

3、顺序表(下):常用操作合集与复杂度分析

你好,我是王健伟。 上节课,我们实现了向顺序表中插入元素的操作。 这节课,我们继续探讨顺序表的不同操作,和上节课一样,先从抽象模型开始理解,分析元素在不同操作下可能会发生的情况以及我们需要注意到的细节,再去理解操作的实现的代码。通过时间复杂度的分析,...

2、顺序表(上):如何实现快速地随机访问

你好,我是王健伟。 今天来聊一聊最基础的数据结构——“顺序表”。 在聊顺序表之前,首先我们要引入“线性结构”和“线性表”的概念。 线性结构与线性表线性结构是一种数据结构,其中保存的数据像一条线一样按顺序排列,数据之间是一对一的关系,也就是每个数据只有...

1、编程环境:工欲善其事,必先利其器

你好,我是王健伟。 俗话说,“工欲善其事,必先利其器”,今天我们就来说说编程环境的搭建。 搭建一个良好的编程环境对于后续的学习非常重要,所谓好的编程环境,是指这个编程环境易学,易用,让使用者很少出错,即便出现错误也能根据一些信息快速定位出错的位置。 ...

1910111213243