- 博客(12)
- 收藏
- 关注
原创 【Golang 数据结构与法算】 红黑树
GitHub完整代码完整代码package treeimport ( "data-structures-and-algorithms/contract" "data-structures-and-algorithms/queue" "fmt" "strings")// RedBlack 红黑树(4路平衡搜索树)// 红黑树约束(规定了红黑树的渐进平衡性):// (1) 树根始终为黑色// (2) 外部节点均为黑色// (3) 其余节点若为红色,则其孩子节点必为黑色/.
2021-12-23 11:34:58
476
原创 【Golang 数据结构与法算】B-树
GitHub完整代码代码实现package treeimport ( "data-structures-and-algorithms/contract" "data-structures-and-algorithms/queue" "fmt" "sort" "strings")var ( nilItems = make([]interface{}, 16) nilChildren = make([]*btreeNode, 16))// b-树节点// k0 .
2021-12-23 11:32:13
432
原创 【Golang 数据结构与法算】Avl 树
GitHub完整代码代码实现// Package tree AVL树,基于二叉查找树的基础上,新增局部节点施加约束:任意节点的左右子树高度差(平衡因子)不大于2.package treeimport ( "data-structures-and-algorithms/contract")// Avl Avl树type Avl struct { Bst}// NewAvl 新建空avl树func NewAvl(cmps ...contract.Comparator) *Avl.
2021-12-21 18:41:40
162
原创 【Golang 数据结构与法算】 Splay 伸展树
GitHub完整代码代码实现// Package tree 伸展树:基于局部性原理,将被访问的数据亦步亦趋的伸展至根节点,并在伸展过程中对树进行折叠(降低树高,双层伸展)package treeimport ( "data-structures-and-algorithms/contract")// Splay 伸展树type Splay struct { Bst}// NewSplay 新建空伸展树func NewSplay(cmps ...contract.Compar.
2021-12-21 18:39:48
484
原创 【Golang 数据结构与法算】Bst 二叉搜索树
github 完整代码查找树接口package treeimport "data-structures-and-algorithms/types"// Interface 查找树约束接口type Interface interface { Search(v types.Sortable) *BinNode // 二叉树元素查找 Insert(v types.Sortable) *BinNode // 二叉树元素插入 Remove(v types.Sortable) bool .
2021-12-19 22:49:36
353
原创 【Golang 数据结构与法算】BinTree 二叉树
github 完整代码二叉树节点// Package bintree 二叉树节点package bintreeimport ( "data-structures-and-algorithms/queue" "data-structures-and-algorithms/stack" "data-structures-and-algorithms/types")// BinNode 二叉树节点type BinNode struct { Data types.S.
2021-12-19 11:18:53
461
原创 【Golang 数据结构与法算】sort 冒泡排序算法
github 完整代码// Package sort 冒泡排序算法package sortimport "data-structures-and-algorithms/types"// BubbleSort 冒泡排序func BubbleSort(data types.Interface) { BubbleSortRange(data, 0, data.Size())}// BubbleSortRange 对[lo, hi)区间执行冒泡排序func BubbleSortRange.
2021-12-18 19:26:20
274
原创 【Golang 数据结构与法算】stack 堆栈
github 完整代码// Package stack 堆栈package stack// Stack 栈type Stack struct { elem []interface{}}// New 初始化空栈func New() *Stack { return new(Stack)}// Empty 当前栈是否为空func (s *Stack) Empty() bool { return len(s.elem) <= 0}// Size 栈元素个数func .
2021-12-18 19:25:15
274
原创 【Golang 数据结构与法算】 queue 队列
github 完整代码// Package queue 队列package queue// Queue 队列type Queue struct { elem []interface{}}// New 初始化空栈func New() *Queue { return new(Queue)}// Empty 当前队列是否为空func (q *Queue) Empty() bool { return len(q.elem) <= 0}// Size 队列元素个数fu.
2021-12-18 19:24:22
389
原创 【Golang 数据结构与法算】 forward_list 单向列表
github 完整代码package forward_listimport ( "data-structures-and-algorithms/types" "fmt" "strings")// Node 单向列表节点type Node struct { Data types.Sortable next *Node}// insert 插入v为当前节点后继func (e *Node) insert(v types.Sortable) *Node { p := &.
2021-12-18 19:23:13
87
原创 【Golang 数据结构语法算】 list 双向列表
github 完整代码// Package list 双向列表package listimport ( "data-structures-and-algorithms/types" "fmt" "strings")// Node 列表节点type Node struct { Data types.Sortable prev, next *Node list *List}// 新建节点func newNode(v types.Sortable, .
2021-12-18 19:22:10
180
原创 【Golang 数据结构与法算】 vector 向量
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-12-18 19:18:34
830
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人