BT) return; BinTree que[1000],p; int front=0,rear=0; que[rear++]=BT; while (front!=rear) { p=que[front++]; printf(" %c",p->Data); if (p->Left) que[rear++]=p->Left; if (p->Right) que[rear++]=p->Right; } } 我们不妨多做一步,创建二叉树,亲自看到运行的结果。 我们...
1#defineMAXSIZE 202voidInorderTraversal( BinTree BT ){3if(BT!=NULL){4BinTree stack[30];5inttop=-1;6while(BT||top!=-1){7while(BT){8stack[++top]=BT;9BT=BT->Left;10}11if(top!=-1){12BT=stack[top--];13printf("%c",BT->Data);14BT=BT->Right;15}16}17}18}19voidPreorder...
1.二叉树为空,返回0 if(!BT)return0; 2.递归高度累加 if(BT){intm=GetHeight(BT->Left);intn=GetHeight(BT->Right);return(m>n)?(m+1):(n+1);} 提交代码: intGetHeight(BinTreeBT){if(!BT)return0;else{intm=GetHeight(BT->Left);intn=GetHeight(BT->Right);return(m>n)?(m+1):(n...
PTA 6-12 (二叉树的递归删除) 1BinTree Insert( BinTree BST, ElementType X )2{3if(BST==NULL) {4BinTree tmp=(BinTree)malloc(sizeof(structTNode));5tmp->Data=X;6tmp->Left=tmp->Right=NULL;7returntmp;8};9if(X<BST->Data)10BST->Left=Insert(BST->Left,X);11else12BST->Right=Insert...
pta6-2 中序遍历的非递归算法可以使用栈来实现。 首先将根节点入栈,然后将左子树的所有节点入栈,直到到达最左边的叶子节点。然后从栈中弹出一个节点,访问它,并将它的右子树入栈。重复上述过程,直到栈为空。 具体步骤如下: 1.初始化一个空栈。 2.将根节点入栈。 3.当栈非空时,重复以下步骤: -将栈顶...
PTA:数据结构与算法题目集(中文) 求二叉树深度: ...猜你喜欢数据结构学习——浙江大学数据结构与算法题目集6-1 单链表逆转 题目: 本题要求实现一个函数,将给定的单链表逆转。 函数接口定义: 其中List结构定义如下: L是给定单链表,函数Reverse要返回被逆转后的链表。 裁判测试程序样例: 输入样例: 输出样例: ...
PTA先序输出叶结点 (10分) 函数接口定义: void PreorderPrintLeaves( BinTree BT ); 其中BinTree结构定义如下: 函数PreorderPrintLeaves应按照先序遍历的顺序输出给定二叉树BT的叶结点,格式为一个空格跟着一个字符。 裁判测试程序样例: 题解 代码比较简单 就是在递归遍历的基础上 加了一条判断语句 如果左右...
如果不用递归的话,例如还是上图先访问1,然后把542依次压栈,弹出2,压3,弹出3,弹出4,弹出5,压7,6,弹出6,7.访问顺序依然是1234567的。如果感兴趣的话,可以试试不用递归用栈写深搜。(在二叉树里面也有不用递归用栈的遍历,前序还好,中序应该是比较难的)但是如果是像数独,全排列这种算法,压栈的时候还得把...
6-8 求二叉树高度 (20分) 本题要求给定二叉树的高度。 函数接口定义: 代码语言:javascript 复制 intGetHeight(BinTreeBT); 其中BinTree结构定义如下: 代码语言:javascript 复制 typedef struct TNode*Position;typedef Position BinTree;struct TNode{ElementType Data;BinTree Left;BinTree Right;};...
1; if (BT) que[++tail] = BT; while (top < tail) { BinTree bt = que[++top]; printf(" %c", bt->Data); if (bt->Left) que[++tail] = bt->Left; if (bt->Right) que[++tail] = bt->Right; } } 分类: PTA 好文要顶 关注我 收藏该文 微信分享 Ruohua3kou ...