网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

判断线索二叉树中*p结点为叶子结点的条件是p->ltag==1 && p->rtag==1。


参考答案和解析
C
更多 “判断线索二叉树中*p结点为叶子结点的条件是p->ltag==1 p->rtag==1。” 相关考题
考题 ●试题三阅读下列函数说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。【函数3说明】函数DeleteNode(Bitree*r,int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返回-1。二叉查找树结点的类型定义为:typedef struct Tnode{int data;/*结点的键值*/struct Tnode*Lchild,*Rchild;/*指向左、右子树的指针*/}*Bitree;在二叉查找树上删除一个结点时,要考虑三种情况:①若待删除的结点p是叶子结点,则直接删除该结点;②若待删除的结点p只有一个子结点,则将这个子结点与待删除结点的父结点直接连接,然后删除结点p;③若待删除的结点p有两个子结点,则在其左子树上,用中序遍历寻找关键值最大的结点s ,用结点s的值代替结点p的值,然后删除结点s,结点s必属于上述①、②情况之一。【函数3】int DeleteNode(Bitree*r,int e){Bitree p=*r,pp,s,c;while( (1) ){/*从树根结点出发查找键值为e的结点*/pp=p;if(e<p->data)p=p->Lchild;else p=p->Rchild;}if(!p)return-1;/*查找失败*/if(p->Lchild p->Rchild) { /*处理情况③*/s= (2) ;pp=p;while( (3) ){pp=s;s=s->Rchild;}p->data=s->data;p=s;}/*处理情况①、②*/if( (4) )c=p->Lchild;else c=p->Rchild;if(p==*r)*r=c;else if( (5) )pp->Lchild=c;else pp->Rchild=c;free(p);return 0;}

考题 阅读下列C函数和函数说明,将应填入(n)处的字句写在对应栏内。【说明】函数DeleteNode (Bitree *r, int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返回-1。二叉查找树结点的类型定义为:typedef struct Tnode{int data; /*结点的键值*/struct Tnode *Lchild, *Rchild; /*指向左、右子树的指针*/}*Bitree:在二叉查找树上删除一个结点时,要考虑3种情况:①若待删除的结点p是叶子结点,则直接删除该结点;②若待删除的结点p只有一个子结点,则将这个子结点与待删除结点的父结点直接连接,然后删除结点p;③若待删除的结点p有两个子结点,则在其左子树上,用中序遍历寻找关键值最大的结点s,用结点s的值代替结点p的值,然后删除结点s,结点s必属于上述①、②情况之一。【函数】int DeleteNode (Bitree *r,int e) {Bitree p=*r,pp,s,c;while ( (1) ){ /*从树根结点出发查找键值为e的结点*/pp=p;if(e<p->data) p=p->Lchild;else p=p->Rchild;}if(!P) return-1; /*查找失败*/if(p->Lchild p->Rchild) {/*处理情况③*/s=(2);pp=pwhile (3) {pp=s;s=s->Rchild;}p->data=s->data; p=s;}/*处理情况①、②*/if ( (4) ) c=p->Lchild;else c=p->Rchild;if(p==*r) *r=c;else if ( (5) ) pp->Lchild=c;else pp->Rchild=c;free (p);return 0;}

考题 判断线索二叉树中某结点p有左子女的条件是()。A、p!=NULLB、p->lchilD!=NULLC、p->ltaG==0D、p->ltaG==1

考题 在单链表中,指针p指向元素为x的结点,实现删除x节点的后继结点的语句是()。 A、p=p->next;B、p->next=p->next->next;C、p->next=p;D、p->next->next=p->next->next->next;

考题 在一个单链表中,若删除p所指向结点的后续结点,则执行()。 A、p->next=p->next->next;B、p->next=p->next;C、p=p->next;D、p=p->next->next;

考题 阅读下列函数说明和C函数,将应填入(n)处。【函数3说明】函数DeleteNode(Bitree * r,int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返回-1。二叉查找树结点的类型定义为:typedef struct Tnode{int data; /*结点的键值*/struct Tnode * Lchild,*Rchild; /*指向左、右子树的指针*/} * Bitree;在二叉查找树上删除一个结点时,要考虑三种情况:①若待删除的结点p是叶子结点,则直接删除该结点;②若待删除的结点p只有一个子结点,则将这个子结点与待删除结点的父结点直接连接,然后删除结点P;③若待删除的结点p有两个子结点,则在其左子树上,用中序遍历寻找关键值最大的结点s,用结点s的值代替结点p的值,然后删除结点s,结点s必属于上述①、②情况之一。【函数3】int DeleteNode(Bitree * r,int e){Bitree p=*r,pp,s,c;while((1)){ /*从树根结点出发查找键值为e的结点*/pp=p;if(e<p->data)p=p->Lchild;else p=p->Rchild;{if(!p)return-1; /*查找失败*/if(p->Lchild p->Rchild){/*处理情况③*/s=(2); pp=p;while((3)){pp=s;s=s->Rchild;}p->data=s->data;p=s;}/*处理情况①、②*/if((4))c=p->Lchild;else c=p->Rchild;if(p==*r)*r=c;else if((5))pp->Lchild=c;else pp->Rchild=c;free(p);return 0;}

考题 线性链表中结点的结构为(data,next)。已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列()操作。A.s->next=p;p->next=s;B.s->next=p->next;p->next=s;C.s->next=p->next;p=s;D.p->next=s;s->next=p;

考题 阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]完成以下中序线索化二叉树的算法。[函数]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);}}

考题 设单链表中结点的结构为已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作______。A.s->link=p;p->link=s;B.s->link=p->link;p->link=s;C.s->link=p->link;p=s;D.p->link=s;s->link=p;

考题 设指针变量p指向单链表中的结点A,则删去结点A的语句序列为 Q=p->next;p->data = p->data: p->next=(); :feee(q);

考题 在一个单链表中,若要删除P结点的后续结点,则应执行()。A.P->next=P->next->next B.p=P->next;P->next=P->next->next C.delete(P->next) D.p=P->next->next

考题 线索二叉树中某结点R没有左孩子的充要条件是()。A.R.ltag=1 B.R.rchild=NULL C.R.lchild=NULL D.R.ltag=0

考题 在一个单链表中,若p所指的结点不是最后结点,则删除p所指的结点的后继结点的正确操作是()。A.p=p->next B.p->next=p->next C.p->next=p->next->next D.p->next=p

考题 线索化的二叉树中,某结点*P没有孩子的充要条件是()。A.p->lchild=NULL B.p->ltag=l&&p->rtag=1 C.p->ltag=0 D.p->lchild=NULL&&p->ltag=1

考题 在一个带头结点的循环双向链表中,若要删除指针p所指向的结点则执行()嗓作。A、p = p->prior;p->prior->next = p->nextB、p->prior->next = p;p->next = p->next->priorC、p->next->prior = p;p->next = p->next->nextD、p->prior->next = p->next;p->next->prior = p->prior

考题 判断线索二叉树中某结点P有左孩子的条件是__(1)__。若由森林转化得到的二叉树是非空的二叉树,则二叉树形状是__(2)__。空白(1)处应选择()A、P!=nullB、P-lchild!=nullC、P-ltag=0D、P-ltag=1

考题 己知指针p指向单链表中的某结点,则下列各组语句能删除链表中结点的是()A、p=p->nextB、q=p->next;q=q->nextC、p->next = p-next->nextD、q=p->next;p=p->next;q=p->next

考题 已知单链表上一结点的指针为p,则删除该结点后继的正确操作语句是:()A、 s= p->next; p=p->next;  free(s);B、 p=p->next;  free(p);C、 s= p->next; p->next=s->next;  free(s);D、 p=p->next;  free(p->next);

考题 已知单链表上一结点的指针为p,则在该结点之后插入新结点*s的正确操作语句为()A、 p->next=s; s->next=p-next;B、 s->next=p->next; p->next=s;C、 p->next=s; p->next=s->next;D、 p->next=s->next; p->next=s;

考题 线索二叉树中,结点p没有左子树的充要条件是()A、p->lc=NULLB、p->ltag=1C、p->ltag=1且p->lc=NULLD、以上都不对

考题 在一个单链表中,若要删除p指针所指向结点的后继结点,则执行()A、p->next=pB、p=p->next->nextC、p->next=p->next->nextD、p=p->next;p->next=p->next->next

考题 已知指针p指向单链表中某一结点,将新生成的由s所指结点加到p所指结点之后,其语句应为()。A、s->next=p->next;p-next=s;B、(*p).next=s;(*s).next=(*p).next;C、s->next=p->next;p->next=s->next;D、s->next=p+1; p->next=s;

考题 单选题判断线索二叉树中某结点P有左孩子的条件是__(1)__。若由森林转化得到的二叉树是非空的二叉树,则二叉树形状是__(2)__。空白(1)处应选择()A P!=nullB P-lchild!=nullC P-ltag=0D P-ltag=1

考题 单选题在单链表中,要将s所指结点插入到p所指结点之后,其语句应为()。A s->next=p+1; p->next=s;B (*p).next=s; (*s).next=(*p).next;C s-next=p->next; p->next=s->next;D s-next=p->next; p->next=s;

考题 单选题已知单链表上一结点的指针为p,则删除该结点后继的正确操作语句是:()A  s= p->next; p=p->next;  free(s);B  p=p->next;  free(p);C  s= p->next; p->next=s->next;  free(s);D  p=p->next;  free(p->next);

考题 单选题已知单链表上一结点的指针为p,则在该结点之后插入新结点*s的正确操作语句为()A  p->next=s; s->next=p-next;B  s->next=p->next; p->next=s;C  p->next=s; p->next=s->next;D  p->next=s->next; p->next=s;

考题 单选题线索二叉树中,结点p没有左子树的充要条件是()A p->lc=NULLB p->ltag=1C p->ltag=1且p->lc=NULLD 以上都不对

考题 单选题己知指针p指向单链表中的某结点,则下列各组语句能删除链表中结点的是()A p=p->nextB q=p->next;q=q->nextC p->next = p-next->nextD q=p->next;p=p->next;q=p->next