数据结构与算法
陽光微涼
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单向链表与双向链表
线性表的链式存储 单向链表 链表的操作方法 创建链表 Create(数据集) 打印链表 Print() 获取链表长度 (数据结点的个数,不包含头结点)Length() int 插入结点:头插法 InsertByHead(数据) 插入结点:尾插法 InsertByTail(数据) 按位置插入:InsertByIndex(数据,index) 按位置删除:DeleteByIndex(index) 按数...原创 2019-07-19 02:19:33 · 189 阅读 · 0 评论 -
数据结构和算法简述
数据结构和算法简述 数据结构:数据组织、存储的基本形式。是算法的基础 算法:具体问题解决步骤的描述(指令集的集合) 算法的分类: 1.分治法(分步治理):有明确目标,有既定的执行方式。(拆分,解决小问题,合并)—— 开发中应用频率最高 2.最短路径法:有明确的目标,需要找寻有效地执行方式(刷完怪取找NPC交任务的路线) ——游戏开发中 3.贪婪(贪心):没有明确的目标,没有有效地执行方式(阿尔法狗...原创 2019-07-17 00:35:36 · 243 阅读 · 0 评论 -
go语言模拟切片的实现
go语言模拟切片的实现 切片的本质 // 定义切片类型 type Slice struct { Data unsafe.Pointer // Go语言中的 万能指针类型. void * C语言中的万能指针. 没有具体数据类型,不能进行运算. Len int // 数据元素个数 Cap int // 可扩展的有效容量 } C语言内存的使用 #include <stdlib.h>...原创 2019-07-17 01:15:05 · 256 阅读 · 0 评论 -
环形链表
环形链表 循环链表的方法 创建链表 Create(数据) 打印链表 Print() 获取结点个数 Length() int 插入结点 Insert(index, 数据) 删除结点 Delete(index) 销毁链表 Destroy() 获取循环链表长度 Length() 容错 定义计数器 i := 0 定义起始位置,记录第一个数据结点 start := node.Next 循环,后移nod...原创 2019-07-20 02:12:39 · 251 阅读 · 0 评论 -
链式栈与链式队列 Stack
链式栈 Stack 栈: 受限线性表。 收该中数据类型存储特性限制。 先进后出 FILO 依然是 链式存储 1:1 无论压栈(入栈)、弹栈(出栈)都属于 增、删操作。选用链式存。 实现链式栈,参照 单向链表(可以没有头结点,全部数据结点) 数据结构 type StackNode struct { Data interface{} Next *StackNode } 操作方法...原创 2019-07-20 02:15:21 · 372 阅读 · 0 评论 -
二叉树
树 线性表:1:1 树:1:N 根节点:只有后继,没有前驱 子结点: 既有前驱,又有后继 叶子结点:只有前驱,没有后继 树的定义: 互不相交的有限结点集合 只有一个根结点 树的特性: 只有一个前驱,可以有多个后继 树中可以有树(子树) 树可以为空,结点0 相关概念: 结点的度: 结点的直接后继个数 树的度: 先求每个结点分支数, 这些数中取max, 为“树”的度。 ...原创 2019-07-20 02:25:43 · 379 阅读 · 0 评论 -
排序算法
排序算法 冒泡排序 BubbleSort() 算法: 外层控制行 len(arr)-1 内层控制列 len(arr)-1-i 相邻数据比大小 满足条件进行交换 // 冒泡排序 func BubbleSort(arr []int) { // 外层控制行 for i:=0; i<len(arr)-1; i++ { // 内层控制列 for j:=0; j<le...原创 2019-07-22 14:00:28 · 271 阅读 · 0 评论
分享