
C

C



应该为
p->llink->rlink=p->rlink;
p->rlink->llink=p->llink;

C

A 循环队列的抽象图如下 数组里面可以放M个数 但队列只能放M-1个,队列满时end2指向的就是那个空位置,空位置+1就是end1的位置,所以(end2+1)%M==end1。循环队列之所以成立,就是因为end2大于数组下标后,可以回到数组的起始位置。也可以通过(end1-1+M)%M==end2来判断


后序遍历的最后一个元素是根节点,在中序遍历中找到这个点 这个点以左是构成左子树,这个点以右构成右子树。
a的左树由b构成,a的右树由defcg构成。
在后序遍历中除去a和已使用的b,可以得知a的右树的根节点是d,来到中序遍历,得知d的左树没有元素,d的右树由efcg构成。
在后序遍历中除去d,得知d的右树的根节点是c,在中序遍历中找到c,发现c的左树由ef构成,c的右树由g构成。
在后序遍历中除去c,得知c的左树的根节点是e,e的右子树由f构成

二叉树的性质
n0=n2+1; n0=199+1=200

D
%13==1即可
14 1 27 79

D

- #include
- using namespace std;
- int get_count(int n)
- {
- int res=0;
- while(n>1)
- {
- int use=n/3;
- int left=n%3;
- res+=use;
- n=left+use;
- if(n==2)
- {
- res++;
- break;
- }
- }
- return res;
- }
- int main()
- {
- int n;
- while(cin>>n)
- {
- if(n==0) break;
- else
- {
- cout<<get_count(n)<
- }
- }
- return 0;
- }
最长公共子串

- #include
- #include
- #include
- using namespace std;
- string getComSubstr(string& s1,string& s2)
- {
- //让短的字符串是s1
- if(s1.size()>s2.size()) swap(s1,s2);
- int n=s1.size(),m=s2.size();
- vector
int>>dp(n,vector<int>(m,0));//n行m列 - int start=0,maxsize=0;
- for(int i=0;i
- {
- for(int j=0;j
- {
- if(s1[i]==s2[j])
- {
- if(i>=1 && j>=1) dp[i][j]=dp[i-1][j-1]+1;
- else dp[i][j]=1;
- }
- if(dp[i][j]>maxsize)
- {
- maxsize=dp[i][j];
- start=i-maxsize+1;//注意这个+1
- }
- }
- }
-
- return s1.substr(start,maxsize);
- }
- int main()
- {
- string str1, str2;
- while(cin >> str1 >> str2)
- {
- string substr = getComSubstr(str1, str2);
- if(substr.empty()) cout<<-1<
- else cout<
- }
- return 0;
- }
-
相关阅读:
FastDFS
企业部门网络规划设计(课程报告+拓扑图源文件)
优秀的 Verilog/FPGA开源项目介绍(三十三)- 基于ARM核的复杂项目
深度学习笔记(52) 知识蒸馏
【深度学习实验】卷积神经网络(六):自定义卷积神经网络模型(VGG)实现图片多分类任务
图灵完备游戏:信号计数 解法记录
(二)初识Vue
Python中的切片操作
阿里大佬耗时一年整理的 Java 面试常考题,GitHub 点赞 33K+
Mware Fusion Pro 13 mac版:一键掌控虚拟世界
-
原文地址:https://blog.csdn.net/qq_68741368/article/details/127740997