c语言-先序遍历子程序,为什么无法输出右子数

问题描述

先序遍历子程序,为什么无法输出右子数

void outbef(Bnode *T)
{
void createtree(Bnode *T);
if(T==NULL)

{

printf("error:空数组!请重新输入!n");
createtree(T);
}
printf("%ct",T->data);
if(T->lchild!=NULL) outbef(T->lchild);
if(T->rchild!=NULL) outbef(T->rchild);
printf("n");
}

解决方案

为什么把建树写在遍历里面?

解决方案二:

void outbef(Bnode *T)
{
if(T==NULL)
{
printf("error:空数组!请重新输入!n");
}
else
{
printf("%ct",T->data);
outbef(T->lchild);
outbef(T->rchild);
printf("n");
}
}
试试这个

解决方案三:

可能又子树是个NULL。。。。。。。。。。。。。。

时间: 2024-09-17 08:15:36

c语言-先序遍历子程序,为什么无法输出右子数的相关文章

UVa 548:Tree 二叉树的重建——中序遍历与后续遍历进行建树

题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=104&page=show_problem&problem=489 题目类型: 数据结构, 二叉树 题目大意: 给两个组数字,都是在同一棵二叉树上的,第一组是按中序遍历(inorder)顺序输出的,第二组是按后序遍历(postorder)输出的, 根据这两组数据构建出原来的二叉树,然后计算从根结点到每个叶子结

c语言-大神求教C语言,知道二叉树先序中序遍历序列,求后序遍历序列。

问题描述 大神求教C语言,知道二叉树先序中序遍历序列,求后序遍历序列. #include#include#include using namespace std; typedef struct Btree{ struct Btree *left; struct Btree *right; char data;}Node; void Create_Btree(Node *tree char *pre int pre_low int pre_high char *middle int middle_

c语言-已知二叉树的中序遍历序列与层次遍历序列分别存于数组A[1-n] B[1-n]中,建立二叉树的二叉链表。

问题描述 已知二叉树的中序遍历序列与层次遍历序列分别存于数组A[1-n] B[1-n]中,建立二叉树的二叉链表. 已知二叉树的中序遍历序列与层次遍历序列分别将值存于数组A[1-n].B[1-n]中,请编程建立二叉树的二叉链表. 二叉树结点定义 typedef struct { Elemtype data; BiNode* lchild,rchild; }BiNode,*BiTree; 解决方案 http://www.zybang.com/question/23e04267bb862ea67197

c语言-二叉树 中序输入,后序遍历,先序确定

问题描述 二叉树 中序输入,后序遍历,先序确定 解决方案 二叉树的非递归先序,中序,后序遍历二叉树的先序.中序.后序遍历二叉树的遍历(先序.中序.后序) 解决方案二: http://blog.csdn.net/zhaojinjia/article/details/9314989

判断整数序列是否为二元查找树的后序遍历结果的解决方法_C 语言

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果.如果是返回true,否则返回false.例如输入5.7.6.9.11.10.8,由于这一整数序列是如下树的后序遍历结果.    8    / \  6   10 / \    / \ 5  7 9 11因此返回true.如果输入7.4.6.5,没有哪棵树的后序遍历的结果是这个序列,因此返回false.本题网上已经有用递归单纯判断的解法. 个人解法: 先得到序列对应的中序序列, 然后看中序序列是否从小到大有序, 得出判断. 相比

先序遍历二叉树的递归实现与非递归实现深入解析_C 语言

1.先序遍历二叉树  递归实现思想:若二叉树为空,返回.否则 1)遍历根节点:2)先序遍历左子树:3)先序遍历右子树: 代码: 复制代码 代码如下: template<typename elemType> void PreOrder(nodeType<elemType> *root)  {      if(root==NULL)          return ;      visit(root->data); // visit the data    PreOrder(ro

求大神看看,C语言二叉树非递归遍历问题 ,最后输出正确,然后在程序崩溃

问题描述 求大神看看,C语言二叉树非递归遍历问题 ,最后输出正确,然后在程序崩溃 #include #include #include typedef struct TNode { char date; struct TNode *lchild,*rchild; }TNode,*BiTree; typedef struct { BiTree top; BiTree *base; int stacksize; }Stack; int createBiTree(BiTree &S){ char ch

C语言实现二叉树遍历的迭代算法_C 语言

本文实例讲述了C语言实现二叉树遍历的迭代算法,是数据结构算法中非常经典的一类算法.分享给大家供大家参考. 具体实现方法如下: 二叉树中序遍历的迭代算法: #include <iostream> #include <stack> using namespace std; struct Node { Node(int i, Node* l = NULL, Node* r = NULL) : item(i), left(l), right(r) {} int item; Node* le

根据先序中序遍历建树【模板】

主要就是通过先序找到当前子树根节点,再用中序遍历分子树,不断递归下去. #include <iostream> #include <stdio.h> #include <cstring> #include <vector> #include <cmath> #include <algorithm> #include <set> #include <cassert> #include <time.h>