![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
ganganlee
这个作者很懒,什么都没留下…
展开
-
go语言实现 一致性hash算法
package toolimport ( "errors" "hash/crc32" "sort" "strconv" "sync")//申明切片类型type units []uint32//返回切片长度func (x units) Len() int { return len(x)}//比较两个值的大小func (x units) Less(i, j int) bool { return x[i] < x[j]}//切片中值交换func (x unit原创 2021-03-31 08:57:18 · 718 阅读 · 0 评论 -
golang 二叉树的遍历
二叉树的便利package mainimport "fmt"//二叉树的遍历//二叉树的遍历分为三种情况,前序遍历、中序遍历、后去遍历//定义二叉树type Node struct { Id int Name string Left *Node Right *Node}//前序遍历func (this *Node)PreOrder(node *Node) { if node != nil{ fmt.Println(node.Name) this.PreOrd.原创 2020-11-11 08:34:42 · 283 阅读 · 0 评论 -
golang实现hash表(散列)
使用hash原理,模拟数据库保存数据,直接操作内存编辑数据,package mainimport ( "errors" "fmt" "os")//hash链表的基本使用//思路//1、创建一个hash结构体,里面保存自己自定义数量的链表数组//2、创建一个链表,用来保存用户数据//3、每次插入前先计算插入的哪一个数组,根据id从小到大依次插入,这样做是为了查询快//定义方法type HashFunc interface { Push(link *Link) error.原创 2020-11-11 08:13:37 · 1460 阅读 · 0 评论 -
golang 实现闯迷宫小游戏
基于go语言写的闯迷宫小游戏,用递归的方式实现,没有使用GUI库,所以只能在命令行面板查看效果,实现思路:用二维数组模拟地图,用数组的值表示地图的相关信息,具体值参考代码注释,效果如下游戏开始前的地图游戏结束的地图(点为2表示这条路可以通过)package mainimport "fmt"//迷宫小游戏func main() { //定义迷宫地图 gameMap := [10][10]int{} for i := 0; i < 10; i++ { .原创 2020-11-07 08:54:15 · 550 阅读 · 0 评论 -
go语言 单链表与双链表的基本操作
单链表package mainimport "fmt"//单链表的基本使用type HeroNode struct { No int Name string Nickname string NextNode *HeroNode}//像链表追加元素func (this *HeroNode)AppendNode(node *HeroNode) { //定义一个过度变量,用来保存最后一个节点 tmp := this //找到链表的最后一个 for .原创 2020-10-28 08:19:38 · 220 阅读 · 0 评论