随笔分类 - Go
摘要:红黑树与AVL树一样同为二分搜索树,红黑树又称为是保持“黑平衡”的二叉树,红黑树最大高度为:2logn,红黑树由这么几个独特的特征: 1、每个节点或黑或红 2、根节点为黑色 3、每个叶子节点(最后的空节点)都为黑色 4、如果一个节点为红色,则他孩子节点全为黑色 5、从任意节点到叶子节点,经过的黑色节
阅读全文
摘要:前面主要介绍了AVL的基本概念与结构,下面开始详细介绍AVL的实现细节; AVL树实现的关键点 AVL树与二叉搜索树结构类似,但又有些细微的区别,从上面AVL树的介绍我们知道它需要维护其左右节点平衡,实现AVL树关键在于标注节点高度、计算平衡因子、维护左右子树平衡这三点,下面分别介绍; 标注节点高度
阅读全文
摘要:前面所讲的二叉搜索树有个比较严重致命的问题就是极端情况下当数据以排序好的顺序创建搜索树此时二叉搜索树将退化为链表结构因此性能也大幅度下降,因此为了解决此问题我们下面要介绍的与二叉搜索树非常类似的结构就诞生了; AVL(Adelson Velskii and Landis)树 ,名字取自其发明者 G.
阅读全文
摘要:Golang 1.11版本终于支持了官方的模块依赖管理功能,1.11以前想要实现依赖管理只能够通过借助第三方库来实现,1.11以前的版本Golang项目必须依赖以GOPATH,从当前版本开始Golang项目可以完全脱离GOPATH目录而工作,GOPATH将会逐渐被移除; Go Module Go m
阅读全文
摘要:二叉搜索树(Binary Search Tree)为非线性结构 ,树与链表一样为动态数据结构也可称二叉搜索树为多个链表所组成实现的,由于二叉搜索树性能比较高所以属于比较常用的数据结构;二叉搜索树每个节点除了Key外还存在指向左子树的Left节点与指向右子树的Right节点,如左或右子树不存在则该节点
阅读全文
摘要:排序可以说时最基础的算法之一,排序就是将数据按照某种逻辑重新排列的过程,比如从大到小排序、从小到大排序;排序非常常见比如有购物车物品的排序、历史订单的排序等等;算法我们比较关心的主要有两点: 时间复杂度 与 空间复杂度 ,排序算法一样;这篇文章只介绍几种基本的排序算法: 冒泡排序 、 插入排序 、
阅读全文
摘要:链表与数组一样同为线性数据结构 ,不少编程语言也自带了链表的实现,链表可以存放不同数据类型的数据; 与数组不同,数组占用内存结构必须为连续,而链表则不需要内存空间为连续的;链表由多个节点连接而成,每个节点除了存储当前节点的值外还存有指向链表中下一个节点的地址;链表也有多种结构:单链表、双向链表、循环
阅读全文
摘要:数组为线性数据结构 ,通常编程语言都有自带了数组数据类型结构,数组存放的是有个相同数据类型的数据集; 为什么称数组为线性数据结构:因为数组在内存中是连续存储的数据结构,数组中每个元素最多只有左右两个方向有相邻的元素;数组中的每个元素都有一个索引(或称下标)标识,这个索引在编程语言中通常都是从0开始,
阅读全文
摘要:熟悉网络编程的都清楚系统只有65535个端口可用,1024以下的端口为系统保留,所以除去系统保留端口后可用的只有65411个端口,而一个TCP连接由 TCP四元组(源IP、源端口、TCP、目标IP、目标端口) 唯一确定,所以单机一个网卡时客户端最多只能打开65411个TCP连接,而有时我们的TCP服
阅读全文
摘要:我的第一个Go程序!package mainfunc main(){ print("Hello,wo \n")}
阅读全文
浙公网安备 33010602011771号