更多"线索二叉树是一种( )结构。"的相关试题:
[单项选择]线索二叉树是一种( )结构。
A. 物理
B. 逻辑
C. 存储
D. 线性
[填空题]二叉树是一种特殊的树,它不存在度大于()的结点。
[单项选择]如果将该二叉树存储为对称序线索二叉树,则结点H的左线索指向哪一个结点( )
A. 结点A
B. 结点C
C. 结点E
D. 结点G
[单项选择]某完全二叉树采用顺序存储结构,结点数据的存放顺序依次为:A、B、C、D、E、F、G、H,该完全二叉树的后序遍历序列为()。
A. HDEBFGCA
B. HEDBGFCA
C. HDBEAFCG
D. HDEFGBCA
[单项选择]如果将该二叉树存储为对称序线索二叉树,则结点H的左线索指向_______。
A) 结点A B) 结点C C) 结点E D) 结点G
[单项选择]实现任意二叉树的后序遍历的非递归算法用栈结构,最佳方案是二叉树采用()存储结构。
A. 二叉链表
B. 顺序存储结构
C. 三又链表
D. 广义表存储结构
[单项选择]已知某完全二叉树采用顺序存储结构,结点数据的存放顺序依次为A、B、C、D、E、F、G、H,该完全二叉树的后序遍历序列为( )
A. HDBEFCGA
B. HDEBFGCA
C. DHEBFGACA
D. DEHBFGCA
[单项选择]以下有关二叉树的描述中正确的是( )。
(1) 二叉树按某种右岸序线索化后,任一结点均有指向其前驱和后继的线索
(2) 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面
A. 只有(1)
B. 只有(2)
C. (1)和(2)
D. 以上全不对
[单项选择]若X是后序线索二叉树中的叶结点,且X存在左兄弟结点Y,则X的右线索指向的是
A. X的父结点
B. 以Y为根的子树的最左下结点
C. X的左兄弟结点Y
D. 以Y为根的子树的最右下结点
[单项选择]下列关于树和二叉树的叙述中,哪些是正确的( )
Ⅰ.树和二叉树都属于树型结构
Ⅱ.树是结点的有限集合,这个集合不能为空
Ⅲ.二叉树是结点的有限集合,这个集合不能为空
Ⅳ.二叉树是树的特殊情况,即每个结点的子树个数都不超过2的情况
Ⅴ.每一棵树都能唯一地转换到它所对应的二叉树
A. Ⅰ和Ⅱ
B. Ⅱ和Ⅲ
C. Ⅲ和Ⅳ
D. Ⅳ和Ⅴ
[简答题]
假设以带双亲指针的二叉链表作为-二叉树的存储结构,其结点结构的类型说明如下所示:
typedef char
DataType;
typedef struct node{
DataType data;
struct node*lchild,*rchild;
//左右孩子指针
struct node*parent;
//指向双亲的指针
}BinTNode;
typedef
BinTNode*BinTree;
若px为指向非空二叉树中某个结点的指针,可借助该结构求得px所指结点在二叉树的中序序列中的后继。
[单项选择]满二叉树( )二叉树。
A. 一定是完全
B. 不一定是完全
C. 不是
D. 不是完全
[填空题]
假设以二叉链表作为二叉树的存储结构,其类型定义如下:
typedef struct node{
char data;
struct node*lchild,*rchild; //左右孩子指针
}BinTNode,*BinTree;
阅读下列算法f33,并回答问题:
(1)已知如图所示的二叉树以T为指向根结点的指针,画出执行f33(T)后的二叉树;
(2)简述算法f 33的功能。
void f 33(BinTtee T){
if(T){
f 33(T—>lchild);
f 33(T—>rchild);
if((!T—>lchild)&&L T—>rchild){
T—>lchild=T—>rchild;
T—>rchild=NULL;
}
}
}
(1)
[填空题][说明]
完成以下中序线索化二叉树的算法。
[函数]
Typedef int datatype;
Typedef struct node {
Int ltag, rtag;
Datatype data;
*lchild,* rchild;
}bithptr;
bithptr pre;
void inthread ( p );
{if
{inthread ( p->lchild );
if ( p->lchild==unll ) (1) ;
if ( P->RCHILD=NULL) p->rtag=1;
if (2)
{if (3) pre->rchild=p;
if ( p->1tag==1 ) (4) ;
}
INTHREAD ( P->RCHILD );
(5) ;
}
}
[单项选择]在线索化二叉树中,结点T↑没有左子树的充分条件是( )。
A. ↑L child=NIL
B. ↑L tag=1
C. ↑L tag=1且T↑L child=NIL
D. 以上答案都不对
[单项选择]线索化的二叉树中,某结点*p没有孩子的充要条件是( )。
A. p->lchild=NULL
B. p->ltag=1&&p->rtag=1
C. p->ltag=0
D. p->lchild=NULL&&p->ltag=1
[简答题][说明]
二叉树的二叉链表存储结构描述如下:
lypedef struct BiTNode
{ datatype data;
street BiTNode *lchiht, *rchild; /*左右孩子指针*/ } BiTNode, *BiTree;
下列函数基于上述存储结构,实现了二叉树的几项基本操作:
(1) BiTree Creale(elemtype x, BiTree lbt, BiTree rbt):建立并返回生成一棵以x为根结点的数据域值,以lbt和rbt为左右子树的二叉树;
(2) BiTree InsertL(BiTree bt, elemtype x, BiTree parent):在二叉树bt中结点parent的左子树插入结点数据元素x;
(3) BiTree DeleteL(BiTree bt, BiTree parent):在二叉树bt中删除结点parent的左子树,删除成功时返回根结点指针,否则返回空指针;
(4) frceAll(BiTree p):释放二叉树全体结点空间。
[函数]
BiTree Create(elemtype x, BiTree lbt, BiTree rbt) { BiTree p;
if ((p = (BiTNode *)malloc(sizeof(BiTNode)))= =NULL) return NULL;
p->data=x;
p->lchild=lbt;
p->rchild=rbt;
(1) ;
}
BiTree InsertL(BiTree bt, elemtype x,BiTree parent)
{ BiTree p;
if (parent= =NULL) return NULL;
if ((p=(BiTNode *)malloc(sizeof(BiTNode)))= =NULL) return NULL;
p->data=x;
p->lchild= (2) ;
p->rchild= (2) ;
if(parent->lchild= =NULL) (3) ;
else{
p->lchild= (4) ;
par