数据结构:Python语言描述

聪明的数据结构配上愚笨的代码,远比反过来要好得多。

—Eric Raymond

这本教科书在讲解数据结构的过程中,还力图兼顾面向对象设计。如果忽略掉它的啰嗦之处,专注于数据结构本身的话,那么它还是不错的。

文摘

单链表结构相对于数组的主要优点并不是时间性能,而是内存性能。链表结构的物理大小不会超过其逻辑大小,当调整链表结构大小的时候,其时间和内存都是常数。

回溯算法从一个预定义的起始状态开始,随后从一个状态移动到另一个状态,以搜索想要的最终状态。回溯算法主要通过使用栈或递归来实现。

计算机科学中的大多数队列,都涉及调度对共享资源的访问。

树的最重要和有用的功能并不是定位其项,而是父节点和子节点之间的关系。二叉树的遍历有4种标准的类型:前序遍历、中序遍历、后序遍历、层序遍历。

一个完全二叉树的数组表示中,对于位于位置i的任意项,其相关项的位置:

位置

父节点

(i-1) // 2

左兄弟节点(如果有的话)

i-1

右兄弟节点(如果有的话)

i+1

左孩子节点(如果有的话)

i*2 + 1

右孩子节点(如果有的话)

i*2 + 2

图的两种常用的表示方式是相邻矩阵和邻接表。