| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1288 人关注过本帖
标题:问一个2叉树递归问题望高手指点
只看楼主 加入收藏
yuhaoloen
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-1-20
收藏
 问题点数:0 回复次数:6 
问一个2叉树递归问题望高手指点
struct BTreeNode{
                  char data;
                  struct BTreeNode *lchild;
                  struct BTreeNode *rchild;
                 }
void R_Inorder(NODE *t)
{  if (root!=NULL)
      {
         R_Inorder(t->lchild);/*这一部分函数递推倒t->lchild为空时结束,回溯的值是什么??*/
         printf("%c",t->data);
         R_Inorder(t->rchild);
       }
}
这是一个递归的2叉树中序遍历 问题已经注上望高手指点 谢谢
搜索更多相关主题的帖子: 递归 
2008-04-08 14:15
cobby
Rank: 1
等 级:新手上路
威 望:1
帖 子:565
专家分:0
注 册:2007-7-11
收藏
得分:0 
不返回值,当函数参数不为空时,打印节点,为空时,什么都不做。

努力成为菜鸟!
2008-04-10 11:40
highblue01
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-4-10
收藏
得分:0 
我想問一下. if (root!=NULL)
和 printf("%c",t->data);
這兩個語句是什麽意思.??
2008-04-10 19:25
yuhaoloen
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-1-20
收藏
得分:0 
理解了 谢谢指点啊
2008-04-11 19:45
LQ003520
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-4-16
收藏
得分:0 
二叉树的中序遍历。如根节点不为空,则访问该根节点的左子树,如左子树为空则访问根节点(此处为打印根节点的数据域值),后在访问右子树。这是函数的嵌套问题。
2008-04-16 22:57
tanshaoshi
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-4-22
收藏
得分:0 
//二叉树的应用:二叉树的构造、遍历。
//2008.04.12
#include<stdio.h>
#include<iostream>
using namespace std;
struct binaryTreeNode
{
    char data;
    struct binaryTreeNode *lefttree,*righttree;
};
typedef struct binaryTreeNode BinaryTree;
char ch=' ';
void CreateTree(BinaryTree *&tree)
{  
    if(ch!='\n')
    { ch=getchar();
       if(ch=='\n')
           return;
       if(ch=='.')
         tree=NULL;
        else
        {
           tree=new BinaryTree;           
           tree->data=ch;
           tree->lefttree=NULL;
           tree->righttree=NULL;
           CreateTree(tree->lefttree);
           CreateTree(tree->righttree);
        }
    }
    else return;
}

void PreOrder(BinaryTree *tree)
{
    if(tree!=NULL)
    {   
        putchar(tree->data);
        PreOrder(tree->lefttree);
        PreOrder(tree->righttree);
    }
}

void InOrder(BinaryTree *tree)
{
    if(tree!=NULL)
    {   
        InOrder(tree->lefttree);
        putchar(tree->data);
        InOrder(tree->righttree);
    }
}

void PostOrder(BinaryTree *tree)
{
    if(tree!=NULL)
    {   
        PostOrder(tree->lefttree);        
        PostOrder(tree->righttree);
        putchar(tree->data);
    }
}

int main()
{
    BinaryTree *t=NULL;
    cout<<"(输入时以前序和完全二叉树的形式,空结点用'.'代替,遇到叶子结点时加输两个'.')"<<endl;
    cout<<"请输入一串字符串:"<<endl;
    CreateTree(t);
    cout<<"按前序遍历:"<<endl;
    PreOrder(t);
    cout<<endl;
    cout<<"按中序遍历:"<<endl;
    InOrder(t);
    cout<<endl;
    cout<<"按后序遍历:"<<endl;
    PostOrder(t);
    cout<<endl;
    return 0;
}
2008-04-22 17:15
tanshaoshi
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-4-22
收藏
得分:0 
这几天做的实验
2008-04-22 17:16
快速回复:问一个2叉树递归问题望高手指点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031337 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved