数据结构
文章平均质量分 77
笔记
guardwhy
这个作者很懒,什么都没留下…
展开
-
二叉堆树实现
1.1 基本概念二叉堆是一颗完全二叉树(区别于满二叉树),堆中某个结点的值总是不大于其父节点的值,通常这种堆称为最大堆(相应的可以定义最小堆),下层的某一元素不一定小于上层的某一元素。1、大顶堆(最大堆)最大堆的任何一个父节点的值,都大于或等于它左、右孩子节点的值。2、小顶堆(最小堆)最小堆的任何一个父节点的值,都小于或等于它左、右孩子节点的值。二叉堆的根节点叫作堆顶最大堆和最小堆的特点决定了:最大堆的堆顶是整个堆中的最大元素,最小堆的堆顶是整个堆中的最小元素。1.2存储原理完全二叉树原创 2021-12-19 19:18:12 · 742 阅读 · 0 评论 -
双向循环链表实现
1.1 基本介绍双向循环链表就是在双线链表的基础上首尾相连(第一个节点的prev指向最后一个节点,最后一个节点的next指向第一个节点)。1.2 添加操作1、思路分析头部插入当整个链表都为空时,添加操作。 头结点和尾节点都指向自己。 当链表不为空时,添加操作 先把当前头节点的上一跳地址给新元素的上一跳 然后让新节点的后驱指针指向head结点,再让head的前驱指针指向新元素。 更新head结点,让head结点指向新结点,更新tail结点,让tail的下一跳重新指向head原创 2021-12-15 17:19:38 · 1350 阅读 · 1 评论 -
单向循环链表实现
1.1 基本介绍循环链表,顾名思义,链表整体要形成一个圆环状。在单向链表中,最后一个节点的指针为null,不指向任何结点,因为没有下一个元素了。要实现循环链表,只需要让单向链表的最后一个节点的指针指向头结点即可。1.2 添加操作1、思路分析链表为空的时候让head和tail同时指向这个结点,让尾结点的下一跳指向头结点。 头部添加 先让要添加的元素指向head,然后再将head指针指向新结点。 最后让tail指针下一跳重新指向头结点 尾部添加 直接让新结点的下一跳指原创 2021-12-15 16:54:41 · 1530 阅读 · 0 评论 -
双向链表实现
1.1 基本介绍1、单向链表优缺点单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。单向链表不能自我删除,需要靠辅助节点 ,而双向链表则可以自我删除。2、双向链表基本介绍双向链表也叫双向表,是链表的一种,它由多个结点组成,每个结点都由一个数据域和两个指针域组成,数据域(data)用来存储数据,其中一个指针域(next)用来指向其后继结点,另一个指针域用来指向前驱结点(prev指针)。链表的头结点的数据域不存储数据,指向前驱结点的指针域值为null,指向后继结点的指针域指向第一原创 2021-12-15 13:22:12 · 2182 阅读 · 0 评论 -
单向链表实现
1.1 基本介绍链表(linked list)是一种在物理上非连续、非顺序的数据结构,由若干节点(node)所组成。链表中数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域(data),另一个是存储下一个结点地址的指针域(next)。(百度百科) 1.2 存储原理链表的每一个节点分布在内存的不同位置,依靠next指针关联起来。这样可以灵活有效地利用零散的碎片空间。链表的第1个原创 2021-12-15 13:18:35 · 852 阅读 · 0 评论 -
ALV平衡树实现
1.1 基本介绍平衡二叉树又称AVL树,是一种最早的自平衡二分搜索树结构,它是具有如下性质的二叉树:左、右子树是平衡二叉树;所有结点的左、右子树深度之差的绝对值≤1。满二叉树一定是平衡二叉树,高度最低。完全二叉树也是平衡二叉树,叶子节点深度相差不为1为了方便起见,给每个结点附加一个数字 = 该结点左子树与右子树的深度差。这个数字称为结点的平衡因子。这样,可以得到AVL树的其它性质(可以证明) :任一结点的平衡因子只能取: -1、0、1,如果树中任意一个结点的平衡因子的绝对值大于1,则这棵二原创 2021-12-15 12:42:18 · 710 阅读 · 0 评论 -
顺序表(数组)实现
1.1 基本介绍顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元,依次存储线性表中的各个元素、使得线性表中再逻辑结构上响铃的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。数组是最常见的顺序表,数组(Array)是有限个相同类型的变量所组成的有序集合,数组中的每一个变量被称为元素。数组是最为简单、最为常用的数据结构。 1.2 相关原理分析1、基本概念数组用一组连续的内存空间来存储一组具有相同类型的原创 2021-12-15 12:36:08 · 3396 阅读 · 0 评论 -
二分搜索树实现
1.1 基本介绍二叉搜索树是二叉树的一种,是应用非常广泛的一种二叉树,英文简称为BST又被称为:二叉查找树、二叉排序树,任意一个节点的值都大于其左子树所有节点的值,任意一个节点的值都小于其右子树所有节点的值,它的左右子树也是一棵二叉搜索树。二叉搜索树可以大大提高搜索数据的效率,二叉搜索树存储的元素必须具备可比较性。1.2 存储结构1、顺序存储二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置,也就是数组的下标要能体现出之间的逻辑关系。顺序存储结构在极端情况下浪费空间,只适原创 2021-12-12 15:42:05 · 532 阅读 · 0 评论