概述 栈就是一种只允许在表尾进行插入和删除操作的线性表 栈的特点 先进后出,在表尾进行插入和删除操作 数组实现栈 crown crown:使用crown来确定栈顶所在数组的下标,默认为-1 空栈 当空栈时,crown=-1 栈是否为空 当crown=-1时,栈为空,不能遍历,出栈,获取栈顶元素 栈是否已满 当crown=数组.length1时,栈已满,不能入栈 入栈 栈未满,才能入栈 先将crown上移,再给数组下标为crown的元素赋值 栈满,不能入栈 出栈 栈不为空,才能出栈 将crown往下移即可 栈为空,不能出栈 获取栈顶元素 栈不为...

  pRinDxvU9ScI   2023年11月01日   148   0   0 算法与数据结构

引入 当在网页上下棋类游戏时,玩到中途想要离开,但是我们需要保存进度,方便下次继续 我们应该怎么实现? 以围棋举例 使用二维数组将棋盘记下,如0为没有棋子,1为黑子,2为白子 但是没有棋子的地方都为0,整个二维数组充斥着大量的无效数据0 我们需要想一个办法来优化存储的方式 基本介绍 当一个数组中大部分元素是同一个值时,我们可以使用稀疏数组来保存该数组 稀疏数组:是将一个有效元素的坐标和值记录在一个小规模数组中 该有效数组的头部(第一行) 记录了原数组一个有几行,几列,有多少个有效值 该数组剩下的行数 是由有效值的个数来决定的,即一个有效数占据一行 ...

  pRinDxvU9ScI   2023年11月01日   115   0   0 算法与数据结构

引入 冒泡排序顾名思义,就是像冒泡一样,泡泡在水里慢慢升上来,由小变大。 虽然冒泡排序和冒泡并不完全一样,但却可以帮助我们理解冒泡排序。 思路 一组无序的数组,要求我们从小到大排列 我们可以先将最大的元素放在数组末尾 再将第二大的数放在数组的倒数第二个位置 再将第三大的数放在数组的倒数第三个位置 以此类推 那么现在问题的关键就是如何将第n大的数放在倒数第n个位置--->交换 下面是冒泡排序的gif动画,该图来自于菜鸟教程 实现 提醒 现在我们假设无序数组长度为n即下标[0,n-1] 当前元素下标为i,下一个元素的下标为j 第一次遍历[0,n11]---&g...

  pRinDxvU9ScI   2023年11月01日   121   0   0 算法与数据结构

引入 选择排序顾名思义是需要进行选择的,那么就要问题了,选择到底是选择什么呢? 选择排序的选择是选择数组中未排序的数组中最小的值,将被选择的元素放在未排序数组的首位 如果你对‘未排序数组’,‘选择’的概念不理解,那么你可以看看下面的图 思路 有了上面的一些基础之后,我们再来说说选择排序算法的思路 不断的选择未排序数组中最小的值,将其与未排序数组的首位元素进行换位 选择完一个最小值,未排序的数组长度就要减一,且是从下标为0处开始减 当未排序数组就剩两个数时,就是最后一次选择,完成此次排序,算法结束,数组排序完成 乍一看,选择排序算法有点像冒泡排序,只不过冒泡排序是选择大的数...

  pRinDxvU9ScI   2023年11月01日   40   0   0 算法与数据结构
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~