数据结构
豫南、二少
一点一滴从这里开始
展开
-
次优查找树 - golang
背景在有序表的查找中,折半查找假设每个元素被查找的概率是相同的。现实情况下,文本中的字符被查找的概率是不相同的,为了使算法总体查找的平均长度最优化。一般会考虑构建最优查找树来处理。最优静态查找树PH=∑i=1ncpi PH = \sum_{i=1}^{n}cp_iPH=i=1∑ncpi注1 ccc是常量2 pip_ipi是关键字的被查找概率所得PH值最小的二叉树就是最优查找树注缺点:时间复杂度O(n3)O(n^3)O(n3)次优查找树为了规避最优查找树构建的高时间复原创 2020-09-25 16:49:27 · 718 阅读 · 0 评论 -
有向无环图的拓扑排序学习(golang)
思想1 从图中删除入度为0的顶点2 删除以顶点为弧尾的边,并将弧头的入度减13 重复1,2步骤直到网为空或者网不存在无前驱的顶点(有环)存储方式使用领接表来存储图的相关信息,便于图中各顶点入度的求解。具体实现//DAG有向无环图的拓扑排序(采用邻接表存储)package mainimport "fmt"//ArcNode is arc nodetype ArcNode struct { adjvex int next *ArcNode}//VNode is verte原创 2020-09-16 13:00:27 · 592 阅读 · 0 评论 -
算术表达式运算栈实现-数据结构-golang
算术表达式运算栈实现-数据结构-golangpackage mainimport ( "fmt" "log" "strconv")//运算符stacktype opStack []string//操作数stacktype dataStack []int//操作符的优先级标识type priority map[string]map[string]intvar p = make(priority)func main() { ops := opStack{} init原创 2020-07-07 14:16:45 · 232 阅读 · 0 评论