- 博客(8)
- 收藏
- 关注
原创 E. DS二叉树—二叉树结点的最大距离
写一个函数,能找出该节点往下的层数最多是多少 然后遍历,对节点的左右节点往下的层数分别最多是多少,加起来 然后找出最多的那个 这里容易知道对应的俩个点都是子叶 不一定中间节点在头节点,比如样例的第三个, 这个用来记录层数和子叶的数据,找到子叶然后返回一个Date 类 到底了返回数值0 ,从子叶开始向上返回每次加一后的值,和子叶的数据 遍历,每个节点都找左右然后加起来和longest比较,如果比他大,那需要 改longest,和最远距离对应的那对 #in...
2021-10-27 02:02:46
1524
原创 DS二叉树--左叶子数量
找到子叶,然后返回真证明是子叶,只判断左孩子是不是子叶就ok 看点有趣的东西 #include <bits/stdc++.h> using namespace std; int num=0; class BiTreeNode{ public: char date; BiTreeNode *leftchild; BiTreeNode *rightchild; }; class BiTree{ private: BiTreeNode *...
2021-10-27 01:42:21
274
原创 DS二叉树--层次遍历
这里要求用队列实现,反而好做点,输出头节点的数据,然后他就该出队了 然后他的左右孩子进队列 看看深大灵魂画手的作品 #include <bits/stdc++.h> using namespace std; class BiTreeNode{ public: char date; BiTreeNode *leftchild; BiTreeNode *rightchild; }; class BiTree{ private: ...
2021-10-27 01:16:56
1018
原创 DS二叉树--基于数组存储的构建
二叉树性质 设某节点编号为pos,则其左右孩子的pos+1,2pos+2; 运用递归建树的话还是先建立左孩子;将2*pos+1,传进去 进去左孩子的建立之后也是先建立左孩子,对于上一次来说,此时参数是是2(2pos+1)+1 直到pos大于或等于字符串的长度 然后建立右孩子,然后返回,建立父亲的右孩子 #include<bits/stdc++.h> using namespace std; class Bitreenode{ public: Bitreenode* le
2021-10-27 00:57:14
293
原创 DS树--二叉树高度
这一篇和上一篇的结构差不多,因为太懒,所以注释就不重复写了 #include <bits/stdc++.h> using namespace std; class BiTreeNode{ public: char date; BiTreeNode *leftchild; BiTreeNode *rightchild; BiTreeNode() :leftchild(NULL),rightchild(NULL){} ~BiTreeNo.
2021-10-19 20:38:52
188
原创 DS二叉树——二叉树之父子结点
#include <bits/stdc++.h> using namespace std; queue<char> father;//开一个爸爸队列放爸爸 class BiTreeNode{ public: char date; //节点数据 BiTreeNode *leftchild; BiTreeNode *rightchild; BiTreeNode() :leftchild(NULL),rightchild(NUL...
2021-10-19 20:24:35
646
原创 DS串应用 KMP算法
刚刚搞懂了KMP,输出一下 把长的叫主串,短的叫模式串 KMP,查找字符串的算法,适用于模式串中有重复子串的情况,便于缩短时间 传统暴力解法是模式串一次一次右移,直到对上 主串 Mstr ,模式串 mstr KMP 主要是 next数组 用一个next数组存储 当模式串中每一个位置失效时对应的next【j】 kmp其实就是找出已配对成功的部分中的 首尾重复内容来 移动 所以如果尾部的部分不能和前面的部分重叠, 即 mstr【j】 !=mstr【next【j】】,就缩短距离,从前面ms...
2021-10-13 20:14:43
938
原创 D. DS队列----银行单队列多窗口模拟
输入样例 9 0 20 1 15 1 61 2 10 10 5 10 3 30 18 31 25 31 2 3 关于这道题我觉得自己写得蛮有意思的 把排队的人变成一个队列,然后逐个去选择,然后pop(); 选择时选择窗口空闲时间最早的那个,也就是nexttime 最小的那个 有两种情况,一种是顾客到的时候,有窗口空闲,那么窗口的下一个空闲时间变成顾客的到达时间加上完成时间 一种是顾客到的时候没空闲,那么选择时间短的,等待时间由窗口下一个空闲时间减去到达时间 先计算等待时间才能计...
2021-09-29 19:15:48
847
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人