随笔分类 -  数据结构机考复习

摘要:#include<iostream> #include<stack> using namespace std; //stack<int>q;//栈q int n,m,t; const int N=1100; int a[N],sum=1;//入栈队列a,待检验队列b,计数器sum int main( 阅读全文 »
posted @ 2024-01-18 11:36 potential-star 阅读(7) 评论(0) 推荐(0) 编辑
摘要:习题集P79。编号为1,2,...,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。现在给定一个随机数m>0,从编号为1的人开始,按顺时针方向1开始顺序报数,报到m时停止。报m的人出圈,同时留下他的密码作为新的m值,从他在顺时针方向上的下一个人开始,重新从1开始报数,如此下去,直至所有的 阅读全文 »
posted @ 2024-01-06 20:32 potential-star 阅读(35) 评论(0) 推荐(0) 编辑
摘要:利用前序遍历的特性,如果左子树不空,下一个一定是左节点,不然就是# 因为是转中序遍历,就在两次遍历之间输出 #include <iostream> #include <cstring> #include <algorithm> using namespace std; int k; string s 阅读全文 »
posted @ 2023-12-24 19:00 potential-star 阅读(9) 评论(0) 推荐(0) 编辑
摘要:一切的核心是怎么利用中序和按层遍历构建二叉树? 1.优化空间很大,可以提前预处理记录每个数对应的位置,还可以vis数组记录这个点是不是已经作为根了。 2.我们考虑到每次找到当前中序要处理区间,里面的数记为集合mid,我们从前到后看层序遍历中的哪个数最先出现在mid中。那么这个数就是当前中序处理区间的 阅读全文 »
posted @ 2023-12-24 18:24 potential-star 阅读(4) 评论(0) 推荐(0) 编辑
摘要:1.就算不知道用vector的初始化,也可以手动赋值创建子数组。 2.不断找到当前序列对应的根节点,计算他的子节点的总和,在这样递归处理过程中,注意要中序输出,所以对于是先遍历完左子树,然后输出答案,然后遍历右子树 #include <bits/stdc++.h> using namespace s 阅读全文 »
posted @ 2023-12-24 15:31 potential-star 阅读(7) 评论(0) 推荐(0) 编辑
摘要:https://www.acwing.com/problem/content/3601/ 不断找新的先序的根节点,根据位置切割中序,根据中序左右子树大小反切割先序,找到左子树对应的先序中序,然后递归处理 #include<stdio.h> #include<vector> #include<map> 阅读全文 »
posted @ 2023-12-24 15:18 potential-star 阅读(4) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示