数据结构
算法+数据结构=程序
菜鸟皖皖
目前在读大学生,如果你恰好看到我,可以关注我博客和公众号,我们一起学习,一起进步!
展开
-
AVL实现
前言:前面是Avl树的介绍写的比较详细,这一篇主要写怎么实现最简单的旋转依次插入1 2 3节点,1的左子树为空高度为0,而右子树高度为2,旋转后,左右高度都为1单旋转依次插入6 3 7 1 4,插入2时,树的平衡被破坏步骤:获取k1节点=k2的左边节点设置k2的左边节点为k1的右边节点Y设置k1的右边节点为k2重新计算k2和k1的高度 private AvlNode&l...原创 2020-05-06 12:27:33 · 1027 阅读 · 0 评论 -
AVL介绍
AVL树概念AVL树是带有平衡条件的二叉查找树。这个平衡条件必须要容易保持。而且要保证它的深度是O(logN).AVL的条件是左右树的高度差(平衡因子)不大于1;并且它的每个子树也都是平衡二叉树。对于平衡二叉树的最小个数,n0=0;n1=1;nk=n(k-1)+n(k-2)+1;(求法可以类比斐波那契!)难点:AVL是一颗二叉排序树,用什么样的规则或者规律让它能够在复杂度不太高的情况下实现...原创 2020-05-06 12:25:27 · 3278 阅读 · 0 评论 -
数据结构与算法之二叉排序(查找)树
前言前面介绍学习的大多是线性表相关的内容,把指针搞懂后其实也没有什么难度。规则相对是简单的。再数据结构中树、图才是数据结构标志性产物,(线性表大多都现成api可以使用),因为树的难度相比线性表大一些并且树的拓展性很强,你所知道的树、二叉树、二叉排序树,AVL树,线索二叉树、红黑树、B数、线段树等等高级数据结构。然而二叉排序树是所有的基础,所以彻底搞懂二叉排序树也是非常重要的。树[外链图片转...原创 2020-05-06 12:22:43 · 1258 阅读 · 0 评论 -
数据结构之队列
队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以...原创 2020-05-06 12:09:45 · 235 阅读 · 0 评论 -
数据结构之栈
栈的基本介绍栈是一种只允许在一端进行插入或删除的线性表,也就是说先进后出。栈的操作端通常被称为栈顶,另一端被称为栈底,栈的插入操作称为压栈(push),栈删除操作称为出栈(pop)。压栈是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;出栈则是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。操作代码: public class Stack{ int top=-1;...原创 2020-05-06 12:08:44 · 296 阅读 · 0 评论 -
数据集结构之双向链表
双向链表也叫头尾链表,头尾链表可以在头结点和尾结点分别进行插入和删除操作首先建立结点类,代码如下:package firstlastlist;public class Node{ int data; //数据 public Node next; //节点下一个值 public Node privious; //节点上一个值 public Node(int...原创 2020-05-06 12:07:22 · 232 阅读 · 0 评论 -
数据结构之单向链表
单链表是链表中结构最简单的。一个单链表的节点 (Node) 分为两个部分,第一个部分 (data) 保存或者显示关于节点的信息,另一个部分存储下一个节点的地址。最后一个节点存储地址的部分指向空值。单向链表只可向一个方向遍历,一般查找一个节点的时候需要从第一个节点开始每次访问下一个节点,一直访问到需要的位置。而插入一个节点,对于单向链表,我们只提供在链表头插入,只需要将当前插入的节点设置为头节点,...原创 2020-05-06 12:06:02 · 328 阅读 · 0 评论 -
数据结构与算法之数组
1.概述数组是应用最广泛的一种数据结构,常常被植入到编程语言中,作为基本数据类型使用,因此,在一些教材中,数组并没有被当做一种数据结构单独拿出来讲解(其实数组就是一段连续的内存,即使在物理内存中不是连续的,在逻辑上肯定是连续的)。其实没必要在概念上做纠缠,数组可以当做学习数据结构的敲门砖,以此为基础,了解数据结构的基本概念以及构建方法数据结构不仅是数据的容器,还要提供对数据的操作方法,比如检索...原创 2020-05-06 12:04:48 · 259 阅读 · 0 评论 -
数据结构与算法之基本概念
1.概述数据结构之间的相互关系称为逻辑结构。通常分为四类基本结构:●集合:结构中的数据元素除了同属于一种类型外,别无其他关系。●线性结构:结构中的数据元素之间存在一对一的关系。●树形结构:结构中的数据元素之间存在一对多的关系。●图状结构或网状结构:结构中的数据元素之间存在多对多的关系。数据结构在计算机中有两种不同的存储方法:●顺序存储结构:数据元素在存储器中的相对位置来表示数据元素...原创 2020-05-06 12:03:32 · 2026 阅读 · 0 评论