数据结构
小根堆-大根堆
· ☕ 3 min read
理解堆的定义, 使用堆实现一个优先级队列, 查看 `java.util.Timer` 中的小根堆实现

二叉树-B+树-AVL树-红黑树-哈夫曼树
· ☕ 2 min read
二叉树: AVL树(自平衡二叉树) 红黑树 哈夫曼树(最优二叉树) B树不是二叉树 二叉树 二叉树的第 $i$ 层至多拥有 $ 2^{i-1} $ 个节点数; 深度为 $k$ 的二叉树至多总

二叉树集锦
· ☕ 3 min read
二叉树节点: 1 2 3 4 5 6 7 8 9 class BinaryTreeNode { int val; BinaryTreeNode left; BinaryTreeNode right; public BinaryTreeNode(int val) { this.val = val; } } 访问节点操作 1 2 3 void visit(BinaryTreeNode node) { System.out.print(node.val + " "); } 二叉树节点数目 如果是空树:返回0 如果不

动态数组C++实现
· ☕ 2 min read
回顾大二的数据结构知识。从数组开始。实现了一个可自动扩充容量的泛型数组。 头文件:Array.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

双向链表C++实现
· ☕ 1 min read
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #ifndef LinkList_hpp #define LinkList_hpp typedef struct Node{ int data; Node* next; Node* pre; }Node; class LinkList{ private: Node *head; Node *tail; int length; public: LinkList(); //分配内存,构建节点 Node* makeNode(); /

链表问题
· ☕ 1 min read
链表逆序 从尾到头打印节点 2018-04-16更新: 递归逆序链表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 class LinkNode(object): def __init__(self, val, next=None): self.val = val self.next = next def