-
数据结构:2-3树、B树、B+树、B*树
多路查找树 muitl-way search tree 在二叉树中,每个节点最多有两个子节点。如果允许每个节点可以有更多的数据项和更多的子节点,就是多路查找树,
-
数据结构:简化平衡二叉树旋转时节点交换的操作
说明 之前文章二叉树左旋、右旋、双旋时替换是new一个临时节点,使用根节点指向不变替换值的方式完成。可参见:https://www.zhangbj.com/p/
2021-02-20, Views: 1900 , Topics: 数据结构
-
数据结构:平衡二叉树的左旋、右旋和双旋
左旋 步骤 以当前节点的值,创建新的节点。 把新的节点的左子节点设置为当前节点的左子节点。 把新的节点的右子节点设置为当前节点的右子节点的左子节点。 把当前节
2021-02-19, Views: 2959 , Topics: 数据结构
-
数据结构:平衡二叉树
别称 平衡二叉搜索树:Self-balancing binary search tree。 AVL树:得名于它的发明者G. M. Adelson-Velsky和
2021-02-16, Views: 1643 , Topics: 数据结构
-
数据结构:满二叉树和完全二叉树
满二叉树 如图:所有叶子节点都在最后一层,并且节点总数为2^n-1。n为层数。 完全二叉树 如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一
2021-02-13, Views: 3129 , Topics: 数据结构
-
数据结构:树的常用术语
示意图 常用语 节点/节点对象(一个个小圆圈) 根节点/root节点 父节点 子节点 叶子节点 节点的权(节点的值) 路径:从ro
2021-02-11, Views: 2220 , Topics: 数据结构
-
数据结构:哈希表
定义 数组+链表:数组中的每个元素对应一个链表,加入元素时根据hash算法获得对应的数组索引,再插入到该索引对应的元素,即链表的末尾。 代码 func main
2021-02-11, Views: 2309 , Topics: 数据结构
-
前缀表达式、中缀表达式、后缀表达式
前缀表达式 Polish notation 又称波兰表达式,运算符位于操作数之前。 转换 (3+4)*5-6对应的前缀表达式为- * + 3 4 5 6。 扫描
2021-01-26, Views: 3355 , Topics: 数据结构
-
数据结构:栈-链表实现
定义链表的节点 type Node struct { Value string Next *Node } 定义链表栈 type LinkedL
2021-01-25, Views: 1920 , Topics: 数据结构
-
数据结构:栈-数组实现
定义数组栈 type ArrayStack struct { Top int Array []string } 定义入栈方法 func (s
2021-01-22, Views: 1501 , Topics: 数据结构
-
数据结构:环形链表-约瑟夫环
定义节点 type CircularNode struct { No int Next *CircularNode } 定义环形链表 typ
2021-01-21, Views: 1742 , Topics: 数据结构
-
数据结构:双向链表
定义双向节点 type DoublyNode struct { No int Name string Pre *DoublyNod
2021-01-20, Views: 1313 , Topics: 数据结构
-
数据结构:单向链表
定义单链表结构体 定义了HeadNode头节点。 type SinglyLinkedList struct { HeadNode *Node } 定义节
2021-01-19, Views: 1908 , Topics: 数据结构
-
数据结构:队列-数组实现
非循环 当head和tail索引到最后一位时,队列将无法再使用。 func main() { queue := &ArrayQueue{arr:
2021-01-18, Views: 1843 , Topics: 数据结构