DataStructure
Debug-ya
一起debug呀
展开
-
4.1.栈 数组模拟栈
栈介绍1、栈是一个先入后出(FILO-First In Last Out)的有序列表。2、栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。3、根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除栈的应用场景1、子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直到子程原创 2020-09-13 16:54:12 · 175 阅读 · 0 评论 -
3.2.链表 单向链表 约瑟夫问题
Josephu(约瑟夫、约瑟夫环) 问题Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。提示:用一个不带头结点的循环链表来处理Josephu 问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个原创 2020-09-13 12:00:34 · 494 阅读 · 0 评论 -
3.1.链表 单向链表 双向链表
链表介绍链表示意图小结:1、链表是以节点的方式来存储,是链式存储,这一点可以用来解决内存碎片内存不连续的问题。2、每个节点包含 data 域, next 域:指向下一个节点.3、链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定,可以单搞出一个头节点。单向链表操作ProcessOn流程图......原创 2020-09-12 23:35:27 · 232 阅读 · 0 评论 -
2.队列 数组模拟队列 数组模拟环形队列
队列队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出模拟思路1.队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量2.因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变,如图所示入队出队操作模拟当我们将数据存入队列时称为”addQueu原创 2020-09-11 16:59:07 · 226 阅读 · 1 评论 -
1.稀疏数组
稀疏数组基本功能当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。处理方法记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模转换思路二维数组转稀疏数组遍历二维数组,得到二维数组中有效值的个数sum创建稀疏数组,有sum+1行,3列(固定)即sparseArr int[sum + 1] [3]将二维数组中的有效值存入稀疏数组中稀疏数组转二维数组先读取稀疏数组的第一行(保存二维数组的行列信原创 2020-09-11 16:36:59 · 164 阅读 · 0 评论