数据结构和算法
文章平均质量分 69
jeremyke07
学习是件无止境的事情
展开
-
Go语言数据结构-栈
栈是一种先入后出的有序列表。限制了线性表中元素的插入和删除只能在线性表的同一端进行。允许插入和删除的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。原创 2022-10-24 18:46:20 · 592 阅读 · 0 评论 -
Go语言数据结构-队列
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列本身是有序列表,数组或链表实现,若使用数组的结构来存储队列的数据,则队列数组的声明如上图, 其中 maxSize 是该队列的最大容量。队列增加数据时候 rear增加;队列消费数据时候 front改变。原创 2022-10-25 23:41:08 · 672 阅读 · 0 评论 -
Go语言数据结构-链表
linked list,由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。我们常说的链表,结构有单向链表、双向链表和环形链表。原创 2022-10-27 00:29:38 · 636 阅读 · 0 评论 -
Go语言数据结构-二叉树
二叉树是一种数据结构,它是由 n(n≥1) 个有限节点组成一个具有层次关系的集合。根节点:最上面的节点;叶子节点:左右子节点都为nil的节点。每一个子树,左节点比根节点小,右节点比根节点大的二叉树,二叉树的节点无重复值。如果二叉树中除了叶子结点,每个结点的度都为2,则此二叉树称为满二叉树。如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。对于任何一个子树来说,左树高度和右树高度差不超过1。原创 2022-10-27 00:32:44 · 851 阅读 · 0 评论 -
Go语言数据结构-堆
堆是完全二叉树,且根节点比子节点都大的二叉树称为大根堆;反之称为小根堆。堆的英文是heap;heapSize = 节点个数。原创 2022-10-27 19:07:13 · 676 阅读 · 0 评论 -
Go语言数据结构-图
图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V, E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。线性表和树可以看做特殊的图。线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)线性表可以没有元素,称为空表;树中可以没有节点,称为空树;但是,在图中不允许没有顶点(有穷非空性)线性表中的各元素是线性关系,树中的各元素是层次关系,而图中各顶点的关系是用边来表示(边集可以为空)。原创 2022-10-27 19:12:30 · 792 阅读 · 0 评论