09 2022 档案
摘要:1、定义 栈是一个先入后出的有序列表 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶,另一端为固定的一端,称为栈底 最先放入的元素在栈底,且最后出栈。最后放入的元素在栈顶,且最先出栈 2、应用场景 子程序递归调用。
阅读全文
摘要:循环链表 单链表的尾节点指向首节点,即可构成循环链表 约瑟夫环 约瑟夫问题:有 N 个人围成一圈,每个人都有一个编号,编号由入圈的顺序决定,第一个入圈的人编号为 1,最后一个为 N,从第 K (1<=K<=N)个人开始报数,数到 M (1<=M<=N)的人将出圈,然后下一个人继续从 1 开始报数,直
阅读全文
摘要:双向链表 实现思路 遍历 和单向链表的遍历相同,需要一个辅助节点来保存当前正在遍历的节点 添加 双向链表多出了一个front,所以在添加时,要让新增节点的front指向链表尾节点 修改 和单向链表的修改相同 删除 使用temp来保存要删除的节点 temp.front.next指向temp.next
阅读全文
摘要:链表的介绍 链表在内存中的存储 特点 链表是以节点的方式来存储,是链式存储 每个节点包含 data 域 和 next 域。next域用来指向下一个节点 链表的各个节点不一定是连续存储的 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定 带头结点的逻辑示意图 实现思路 创建(添加) 先创建
阅读全文
摘要:定义 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 模拟思路 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量 因为队列的输出、输入是分别从前后端来处理,因
阅读全文
摘要:基本功能 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 处理方法 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 如图,把一个6X7的二维数组变为了一个9X3的稀疏数组。其中 第一行保存的是原二
阅读全文