![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
eyedeng
https://github.com/eyedeng
展开
-
图
《Data Structures and Algorithm Analysis in C》(数据结构与算法分析 C语言描述) 目录拓扑排序 拓扑排序 条件:无圈。顶点v的入度定义为边(u, v)的条数。步骤: 找出任意没有入边(入度为零)的顶点,显示改点,删除它和它的边。 重复步骤1直到图为空。 复杂度O(|E| + |V|)。 void topo_sort(unordered_map<string, vector<string>> graph,原创 2020-09-22 19:28:08 · 156 阅读 · 2 评论 -
优先队列(堆)
《Data Structures and Algorithm Analysis in C》(数据结构与算法分析 C语言描述) 操作系统的作业调度需要使用有优先级的队列,优先队列最重要的两种操作: 插入 删除并返回最小值 实现:数组模拟的完全二叉树。 /* 二叉堆:parent (i) < children (2*i,2*i+1) */ struct HeapStruct { int capacity; int size; element_type *elements原创 2020-08-15 17:21:01 · 68 阅读 · 0 评论 -
散列
《Data Structures and Algorithm Analysis in C》(数据结构与算法分析 C语言描述) 目录分离链接法 目的:常数时间插入、删除、查找。 分离链接法 经散列函数映射后相同的(即冲突)关键字放在一个链表上。链表均长:n(关键字个数) / m(槽数、哈希表大小)。 struct ItemNode // 链上带value的节点 { key_type key; value_type value; ItemNode *next;原创 2020-07-15 00:24:10 · 94 阅读 · 0 评论 -
树
《Data Structures and Algorithm Analysis in C》(数据结构与算法分析 C语言描述) 构造表达式树 typedef char element_type; struct TreeNode { element_type element; TreeNode *left; TreeNode *right; TreeNode(element_type e, TreeNode * l, TreeNode * r){ element原创 2020-07-01 00:01:02 · 188 阅读 · 0 评论 -
栈&队列
链表实现 #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; /* 链式stack header --> 栈顶 --> ... 缺点:malloc,free开销大 */ typedef int element_type; struct Node { element_type element; Node *next原创 2020-06-17 22:55:12 · 90 阅读 · 0 评论 -
链表
《Data Structures and Algorithm Analysis in C》(数据结构与算法分析 C语言描述) #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; /* 带头节点header的链表 header --> first_node --> ... */ typedef int element_type; stru原创 2020-06-05 12:08:00 · 104 阅读 · 0 评论