摘要: 特殊矩阵的压缩存储 矩阵:一个由m x n 个元素排列成的m列n行的表。 矩阵的常规存储的特点: 可以对其元素进行随机存储; 矩阵运算非常简单;存储密度为1; 不适宜常规存储的矩阵:值相同的元素很多且呈某种规律分布;零元素多。 矩阵的压缩存储:为多个相同的非零元素只分配一个存储;对零元素不分配空间。 阅读全文
posted @ 2023-03-01 22:26 凉白茶 阅读(285) 评论(0) 推荐(0)
摘要: 广义表 定义:广义表(又称列表Lists)是 n >= 0 个元素 a0,a1, ... ,an-1 的有限序列,其中每一个 ai 或者是原子,或者是一个广义表。 广义表通常记作:LS = (a1, a2, ..., an) 其中:LS为表名,n为表的长度,每一个 ai为表的元素。 习惯上,一般用大 阅读全文
posted @ 2023-02-28 18:34 凉白茶 阅读(722) 评论(0) 推荐(0)
摘要: 线索二叉树 问题:为什么要研究线索二叉树 当用二叉链表作为二叉树的存储结构时,可以很方便地找到某个结点的左右孩子;但一般情况下,无法直接找到该结点在某种遍历序列中的前驱和后继结点。 线索二叉树 定义:利用二叉树的空指针域,如果某个结点的左孩子为空,则将空的左孩子指针域改为指向其前驱;如果某结点的右孩 阅读全文
posted @ 2023-02-27 22:16 凉白茶 阅读(126) 评论(0) 推荐(0)
摘要: 2. 两种特殊的二叉树 满二叉树 定义:一棵深度为 k 且有 2^k - 1 个结点的二叉树称为满二叉树。 特点: 每一层上的结点数都是最大结点数(即每层都满); 叶子结点全部在最底层; 对满二叉树结点位置进行编号 编号规则:从根结点开始,自上而下,自左而西; 每一结点位置都有元素; 完全二叉树 定 阅读全文
posted @ 2023-02-26 11:19 凉白茶 阅读(298) 评论(0) 推荐(0)
摘要: 一、 大小固定的滑动窗口 例题: 解答: class Solution { public: int minimumDifference(vector<int>& nums, int k) { int n = nums.size(); sort(nums.begin(), nums.end()); i 阅读全文
posted @ 2023-02-22 14:38 凉白茶 阅读(50) 评论(0) 推荐(0)
摘要: 快慢指针问题 **思路:**定义两个指针,一个快指针(fastp),一个慢指针(slowp),在单链表中,让快慢指针同时从同一位置,向后遍历,他们每次的步数都固定,比如慢指针每次向后移动1步,快指针移动2步,当快指针到达最后时,慢指针就是中间位置,主要是明白他们的每一步的差是恒定的,所以两个指针的路 阅读全文
posted @ 2023-02-19 17:27 凉白茶 阅读(106) 评论(0) 推荐(0)
摘要: # 集合 ### 一、 集合的理解和好处 前面保存多个数据使用的是数组,那么数组有不足的地方,分析一下 - 数组 1. 长度开始时必须指定,而且一旦指定,不能更改; 2. 保存的必须为同类型的元素; 3. 使用的数组进行增加/删除元素,比较麻烦; ```java //写出Person数组扩容的示意代 阅读全文
posted @ 2023-02-15 18:23 凉白茶 阅读(104) 评论(0) 推荐(0)
摘要: 大数处理方案 BigInteger 适合保存比较大的整数。 public class BigInteger_ { public static void main(String[] args) { //当我们编程中,需要处理很大的整数,long不够用 //可以使用BigInteger的类来搞定 // 阅读全文
posted @ 2023-02-14 15:43 凉白茶 阅读(137) 评论(0) 推荐(0)
摘要: 二叉树的遍历 一、二叉树的遍历算法 可以将二叉树的遍历分为:先序遍历 (根、左、右),中序遍历 (左、根、右),后序遍历 (左、右、根) 先序遍历动画 (根、左、右) 中序遍历动画 (左、根、右) 后序遍历动画 (左、右、根) 二、根据遍历序列确定二叉树 若二叉树中各结点的值均不同,则二叉树节点的先 阅读全文
posted @ 2023-02-03 15:32 凉白茶 阅读(178) 评论(0) 推荐(0)
摘要: 日期类 一、第一代日期类 Date Date:第一代日期类,精确到毫秒,代表特定的瞬间。 SimpleDateFormat:格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。 SimpleDateFormat日期-时间格式模式参数: Letter Da 阅读全文
posted @ 2023-02-01 18:26 凉白茶 阅读(469) 评论(0) 推荐(0)
摘要: System类 exit:退出当前程序。 arraycopy:复制数组元素,比较适合底层调用,一般使用Arrays.copyOF完成复制数组。 currentTimeMillens:返回当前时间距离 1970-1-1 的毫秒数。 gc:运行垃圾回收机制 System.gc(); public cla 阅读全文
posted @ 2023-01-23 15:40 凉白茶 阅读(359) 评论(0) 推荐(0)
摘要: 树和森林 一、树的存储结构 双亲表示法 实现:定义结构数组,存放树的结点,每个结点含两个域 数据域:存放结点本身信息。 双亲域:指示本结点的双亲结点在数组中的位置。 特点:找双亲容易,找孩子难。 C语言的类型描述: typedef struct PTNode{ TElemType data; int 阅读全文
posted @ 2023-01-20 19:45 凉白茶 阅读(36) 评论(0) 推荐(0)
摘要: 图的存储结构 图的逻辑结构:多对多 图没有顺序存储结构,但可以借助二维数组来表示元素之间的关系,即数组表示法(邻接矩阵) 链式存储结构:多重链表(邻接表、邻接多重表、十字链表) 一、数组(邻接矩阵)表示法 建立一个顶点表(记录各个顶点信息)和邻接矩阵(表示各个顶点之间的关系)。 设图 A = (V, 阅读全文
posted @ 2023-01-19 23:08 凉白茶 阅读(506) 评论(0) 推荐(0)
摘要: Arrays类 一、Arrays类常见方法 Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)。 toString 返回数组的字符串形式 Arrays.toString(arr) sort排序(自然排序和定制排序) import java.util.Arrays; impor 阅读全文
posted @ 2023-01-18 20:25 凉白茶 阅读(151) 评论(0) 推荐(0)
摘要: StringBuilder类 一、结构剖析 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全的)。该类被设计用作 StringBuffer 的一个简易替换,==用在字符串缓冲区被单个线程使用的时候==。如果可能,建议 阅读全文
posted @ 2023-01-16 23:40 凉白茶 阅读(139) 评论(0) 推荐(0)