数据结构与算法
陽光微涼
这个作者很懒,什么都没留下…
展开
-
单向链表与双向链表
线性表的链式存储单向链表链表的操作方法创建链表 Create(数据集)打印链表 Print()获取链表长度 (数据结点的个数,不包含头结点)Length() int插入结点:头插法 InsertByHead(数据)插入结点:尾插法 InsertByTail(数据)按位置插入:InsertByIndex(数据,index)按位置删除:DeleteByIndex(index)按数...原创 2019-07-19 02:19:33 · 143 阅读 · 0 评论 -
数据结构和算法简述
数据结构和算法简述数据结构:数据组织、存储的基本形式。是算法的基础算法:具体问题解决步骤的描述(指令集的集合)算法的分类:1.分治法(分步治理):有明确目标,有既定的执行方式。(拆分,解决小问题,合并)—— 开发中应用频率最高2.最短路径法:有明确的目标,需要找寻有效地执行方式(刷完怪取找NPC交任务的路线) ——游戏开发中3.贪婪(贪心):没有明确的目标,没有有效地执行方式(阿尔法狗...原创 2019-07-17 00:35:36 · 206 阅读 · 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 · 196 阅读 · 0 评论 -
环形链表
环形链表循环链表的方法创建链表 Create(数据)打印链表 Print()获取结点个数 Length() int插入结点 Insert(index, 数据)删除结点 Delete(index)销毁链表 Destroy()获取循环链表长度 Length()容错定义计数器 i := 0定义起始位置,记录第一个数据结点 start := node.Next循环,后移nod...原创 2019-07-20 02:12:39 · 202 阅读 · 0 评论 -
链式栈与链式队列 Stack
链式栈 Stack栈: 受限线性表。 收该中数据类型存储特性限制。 先进后出 FILO依然是 链式存储 1:1无论压栈(入栈)、弹栈(出栈)都属于 增、删操作。选用链式存。实现链式栈,参照 单向链表(可以没有头结点,全部数据结点)数据结构type StackNode struct { Data interface{} Next *StackNode}操作方法...原创 2019-07-20 02:15:21 · 316 阅读 · 0 评论 -
二叉树
树线性表:1:1树:1:N根节点:只有后继,没有前驱子结点: 既有前驱,又有后继叶子结点:只有前驱,没有后继树的定义:互不相交的有限结点集合只有一个根结点树的特性:只有一个前驱,可以有多个后继树中可以有树(子树)树可以为空,结点0相关概念:结点的度:结点的直接后继个数树的度:先求每个结点分支数, 这些数中取max, 为“树”的度。...原创 2019-07-20 02:25:43 · 325 阅读 · 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 · 222 阅读 · 0 评论