- 博客(7)
- 收藏
- 关注
原创 Tire树
存储形式如图介绍,有时我们可能存储多个重复的单词,那么tire树的存储方式是将单词的重复数标记在该单词的最后一个字符节点上,例如上图的sea就是将sea存储了两次,标记2在最后一个字符a上。Tire树实现的一种方式是建立二维数组,那么不难想到每一层至多可以建立26个节点,由于是二维数组,我们要先将字符形式改为整型int型,存储方式如图所示。Tire树,又称单词查找树,由字符串中的字符所构成,且允许查找、删除和添加单词等操作。接下来 N 行,每行包含一个操作指令,指令为。第一行包含整数 N,表示操作数。
2024-02-03 12:38:25
320
1
原创 数据结构——堆
若2 * i + 1 小于节点个数,则节点i的左孩子下标为2 * i + 1,否则没有左孩子;若2 * i + 2 小于节点个数,则节点i的右孩子下标为2 * i + 2,否则没有右孩子。若i 为0,则 i 表示的节点为根节点,否则i节点的双亲节点为 (i - 1)/2;
2024-02-02 20:24:47
366
原创 树与二叉树
1.树是一种非线性的数据结构,他表现的是一对多,是由n(n>=0)个节点组成的有限集,n=0的树成为空树。2.有且仅有一个根节点,且根节点无前驱节点。3.每个节点至多仅有一个父节点和若干个儿子节点,每个子树不相交4.若一个树有n个节点,那么他有n-1个边(即节点之间的连接部分)
2024-02-02 17:26:13
888
原创 数据结构:栈和队列
仅能从一端插入和取出元素(后进先出),先插入的元素在最前段,后插入的元素在最后端(类似于水杯,先倒进去的部分最后喝到,后进去的部分最先喝到)给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。
2024-02-02 16:29:17
308
原创 链表(队列实现)
链表存储结构是一种动态数据结`构,其特点是它包含的数据对象的个数及其相互关系可以按需要改变,存储空间是程序根据需要在程序运行过程中向系统申请获得,链表也不要求逻辑上相邻的元素在物理位置上也相邻,它没有顺序存储结构所具有的弱点。以数组储存为例,当我们向一个数组中插入某个数时,后面的数也要随之向后移动以空出位置,显然这样非常费时,但若是向链表中插入,那么仅需开辟一个新的空间来存储然后链接前后两数。链表是由节点构成:表头+结点+表尾。
2024-02-02 15:48:14
341
原创 滑动窗口(单调队列)
3.我们发现每当窗口向右移动时我们可以先判断新加进的数是否符合条件,比如说,若目前队尾数为3准备加进来的数为4,那么3就不可能是窗口中的最大值了(鞠躬尽瘁),直接把3踢掉就好了让4替代他的位置;1.窗口的长度为k,我们要找的是窗口中的最大(小)值,且每找到一个窗口会向右移动一个单位。滑动窗口是以指针为基础的一种思想,两个指针之间形成的集合形成了一个窗口。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。以寻找窗口中的最大值为例。
2024-02-02 14:46:40
296
原创 第一周总结(基础算法)
一维数组的前缀和我们可以理解,无非就是前n个数的总和,那二维数组的前缀和是什么鬼?就算知道了又该怎么计算区间和呢?我们可以很容易想到求两个坐标之间数的和是将其视为一个矩形将里面的数相加,与一维前缀和类似,二维前缀和也是以第一个数(也就是从arr(1,1)开始加,
2024-01-26 19:52:54
844
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人