#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();
}
首先请问:二叉树这样的初始化对不对。
如果对的话,为什么前序遍历没有出来呢?
小弟新手,请各位指教!!!!!