题目内容 (请给出正确答案)
[单选题]

非递归中序遍历(空指针进栈)含有 n 个结点高度为 h 的二叉树时,为了确保栈在处理过程中不会发生上溢,则该栈至少要有()个存储单元。

A.n

B.n+1

C.h

D.h+1

提问人:网友cljwgh 发布时间:2022-01-07
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
网友答案
查看全部
  • · 有4位网友选择 A,占比50%
  • · 有2位网友选择 B,占比25%
  • · 有1位网友选择 D,占比12.5%
  • · 有1位网友选择 C,占比12.5%
匿名网友 选择了C
[105.***.***.14] 1天前
匿名网友 选择了B
[167.***.***.176] 1天前
匿名网友 选择了B
[109.***.***.122] 1天前
匿名网友 选择了C
[105.***.***.14] 1天前
匿名网友 选择了A
[108.***.***.126] 1天前
匿名网友 选择了A
[212.***.***.197] 1天前
匿名网友 选择了B
[167.***.***.176] 1天前
匿名网友 选择了A
[91.***.***.204] 1天前
匿名网友 选择了D
[237.***.***.225] 1天前
匿名网友 选择了A
[181.***.***.95] 1天前
匿名网友 选择了B
[109.***.***.122] 1天前
匿名网友 选择了A
[212.***.***.197] 1天前
匿名网友 选择了A
[108.***.***.126] 1天前
匿名网友 选择了A
[212.***.***.197] 1天前
匿名网友 选择了B
[167.***.***.176] 1天前
匿名网友 选择了A
[91.***.***.204] 1天前
匿名网友 选择了D
[237.***.***.225] 1天前
匿名网友 选择了A
[181.***.***.95] 1天前
匿名网友 选择了B
[109.***.***.122] 1天前
匿名网友 选择了C
[105.***.***.14] 1天前
加载更多
提交我的答案
登录提交答案,可赢取奖励机会。
更多“非递归中序遍历(空指针进栈)含有 n 个结点高度为 h 的二…”相关的问题
第1题
二叉树以二叉链表存储,写出对二叉树进行先序遍历的非递归算法。

解题思路:二叉树的先序遍历非递归算法利用栈结构,从二又树的根结点开始,输出结点信息,同时将结点指针入栈,然后顺着左子树,依次将其左子树各个结点值输出,同时结点指针入栈,直到左子树为空;然后让栈顶指针出栈,接着处理右子树。

点击查看答案
第2题
下面代码的运行结果是: for i in range(2): print(i, end='') else: print(0)

A、010

B、0120

C、012

D、0 1 0

E、0 1 2 0

F、0 1

G、0 1 2

点击查看答案
第3题
阅读下列说明和C程序,将应填入(n)处的字句写在对应栏中。 [说明] 借助一个栈结构,可实现二叉树
阅读下列说明和C程序,将应填入(n)处的字句写在对应栏中。

[说明]

借助一个栈结构,可实现二叉树的非递归遍历算法。InOrderTraverse数实现中序非递归遍历,遍历

过程如下:

若不是空树,根节点入栈,进入左子树;若已经是空树,则栈顶元素出栈,访问该元素(根节点),进入该节点的右子树,继续直到遍历完成。

函数中使用的预定义符号如下:

typedef struct BiTNode{

int data;

struct BiTNode *iChiid,*rChiid;

} BiTNode,*BiTree;

typedef struct SNode{/*链栈的节点类型*/

BiTree elem;

struct SNode *next;

}SNode;

[函数]

int InOrderTraverse(BiTree root)

{

BiTree P;

SNode *q,*stop=NULL;/*不带头节点的单链表作为栈的存储结构*/

P=root;

while(p !=NULL || stop !=NULL){

if( (1) ){ /*不是空树*/

q=(SNode*)malloc(sizeof q);

if(q==NULL)return-1;

/*根节点指针入栈*/

(2);

q->elem=P;

stop=q;

P=(3); /*进入根的左子树*/

}else{

q=stop;

(4); /*栈顶元素出栈*/

printf("%d|,q->elem->data); /*防问根节点*/

P=(5); /*进入根的右子树*/

free(q); /*释放原栈顶元素*/

}/*if*/

}/*while*/

return 0;

}/*InOrderTraverse*/

(1)

点击查看答案
第4题
●试题二 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数pri
●试题二

阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

函数print(BinTreeNode*t;DateType &x)的功能是在二叉树中查找值为x的结点,并打印该结点所有祖先结点。在此算法中,假设值为x的结点不多于一个。此算法采用后序的非递归遍历形式。因为退栈时需要区分右子树。函数中使用栈ST保存结点指针ptr以及标志tag,Top是栈顶指针。

【函数】

void print(BinTreeNode*t;DateType &x){

stack ST;int i,top;top=0;∥置空栈

while(t!=NULL &&t->data!=x‖top!=0)

{while(t!=NULL && t->data!=x)

{

∥寻找值为x的结点

(1) ;

ST[top].ptr=t;

ST[top].tag=0;

(2) ;

}

if(t!=Null && t->data==x){∥找到值为x的结点

for(i=1; (3) ;i++)

printf("%d",ST[top].ptr->data);}

else{

while( (4) )

top--;

if(top>0)

{

ST[top].tag=1;

(5) ;

}

}

}

点击查看答案
第5题
已知一棵二叉树有10个结点,则其中至多有( )个结点有两个子结点。

A、3

B、4

C、5

D、6

E、1

F、7

点击查看答案
第6题
设一棵二叉树的扩展后序遍历序列为 [图],则这棵二...

设一棵二叉树的扩展后序遍历序列为,则这棵二叉树的前序和中序遍历序列分别为( )。

A、ABCDEFG 和 DECBGFA

B、ABCDEFG 和 BDCEAG

C、AFGBDEC和 CBEDAFG

D、ABCDEFG 和 CBEDAFG

点击查看答案
第7题
若一个深度为 3 的二叉树的先序遍历为 ABCDE,则该二叉树有( )种可能的形态。

A、3

B、4

C、5

D、6

E、7

F、8

点击查看答案
第8题
下列关于二叉树的叙述中,正确的有( )。

A、n (n>2) 个结点的二叉树中至少有一个度为 2 的结点。

B、任何一棵完全二叉树中,叶子结点或者和分支结点一样多,或者只比分支结点多一个。

C、二叉树就是度为 2 的树。

D、完全二叉树最适合采用顺序存储结构。

E、满二叉树中的所有棵子树都是完全二叉树。

F、完全二叉树中,若某个结点无左孩子,则其必为叶子。

G、在叶子数目和权值均相同的所有二叉树中,最优二叉树一定是完全二叉树。

点击查看答案
第9题
下列关于树的叙述中,正确的有( )。

A、树和二叉树是两种不同的树形结构。

B、树中元素之间是多对多的关系。

C、一棵有 n 个结点的树中,无论其度是多少,分支数必定为 n-1。

D、对一棵树进行先根遍历和后根遍历时,其叶子结点出现的相对次序都是相同的。

E、一棵树上的任一结点要么是叶子,要么是内部结点。

F、在一棵树的先根遍历序列中,若结点 u 出现在结点 v 之前,则 u 必定是 v 的祖先。

点击查看答案
第10题
若对如下的二叉树进行中序线索化,则结点 x 的左、右线索指向的结点分别是( )。

A、e,c

B、e,a

C、d,c

D、b,a

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信