| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖
标题:二叉树操作程序不是按顺序进行!上代码,大家解答下
取消只看楼主 加入收藏
张海锋
Rank: 2
等 级:论坛游民
帖 子:52
专家分:37
注 册:2012-12-8
结帖率:55.56%
收藏
 问题点数:0 回复次数:1 
二叉树操作程序不是按顺序进行!上代码,大家解答下
程序代码:
void Tree::PreOrder(TreeNode* b)//前序遍历
{
    if(b==NULL)
        return;
    else
    {
        cout<<b->data<<"\t";
        PreOrder(b->lchild);
        PreOrder(b->rchild);
    }
}

void Tree::InOrder(TreeNode* b)//中续遍历
{
    if(b==NULL)
        return;
    else
    {
        InOrder(b->lchild);
        cout<<b->data<<"\t";
        InOrder(b->rchild);
    }
}

void Tree::PostOrder(TreeNode* b)//后续遍历
{
    if(b==NULL)
        return;
    else
    {
        PostOrder(b->lchild);
        PostOrder(b->rchild);
        cout<<b->data<<"\t";
    }
}
    while(n)
    {
    switch(n)
    {
    case 1:
        {
        cout<<"这是前序遍历"<<endl;
        tree.PreOrder();
        break;
        }
    case 2:
        {
        cout<<"这是前序遍历"<<endl;
        tree.InOrder();
        break;
        }
    case 3:
        {
        cout<<"这是前序遍历"<<endl;
        tree.PostOrder();
        break;
        }

运行结果
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 二叉树 
2013-10-23 11:12
张海锋
Rank: 2
等 级:论坛游民
帖 子:52
专家分:37
注 册:2012-12-8
收藏
得分:0 
回复 2楼 yuccn
程序代码:
TreeNode* Tree::Create(TreeNode *b)
{
    char data;
    try 
    {
    cout<<"请输入节点数据\t";cin>>data;
    if(data<64||data>127)
    {
    throw "请输入一个英文字符";
    }
    }
    catch(char *s)
    {
        cout<<s<<endl;
    }
    if(data=='@')
    {
        b=NULL;
    }
    else
    {
        b=new TreeNode;b->data=data;
        NodeNumber+=1;
        b->lchild=Create(b->lchild);
        b->rchild=Create(b->rchild);
    }
    return b;
}

void Tree::PreOrder(TreeNode* b)
{
    if(b==NULL)
        return;
    else
    {
        cout<<b->data<<"\t";
        PreOrder(b->lchild);
        PreOrder(b->rchild);
    }
}

void Tree::InOrder(TreeNode* b)
{
    if(b==NULL)
        return;
    else
    {
        InOrder(b->lchild);
        cout<<b->data<<"\t";
        InOrder(b->rchild);
    }
}

void Tree::PostOrder(TreeNode* b)
{
    if(b==NULL)
        return;
    else
    {
        PostOrder(b->lchild);
        PostOrder(b->rchild);
        cout<<b->data<<"\t";
    }
}

void Tree::Delete(TreeNode* b)
{
    if(b==NULL)
        return;
    else
    {
        Delete(b->lchild);
        Delete(b->rchild);
        NodeNumber--;
        delete b;
    }
}

void Tree::Create()
{
    root=Create(root);
}

void Tree::PreOrder()
{
    PreOrder(root);
}

void Tree::InOrder()
{
    InOrder(root);
}

void Tree::PostOrder()
{
    PostOrder(root);
}

Tree::~Tree()
{
    Delete(root);
}

2013-10-23 12:20
快速回复:二叉树操作程序不是按顺序进行!上代码,大家解答下
数据加载中...
 
   



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

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