您的位置:首页 > 理论基础 > 数据结构算法

<数据结构>二叉树的实现

2017-01-02 14:50 627 查看
#include<iostream>
using namespace std;
struct BiNode
{
int data;
BiNode *rchild, *lchild;
};
class BiTree
{
public:

void createtree();
void preorder();

private:
BiNode *root;
void Create(BiNode* &bt);//注意必须有&
void printnode(BiNode* T);
};
void BiTree::printnode(BiNode* T)
{
if (T){
cout << T->data << endl;
printnode(T->lchild);
printnode(T->rchild);
}
}
void BiTree::preorder()
{
printnode(root);
}

void BiTree::createtree()
{
cout << "请输入根节点:" << endl;
Create(root);
if (NULL != root)
{
cout << "root=" << root->data << endl;
}
else
{
cout << "The BinaryTree is empty." << endl;
}
}
void BiTree::Create(BiNode* &bt)
{
int ch;
cin >> ch;
if (ch == 0)bt = NULL;
else
{
bt = new BiNode;
bt->data = ch;
cout << "调用左孩子" << endl;
Create(bt->lchild);
cout << "调用右孩子" << endl;
Create(bt->rchild);
}
}
int main()
{
BiTree m;
m.createtree();
m.preorder();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: