数据结构
数据结构是一门满足算法的学科,学习数据结构要多从生活中发现问题,用程序来解决
Cas狗
技能库:html,css,JQ,C#,Go,Linux,Git,docker,k8s,Zookeeper,kafka,网络协议
展开
-
数据结构之二叉树
数据结构之二叉树 一、二叉树图示 二、构建二叉树 下面代码只构建了上图中部分二叉树,需要请自行补全 //构建二叉树 A:=&Tree{ //根节点 name:"A", } B:=&Tree{ name:"B", } C:=&Tree{ name:"C", } A.left=B A.right=C D:=&Tree{ name:"D", } E:=&Tree{ name:"D",原创 2021-03-07 00:30:53 · 57 阅读 · 0 评论 -
数据结构之哈希表
数据结构之哈希表 本文使用例子来说明hash的作用以及相关的使用 思路分析: 首先定义一个数组储存链表,每一个数组元素的链表都储存用户,本例子通过id来区分,当链表中原创 2021-03-06 23:51:48 · 81 阅读 · 0 评论 -
数据结构之栈
数据结构之栈 一、入栈 package main import ( "fmt" "errors" ) type Stack struct{ maxTop int Top int arr [5]int } func (this *Stack) Push(val int)(err error){ if this.Top==this.maxTop-1{ return errors.New("Stack full") } this.Top++ this.arr[this.Top]=v原创 2021-03-04 00:31:42 · 260 阅读 · 5 评论 -
数据结构之排序
数据结构之排序 一、冒泡排序 思路:首先把最大的放后面,然后把第二大的放后面 程序设计:使用循环一个一个比较 package main import ( "fmt" ) func main(){ var arr [5]int=[5]int{21,11,32,17,5} //排序数组 for i:=0;i<len(arr)-1;i++{ for i:=0;i<len(arr)-1;i++{ if arr[i]>arr[i+1]{ temp:=arr[i]原创 2021-03-02 22:35:18 · 49 阅读 · 0 评论 -
数据结构之链表
数据结构之链表 一、单链表 Go语言中单链表用type结构体实现 type Node struct{ 属性1 属性2 next *Node } 上述中next *Node就表示途中的链条,每个结构对象的最后一个属性都是另外一个结构对象,这样也就实现了链表的连接 下面展示链表的添加和显示: type Node struct{ num int name string next *Node //指向下一个节点 } func InsertNode(head *No原创 2021-03-01 00:36:23 · 74 阅读 · 0 评论 -
数据结构之队列
数据结构之队列(Queue) 一、定义 1) 队列是一个有序列表,可以用数组或者链表实现 2) 遵循先进先出的原则 二、 非环形队列 1、设计思路: 1)创建一个数组Array,作为队列的一个字段; 2)front(前端位置)初始化为-1; 3) real,表示队列尾部,初始化为-1 4) 完成队列的基本查找 AddQueue //加入队列 GetQueue //取出元素 ShowQueue //显示队列 type Queue struct{ maxSize int front int原创 2021-02-23 01:14:57 · 117 阅读 · 0 评论 -
数据结构之稀疏数组
数据结构之稀疏数组(Sparsearray) 一、使用条件 当一个数组中大部分元素都是0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 eg:记录五指棋的棋盘、发送消息时的大量重复信息 二、处理方法 1)记录数组一共有几行几列,有多少个不同的值; 2)把不同的值得元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 三、图解例子 解析:左边为一个数据比较多的6*7的二维数组,储存的时候会比较多,可以使用稀疏数组储存该二维数组达到提升效率的效果,右图中row代表左图的行,col代表列,val原创 2021-02-22 21:18:25 · 91 阅读 · 0 评论