| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:请教二叉树的问题
只看楼主 加入收藏
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
 问题点数:0 回复次数:3 
请教二叉树的问题

#include<iostream>
using namespace std;
const int n=6;
class node
{
public:
char data;
int llink,rlink;
};

node tree[n+1];
void preorder(int);

void initNode()
{
char ch;
int i=1,num;
for(;i<n+1;i++)
{
if(i==4){tree[i].data=' ';tree[i].llink=' ';tree[i].rlink=' ';}
cout<<"请输入节点数据:";
cin>>ch;
tree[i].data=ch;
}
for(i=1;i<n+1;i++)
{
if(i==1)
{tree[i].llink=2;
tree[i].rlink=3;}
if(i==2)
{tree[i].llink=0;
tree[i].rlink=4;}
if(i==3)
{tree[i].llink=5;
tree[i].rlink=6;}
if(i>3)
{tree[i].llink=0;
tree[i].rlink=0;}
}
preorder(n);
}

void preorder(int p)//前序遍历
{
if(p>0)
{
cout<<tree[p].data<<endl;
preorder(tree[p].llink);
preorder(tree[p].rlink);
}
}

void main()
{
cout<<"初始化一棵数\n";
initNode();
}
首先请问:二叉树这样的初始化对不对。
如果对的话,为什么前序遍历没有出来呢?
小弟新手,请各位指教!!!!!

搜索更多相关主题的帖子: 二叉树 
2006-09-11 22:54
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
以下是引用lw8484654在2006-9-11 22:54:04的发言:

#include<iostream>
using namespace std;
const int n=6;
class node
{
public:
char data;
int llink,rlink;
};

node tree[n+1];
void preorder(int);

void initNode()
{
char ch;
int i=1,num;
for(;i<n+1;i++)
{
if(i==4){tree[i].data=' ';tree[i].llink=' ';tree[i].rlink=' ';}
cout<<"请输入节点数据:";
cin>>ch;
tree[i].data=ch;
}
for(i=1;i<n+1;i++)
{
if(i==1)
{tree[i].llink=2;
tree[i].rlink=3;}
if(i==2)
{tree[i].llink=0;
tree[i].rlink=4;}
if(i==3)
{tree[i].llink=5;
tree[i].rlink=6;}
if(i>3)
{tree[i].llink=0;
tree[i].rlink=0;}
}
preorder(n);//preorder(1);
}

void preorder(int p)//前序遍历
{
if(p>0)
{
cout<<tree[p].data<<endl;
preorder(tree[p].llink);
preorder(tree[p].rlink);
}
}

void main()
{
cout<<"初始化一棵数\n";
initNode();
}
首先请问:二叉树这样的初始化对不对。
如果对的话,为什么前序遍历没有出来呢?
小弟新手,请各位指教!!!!!

应该从节点1(根节点)开始搜吧,初始化很土的说,哈


汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-12 00:24
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
其实输入可以规范一点,
比如每行输入
1 L 2 表示节点1的左儿子是2,这样至少在建树(初始化)的过程会比较有规律一点.

汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-12 00:28
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
我以为树的初始化要什么算法呢?
2006-09-12 11:13
快速回复:请教二叉树的问题
数据加载中...
 
   



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

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