Evanalysis
CSCI2520

CSCI2520:资料结构

针对 CSCI2520 资料结构基础的结构化笔记,重视操作层级推理与选择性互动示范。

你可以用侧栏逐章前进,或直接从下方进入某一节笔记。

6 章节
每一节都可以直接在页面阅读,也可以在需要离线复习时导出成静态版本。

课程目录

CSCI2520:资料结构

针对 CSCI2520 资料结构基础的结构化笔记,重视操作层级推理与选择性互动示范。

章节 0程序基础1
章节 2List 与 recursion1
章节 4Trees 与 BST1

章节 0

程序基础

资料结构笔记会反复用到的语言与内存工具。

0.1嵌入式互动

0.1 Pointer、内存与 struct

重温课程用来解释资料结构行为的 C 语言工具:pointer、malloc、typedef 与 struct 布局。

章节 1

ADT 与操作语义

由 ADT 规格走向 stack/queue 行为,再进入 dictionary 形式的 hashing 操作。

1.1嵌入式互动

1.1 ADT 操作:stack、queue 与 function pointer

以 ADT 角度精确理解 stack、queue 以及 C 语言中以 function pointer 进行操作分派的设计。

1.2嵌入式互动

1.2 Hash table 与 collision 策略

用 dictionary 操作、hash function、collision 与 chaining 去理解 hash table 为何以有序结构换取平均情况下的快速存取。

章节 2

List 与 recursion

递归 list 契约、head-tail 推理,以及受 representation 影响的操作成本。

2.1

2.1 作为递归 ADT 的 list

把 list 读成递归的 head-tail ADT,再比较 iterative 与 recursive 操作实作。

章节 3

复杂度与排序

渐进增长、成本比较与面向排序的复杂度推理。

3.1嵌入式互动

3.1 复杂度增长与算法成本

在实作排序或选择算法前,先解读渐进增长并比较成本。

3.2

3.2 Selection、quickselect 与 linear-time sorting

分清 selection 与完整 sorting,再用 quickselect、counting sort、radix sort 理解额外结构何时改善复杂度。

章节 4

Trees 与 BST

Binary tree traversal、reconstruction 与 binary-search-tree operations。

4.1

4.1 Binary tree 与 BST 操作

用 traversal order、reconstruction 与 BST invariant 推理 binary tree algorithms。

章节 5

Graph 与 priority queue

Graph traversal、spanning tree、shortest path、topological sorting、heap 与 Huffman coding。

5.1

5.1 Graph traversal、spanning tree 与 shortest path

比较 graph representations、DFS、BFS、spanning-tree algorithms 与 shortest-path reasoning。

5.2

5.2 Topological sort、heap 与 Huffman coding

把 DAG ordering、heap priority queue、Huffman coding 与 sorted-list merging 当作有结构限制的 greedy algorithms 来学。