![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
数据结构
爱吃番茄的鱼渔
这个作者很懒,什么都没留下…
展开
-
栈的输入输出(Java实现)最快实现
这和栈的结构有关,你可以把它看成一个有底没顶的容器,先进来的元素位于最底部,后进来的元素位于上面,由于它底部是封闭的,无法出入,所以只能在上面出入,因此,对于栈内的元素是先进后出。想要实现栈的输入输出,首先需要了解栈的特性。栈是基于数组进行的实现的,底层的就是数组元素。把这当作一个栈,size是一个指针,当元素1进栈时,size指针往后移一位,size++,其他元素步骤一样。由于栈是先进后出,所以出栈从元素5开始。当元素5出栈时,size需要往前移一位,所以需要。进栈元素:1,2,3,4,5。原创 2023-09-24 10:00:11 · 232 阅读 · 1 评论 -
一维数组的定义和基本使用
我们可以看出数组的地址是连续的,想要获取数组内的值,可以通过下标进行获取。数组是一种数据结构,它由一组相同类型的元素组成。注意数组的下标是从0开始的,在定义数组时,一定要声明数组的长度。原创 2023-10-17 22:12:06 · 237 阅读 · 1 评论 -
队列的输入输出(Java实现)首尾指针法
想要实现队列的输入输出,首先需要了解队列的特性。队列和栈一样是基于数组进行的实现的,底层的就是数组元素。对于队列来说,队列的最大特点是。为什么是先进先出呢?这和队列的结构有关。你可以把队列看作一根水管,是一个两头都没有封顶,因此,在队列里的数据是先进先出。原创 2023-09-25 19:59:05 · 186 阅读 · 1 评论 -
数组的插入
数组的插入和删除都需要移动数据元素,插入x作为第 i 个元素,首先必须将元素,ai+1.......an-1向后移动,空出第 i 个元素,然后将 x 插入。如果数组长度不够,则不能插入,称为数组溢出。解决数据 溢出 的办法是,申请一个更大容量的数组,并复制全部的数组元素,这样就扩充了顺序表的容量。原创 2023-10-18 20:58:58 · 70 阅读 · 0 评论 -
数组的扩容
首先,我们定义一个新数组,数组长度为老数组的长度+1,然后将老数组当中的值复制给新数组,将老数组的句柄指向新数组的堆内存空间。由于数组长度在定义后是不可变的,当我们给数组填入元素,填满以后就不能在添加数据了。因此,我们来解决一下数组长度不可变的问题。原创 2023-10-17 22:33:53 · 44 阅读 · 0 评论 -
平衡二叉树的四种旋转
平衡二叉树是一种特殊的有序二叉树,它的左右子树的高度差不超过1,这样可以保证树的高度始终在log(n)级别,从而保证了树的查找、插入、删除等操作的时间复杂度都是O(log(n))。在插入或删除节点时,需要通过旋转操作来保持树的平衡。其中,LL型、RR型、LR型、RL型是常见的旋转操作。在旋转操作中,需要保证降低树的高度和保持二叉排序树的性质。在构建平衡二叉树时,经常出现二叉树不平衡的现象,为了达到平衡就需要使用特殊的方法使二叉树变成平衡二叉树。LR型 。原创 2023-10-22 12:01:51 · 82 阅读 · 0 评论 -
数据结构
树:包括二叉树和多叉树。其中二叉树包括完全二叉树,满二叉树,有序二叉树,平衡二叉树,红黑树,哈夫曼树。多叉树包括B树和B+树。线性表:包括顺序表(数组,地址连续存储)和 链表(地址不连续存储)链表包括单项链表和双向链表。:是对大规模数据做一个合理的规划,提高操作效率,数据结构针对大规模数据,对小规模数据没有意义。数据结构包括线性表,栈和队列,哈希表,树,图。队列:队列内的数据遵循先进先出的特点。栈:栈内的数据遵循先进后出的特点。原创 2023-10-21 16:40:25 · 34 阅读 · 0 评论 -
数据结构
树:包括二叉树和多叉树。其中二叉树包括完全二叉树,满二叉树,有序二叉树,平衡二叉树,红黑树,哈夫曼树。多叉树包括B树和B+树。线性表:包括顺序表(数组,地址连续存储)和 链表(地址不连续存储)链表包括单项链表和双向链表。数据结构:是对大规模数据做一个合理的规划,提高操作效率,数据结构针对大规模数据,对小规模数据没有意义。数据结构包括线性表,栈和队列,哈希表,树,图。栈:栈内的数据遵循先进后出的特点。队列:队列内的数据遵循先进先出的特点。原创 2023-10-22 10:24:18 · 34 阅读 · 0 评论 -
数据结构——时间复杂度
其中,O(1)表示算法的执行时间不随输入规模的增加而增加,O(n)表示算法的执行时间随输入规模的增加而线性增加,O(n^2)表示算法的执行时间随输入规模的增加而平方级增加。1.y=ax+b a为系数,b为常数 当x足够大时,a和b对y的影响不大,所以y的值与x直接相关,即y=x 时间复杂度为O(n)2.y=ax^2+bx+c 当x足够大时,系数和常数影响不大,x的一次方不足以影响x^2,即y=x^2 时间复杂度为O(n^2)4.a^y=x y=logax 时间复杂度为O(logn)原创 2023-10-22 10:36:27 · 45 阅读 · 0 评论