二叉树
二叉树和链表有类似之处,链表的每一个节点拥有对应的next和prev
分别指向前后的链表节点.
struct list_head {
struct list_head *next;
struct list_head *prev;
};
二叉树的每一个节点拥有对应的左右节点left和right,
分别指向左右子节点.
struct tree_head {
struct tree_head *left;
struct tree_head *right;
};
链表是线性数据结构,二叉树则是层级结构,
层级结构的一个特点就是构造和遍历需要递归.
二叉树的作用
链表增删数据简单,查找麻烦
二叉树则兼顾了增删和查找的需要,适合用来管理大量的动态数据.
二叉树的实现
参见
https://github.com/sliver-chen/codingutil/tree/master/data_struct/binary_tree