• 2021-04-14 问题

    1.编写递归算法,将二叉树中所有结点的左、右子树相互交换。 StatusExchangeBiTree(BiTree& T) { BiTree p; if(T){ p=T->lchild; T->lchild=T->rchild; T->rchild=p; ExchangeBiTree(T->lchild); } return OK; }

    1.编写递归算法,将二叉树中所有结点的左、右子树相互交换。 StatusExchangeBiTree(BiTree& T) { BiTree p; if(T){ p=T->lchild; T->lchild=T->rchild; T->rchild=p; ExchangeBiTree(T->lchild); } return OK; }

  • 2021-04-14 问题

    写出下面算法的功能。Bitree*function(Bitree*bt){Bitree*t,*t1,*t2;if(bt==NULL)t=NULL;else{t=(Bitree*)malloc(sizeof(Bitree));t->data=bt->data;t1=function(bt->left);t2=function(bt->right);t->left=t2;t->right=t1;}return(t);}

    写出下面算法的功能。Bitree*function(Bitree*bt){Bitree*t,*t1,*t2;if(bt==NULL)t=NULL;else{t=(Bitree*)malloc(sizeof(Bitree));t->data=bt->data;t1=function(bt->left);t2=function(bt->right);t->left=t2;t->right=t1;}return(t);}

  • 2021-04-14 问题

    (1)voidAA(BiTree*T){if(T){printf("%c",T->data);AA(T->lchild);AA(T->rchild);}}Writethefunctionofthealgorithmabove.(5.0分)

    (1)voidAA(BiTree*T){if(T){printf("%c",T->data);AA(T->lchild);AA(T->rchild);}}Writethefunctionofthealgorithmabove.(5.0分)

  • 2021-04-14 问题

    设计一个在链式存储结构上统计二叉树中结点个数的算法。 void countnode(BiTree bt,int &count);

    设计一个在链式存储结构上统计二叉树中结点个数的算法。 void countnode(BiTree bt,int &count);

  • 2022-06-16 问题

    以下程序是二叉链表树中序遍历的非递归算法,请填空使之完善。二叉树链表的结点类型的定义如下:typedef struct node /*C语言/{char data; struct node *lchild,*rchild;}*bitree;void vst(bitree bt) /*bt为根结点的指针*/{ bitree p; p=bt; initstack(s); /*初始化栈s为空栈*/while(p || !empty(s)) /*栈s不为空*/if(p) { push (s,p);____; } /*P入栈*/else { p=pop(s); printf(“%c”,p->;data); ____; } /*栈顶元素出栈*/}

    以下程序是二叉链表树中序遍历的非递归算法,请填空使之完善。二叉树链表的结点类型的定义如下:typedef struct node /*C语言/{char data; struct node *lchild,*rchild;}*bitree;void vst(bitree bt) /*bt为根结点的指针*/{ bitree p; p=bt; initstack(s); /*初始化栈s为空栈*/while(p || !empty(s)) /*栈s不为空*/if(p) { push (s,p);____; } /*P入栈*/else { p=pop(s); printf(“%c”,p->;data); ____; } /*栈顶元素出栈*/}

  • 2022-06-16 问题

    以下程序是二叉链表树中序遍历的非递归算法,请填空使之完成(注意:语句中不要留空格)。二叉树链表的结点类型的定义如下:typedef struct node { char data; struct node *lchild,*rchild;}*bitree;void visit(bitree bt) /*bt为根结点的指针*/ {bitree p; p=bt; initstack(s); /*初始化栈s为空栈*/ while( p || !empty(s)) /*栈s不为空*/ if(p) { push (s,p);/* p 入栈*/ (1)______; } else { p=pop(s);/*栈顶元素出栈*/ printf(“%c”,p->data); p=p->rchild; }}

    以下程序是二叉链表树中序遍历的非递归算法,请填空使之完成(注意:语句中不要留空格)。二叉树链表的结点类型的定义如下:typedef struct node { char data; struct node *lchild,*rchild;}*bitree;void visit(bitree bt) /*bt为根结点的指针*/ {bitree p; p=bt; initstack(s); /*初始化栈s为空栈*/ while( p || !empty(s)) /*栈s不为空*/ if(p) { push (s,p);/* p 入栈*/ (1)______; } else { p=pop(s);/*栈顶元素出栈*/ printf(“%c”,p->data); p=p->rchild; }}

  • 2021-04-14 问题

    写递归算法,将二叉树中所有结点的左、右子树相互交换。 Status ExchangeBiTree(BiTree& T) { BiTreep; if(T){ p=T->lchild; T->lchild=T->rchild; T->rchild=p; ExchangeBiTree(T->lchild); __________ } returnOK; }

    写递归算法,将二叉树中所有结点的左、右子树相互交换。 Status ExchangeBiTree(BiTree& T) { BiTreep; if(T){ p=T->lchild; T->lchild=T->rchild; T->rchild=p; ExchangeBiTree(T->lchild); __________ } returnOK; }

  • 2021-04-14 问题

    以下程序段采用先根遍历方法求二叉树的叶子数,请在横线处填充适当的语句(注意:字符之间不要留空白)。 void countleaf (bitree ptr t,int &count) { /*根指针为t,假定叶子数 count 的初值 = 0 */ if (t!=NULL) { if ( (t->lchild==NULL) && (t->rchild==NULL)) (1)________; countleaf (t->lchild,count); countleaf(l->rchild,count); } }

    以下程序段采用先根遍历方法求二叉树的叶子数,请在横线处填充适当的语句(注意:字符之间不要留空白)。 void countleaf (bitree ptr t,int &count) { /*根指针为t,假定叶子数 count 的初值 = 0 */ if (t!=NULL) { if ( (t->lchild==NULL) && (t->rchild==NULL)) (1)________; countleaf (t->lchild,count); countleaf(l->rchild,count); } }

  • 2022-06-06 问题

    二叉树中序遍历的非递归算法如下所示。请填写算法中下划线的空白处。[br][/br]Status Inorder(BiTree T){[br][/br]             InitStack(s);push(s,T);            While ( (1)){[br][/br]                            While (gettop(s,p)&&p) push (s, (2));              pop(s,p);              if(!StackEmpty(s)){                        pop(s,p);printf( (3));                        push(s, (4));[br][/br]              }//if[br][/br]        }//while[br][/br]         return ok;[br][/br]}//Inorder[br][/br]注:[br][/br]InitStack(s);初始化一个栈s;[br][/br]push(s,p);将所指向的结点进s栈[br][/br];pop(s,p);s栈顶元素出栈;[br][/br]gettop(s,p);取s栈顶元素;[br][/br]StackEmpty(s);判栈s是否为空。

    二叉树中序遍历的非递归算法如下所示。请填写算法中下划线的空白处。[br][/br]Status Inorder(BiTree T){[br][/br]             InitStack(s);push(s,T);            While ( (1)){[br][/br]                            While (gettop(s,p)&&p) push (s, (2));              pop(s,p);              if(!StackEmpty(s)){                        pop(s,p);printf( (3));                        push(s, (4));[br][/br]              }//if[br][/br]        }//while[br][/br]         return ok;[br][/br]}//Inorder[br][/br]注:[br][/br]InitStack(s);初始化一个栈s;[br][/br]push(s,p);将所指向的结点进s栈[br][/br];pop(s,p);s栈顶元素出栈;[br][/br]gettop(s,p);取s栈顶元素;[br][/br]StackEmpty(s);判栈s是否为空。

  • 1