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

请问大虾为什么构造树时要用“ *&“进行参数传递,为什么用”&" 就不行?多谢了!
如下是代码:
#include <iostream.h>
struct node
{
char data;
node * lchild,*rchild;
};
struct element
{
node *ptr;
int flag;
};
class tree
{
public :
tree (); //构造函数
~tree(); //析构函数
node *getroot () { return root;}
void creattree(node *&root); //构造树
void postorder(node *root); //后序遍历非递归算法
void release(node *r) ; //析造树
private:
node * root;
};

tree::tree() //构造
{
cout <<"请输入各结点的数据:"<<endl;
creattree(root);
}

tree ::~tree () //析构
{
release( root);
}


void tree::creattree (node *& cr) //构造树
{
char ch;
cin>>ch;
if (ch=='#')
cr=NULL;
else
{
cr=new node ;
cr->data =ch;
creattree(cr->lchild);
creattree(cr->rchild);
}
}


void tree::release (node *re) // 析造树
{
if (re!=NULL)
{
release(re->lchild);
release (re->rchild);
delete re;
}
}


void tree::postorder (node *root)//后序遍历树
{
int top =-1;
element s[100];
while (root!=NULL||top!=-1)
{
while (root!=NULL)
{
top++;
s[top].ptr=root;
s[top].flag=1;
root =root ->lchild ;
}
while ( top!=-1&&s[top].flag==2)
{
root=s[top--].ptr;
cout <<root->data;
}
if (top!=-1)
{
s[top].flag=2;
root=s[top].ptr->rchild;
}
else
return ;
}
}
void main ()
{
tree tr;
cout <<" 后序遍历为:"<<endl;
tr.postorder (tr.getroot ());
}

搜索更多相关主题的帖子: void element include public 
2007-05-16 18:21
ming528
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-4-9
收藏
得分:0 
多谢了,大家!
2007-05-17 21:25
快速回复:请教一个有关树的问题!
数据加载中...
 
   



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

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