一颗二叉树
创建结点
typedef struct node
{
int data;
node *lchild;
node *rchild;
node() :lchild(NULL), rchild(NULL){}
}Tree,*tree;
建树
tree bulid(tree root, int val)
{
if (root==NULL)
{
root = new Tree;
root->data = val;
}
if (val<root->data)
{
root->lchild=bulid(root->lchild, val);
}
if (val>root->data)
{
root->rchild=bulid(root->rchild, val);
}
return root;
}
遍历(前序、中序、后序遍历其实代码类似,这边就给出中序遍历)
void mid(tree root)
{
if (root!=NULL)
{
mid(root->lchild);
cout << root->data;
mid(root->rchild);
}
}
具体测试:
#include<iostream>
using namespace std;
typedef struct node
{
int data;
node *lchild;
node *rchild;
node() :lchild(NULL), rchild(NULL){}
}Tree,*tree;
tree bulid(tree root, int val)
{
if (root==NULL)
{
root = new Tree;
root->data = val;
}
if (val<root->data)
{
root->lchild=bulid(root->lchild, val);
}
if (val>root->data)
{
root->rchild=bulid(root->rchild, val);
}
return root;
}
void mid(tree root)
{
if (root!=NULL)
{
mid(root->lchild);
cout << root->data;
mid(root->rchild);
}
}
void main()
{
tree T = NULL;
T = bulid(T, 1);
T = bulid(T, 2);
T = bulid(T, 4);
T = bulid(T, 3);
T = bulid(T, 7);
T = bulid(T, 6);
mid(T);
while (true)
{
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)