邢台网站建设平台,浙江省建设厅执业资格注册中心网站,企业网站优化方案案例,景区网站模板堆栈
有人给出了堆栈用数组实现的另一种方式#xff0c;即直接在函数参数中传递数组和top变量#xff08;而不是两者组成的结构指针#xff09;#xff0c;其中Push操作函数设计如下。这个Push函数正确吗#xff1f;为什么#xff1f;
#define MaxSize 100
ElementTyp…堆栈
有人给出了堆栈用数组实现的另一种方式即直接在函数参数中传递数组和top变量而不是两者组成的结构指针其中Push操作函数设计如下。这个Push函数正确吗为什么
#define MaxSize 100
ElementType S[MaxSize];
int top;
void Push(ElementType *S, int top, ElementType item)
{ if (topMaxSize-1) { printf(“堆栈满”); return; }else { S[top] item; return; }
}
分析
问题出在函数参数的设计上。在函数定义中数组S和变量top被作为参数传递。这意味着函数使用的是参数中的本地副本而不是全局变量。因此Push函数实际上并没有改变全局变量top的值也没有将新元素添加到堆栈中。 队列
现采用大小为10的数组实现一个循环队列。设在某一时刻队列为空且此时front和rear值均为5。经过若干操作后front为8rear为2问此时队列中有多少个元素答案是4
分析 二叉树
在用“儿子-兄弟”法表示的树中如果从根结点开始访问其“次子”的“次子”所经过的结点数与下面哪种情况一样(注意:比较的是结点数,而不是路径) A.从根结点开始访问其“长子”的“长子”
B.从根结点开始访问其“长子”的“长子”的“长子”
C.从根结点开始访问其“长子”的“长子”的“长子”的“长子”
D.不能确定要看具体树结构
注意不一定是二叉树默认从左边第一个是长子余下是次子
正确答案C 有一个m棵树的集合也叫森林共有k条边问这m颗树共有多少个结点 如图该树一共有5个节点并且有4条边对应对于根节点的四个子节点。因为根节点是没有边的。
每个树都有一个根节点所以m颗树一共有m个根节点再加上一共有k条边有k个子节点总共mk个节点。
在分量1~11的数组中按从小到大顺序存放11个元素如果用顺序查找和二分查找分别查找这11个元素哪个位置的元素在这两种方法的查找中总次数最少
A.1
B.2
C.3
D.6
答案A
注意是求和 在分量1~11的数组中按从小到大顺序存放11个元素如果进行二分查找查找次数最少的元素位于什么位置
A.1
B.5
C.6
D.11
答案C
注意不是从0开始排 一棵度节点的度依次节点为根节点的子树个数树的度树的所有节点中最大的度数为 m的树有n个节点。若每个节点直接用m个链指向相应的儿子则表示这个树所需要的总空间是n*(m1) (假定每个链以及表示节点的数据域都是一个单位空间).。当采用儿子/兄弟First Child/Next Sibling表示法时所需的总空间是
A.3n
B.2n
C.n*m
D.n*(m-1)
答案A
首先理解题干表示这个树所需要的总空间是n*(m1)拆开更好理解
n * m条链 n个节点
现在考虑儿子/兄弟表示法把n个节点串联起来因为每个节点都有两个部分组成一个是指向下一个兄弟节点一个是指向子节点所以在树中每个节点有两条链加上n个节点本身一共需要3n个空间。 有一颗二叉树其有两个儿子的结点个数为15个只有一个儿子的结点个数为32个问该二叉树的叶子结点个数是多少
A.15
B.16
C.17
D.32
首先存在关系 n0 n2 1 ,即叶结点个数等于有2个儿子的结点个数1
所以15 1 16 如果一个完全二叉树最底下一层为第六层根为第一层且该层共有8个叶结点那么该完全二叉树共有多少个结点
A.31
B.39
C.63
D.71
对于一颗完全二叉树其叶节点的数量等于最后一层节点数量的总和。因此该完全二叉树共有8个叶节点则最后一层共有8个节点。而对于完全二叉树从根节点到倒数第二层为满二叉树且节点数量为2^(h-1)-1其中h为完全二叉树的高度。因此该完全二叉树的高度为6则从根节点到倒数第二层共有2^(6-1)-131个节点。又因为最后一层共有8个节点则该完全二叉树共有31839个节点。因此答案为选项B39。