随笔分类 - 数据结构和算法
摘要:1. 单链表的操作 is_empty(): 链表是否为空 length(): 链表长度 travel(): 遍历整个链表 add(item): 链表头部添加元素 append(item): 链表尾部添加元素 insert(pos, item): 指定位置添加元素 remove(item): 删除节点
阅读全文
摘要:单向链表 单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。 表元素域elem用来存放具体的数据。 链接域next用来存放下一个节点的位置(python中的标识) 变量p指向链
阅读全文
摘要:1. 链表的定义 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。 2. 为什么需要链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬
阅读全文
摘要:Python中的顺序表 Python中的list(列表)和tuple(元组)两种类型采用了顺序表的实现技术 tuple是不可变的顺序表,因此不支持改变其内部状态的任何操作,而其他方面,则与list的性质类似 listr的基本实现技术 Python标准类型list就是一种元素个数可变的线性表,可以加入
阅读全文
摘要:顺序表的操作 1. 增加元素 a. 尾端加入元素,时间复杂度为O(1) b. 非保序的加入元素(不常见),时间复杂度为O(1) 在哪个位置插入元素,就把哪个位置的元素移到最后面,然后在该位置插入新元素 c. 保序的元素加入,时间复杂度为O(n) 在哪个位置插入元素,就把该位置的元素和其后的所有元素,
阅读全文
摘要:线性表是最基本的数据结构这一,在实际程序中应用非常广泛,它还经常被用途更复杂的数据结构的实现基础 根据线性表的实际存储方式,分为两种实现模型: 顺序表 : 将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。 链表 :将元素存放在通过链接构造起来的一系列存储块中。
阅读全文
摘要:算法与数据结构的区别 数据结构只是静态的描述了数据元素之间的关系。 高效的程序需要在数据结构的基础上设计和选择算法。 程序 = 数据结构 + 算法 总结:算法是为了解决实际问题而设计的,数据结构是算法需要处理的问题载体 抽象数据类型(Abstract Data Type) 抽象数据类型(ADT)的含
阅读全文
摘要:1. list内置操作的时间复杂度 2. dict内置操作的时间复杂度
阅读全文
摘要:一般情况下 常见的时间复杂度: 时间从小到大 O(1)
阅读全文