以下( )没有涉及C++语言的面向对象特性支持。
C++中构造一个class或struct
C++中调用printf函数
C++中调用用户定义的类成员函数
C++中构造来源于同一基类的多个派生类
关于以下C++代码,( )行代码会引起编译错误。
Line 1
Line 2
Line 3
没有编译错误
有6个元素,按照6,5,4,3,2,1的顺序进入栈S,下列( )的出栈序列是不可能出现的。
5,4,3,6,1,2
4,5,3,1,2,6
3,4,6,5,2,1
2,3,4,1,5,6
采用如下代码实现检查输入的字符串括号是否匹配,横线上应填入的代码为( )。
top=st.top(); st.pop();
st.pop(); top=st.top();
st.pop(); top=st.front();
top=st.front(); st.pop();
下面代码判断队列的第一个元素是否等于a,并删除该元素,横向上应填写( )。
is_equal=(q.front()==a);
is_equal=(q.front()==a); q.pop();
q.pop(); is_equal=(q.front()==a);
q.pop(); is_equal=(q.top()==a);
字母表{a,b,c,d,e}在字符串出现的频率分别为10%,15%,30%,16%,29%。若使用哈夫曼编码方式对字母进行二进制编码,则字符abcde分别对应的哈夫曼编码的长度分别为( )。
4, 4, 1, 3, 2
3, 3, 2, 2, 2
3, 3, 1, 2, 1
4, 4, 1, 2, 2
以下C++代码实现位的格雷码,则横线上应填写( )。
graycode_list.push_back("0"+graycode_list[j]);
graycode_list[j]="0"+graycode_list[j];
graycode_list.push_back("1"+graycode_list[j]);
graycode_list[j]="1"+graycode_list[j];
给定一棵二叉树,其前序遍历结果为:ABDECFG,中序遍历结果为:DEBACFG,则这棵树的正确后序遍历结果是( )。
EDBGFCA
EDGBFCA
DEBGFCA
DBEGFCA
一棵有n个结点的完全二叉树用数组进行存储与表示,已知根结点存储在数组的第1个位置。若存储在数组第i个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子结点的位置分别是( )。
8, 18
10, 18
8, 19
10, 19
二叉树的深度计算函数中横线上应填写( )。
return left_depth+right_depth;
return max(left_depth,right_depth);
return max(left_depth,right_depth)+1;
return left_depth+right_depth+1;
基于二叉树的广度优先搜索实现的深度计算函数中横线上应填写( )。
int level_size=q.size(); depth++;
int level_size=2; depth++;
int level_size=q.size(); depth+=level_size;
int level_size=2; depth+=level_size;
二叉搜索树中的每个结点,其左子树的所有结点值都小于该结点值,右子树的所有结点值都大于该结点值。以下代码对给定的整数数组(假设数组中没有数值相等的元素),构造一个对应的二叉搜索树,横线上应填写( )。
if(val<root->val) root->left=insert(root->left,val); else root->right=insert(root->right,val);
if(val>root->val) root->left=insert(root->left,val); else root->right=insert(root->right,val);
if(val<root->val) root->left=insert(root,val); else root->right=insert(root,val);
if(val>root->val) root->left=insert(root,val); else root->right=insert(root,val);
对上题中的二叉搜索树,当输入数组为时,构建二叉搜索树,并采用如下代码实现的遍历方式,得到的输出是( )。
5 3 7 2 4 6 8
2 3 4 5 6 7 8
2 4 3 6 8 7 5
2 4 3 5 6 7 8
动态规划通常用于解决( )。
无法分解的问题
可以分解成相互依赖的子问题的问题
可以通过贪心算法解决的问题
只能通过递归解决的问题
阅读以下用动态规划解决的0-1背包问题的函数,假设背包的容量是10kg,假设输入4个物品的重量分别为1 3 4 6 ,每个物品对应的价值分别为20 30 50 60,则函数的输出为( )。
90
100
110
140
C++、Python和JAVA等都是面向对象的编程语言。
在C++中,类的静态成员变量只能被该类对象的成员函数访问。
栈是一种线性结构,可通过数组或链表来实现。二者相比,数组实现占用的内存较少,链表实现的入队和出队操作的时间复杂度较低。
运行以下C++代码,屏幕将输出“derived class”。
如下列代码所示的基类(base)及其派生类(derived),则生成一个派生类的对象时,只调用派生类的构造函数。
哈夫曼编码本质上是一种贪心策略。
如果根结点的深度记为1 ,则一棵恰有2024个叶结点的二叉树的深度最少是12。
在非递归实现的树的广度优先搜索中,通常使用栈来辅助实现。
状态转移方程是动态规划的核心,可以通过递推方式表示问题状态的变化。
应用动态规划算法时,识别并存储重叠子问题的解是必须的。