Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- class Treenode{
- public:
- int data;
- Treenode*Lnode;
- Treenode*Rnode;
- Treenode(int in)
- {
- data = in;
- Lnode = NULL;
- Rnode = NULL;
- }
- };
- class Btree{
- public:
- Treenode*root = NULL;
- void add_Treenode(int value);
- void preorder(Treenode*ptr);
- void inorder(Treenode*ptr);
- void postorder(Treenode*ptr);
- };
- void Btree::add_Treenode(int value)
- {
- if (root == NULL)
- {
- root = new Treenode(value);
- return;
- }
- else
- {
- Treenode*ptr = root;
- Treenode*x = new Treenode(value);
- while (true)
- {
- if (value > ptr->data) //往右
- {
- if (ptr->Rnode != NULL)
- ptr = ptr->Rnode;
- else
- {
- ptr->Rnode = x;
- return;
- }
- }
- else //往左
- {
- if (ptr->Lnode != NULL)
- ptr = ptr->Lnode;
- else
- {
- ptr->Lnode = x;
- return;
- }
- }
- }
- }
- }
- void Btree::inorder(Treenode*ptr)
- {
- if (ptr != NULL)
- {
- inorder(ptr->Lnode);
- cout << ptr->data << endl;
- inorder(ptr->Rnode);
- }
- }
- void Btree::preorder(Treenode*ptr)
- {
- if (ptr != NULL)
- {
- cout << ptr->data << endl;
- inorder(ptr->Lnode);
- inorder(ptr->Rnode);
- }
- }
- void Btree::postorder(Treenode*ptr)
- {
- if (ptr != NULL)
- {
- inorder(ptr->Lnode);
- inorder(ptr->Rnode);
- cout << ptr->data << endl;
- }
- }
- void main()
- {
- Btree tr;
- tr.add_Treenode(8);
- tr.add_Treenode(17);
- tr.add_Treenode(31);
- tr.add_Treenode(9);
- tr.add_Treenode(98);
- tr.add_Treenode(12);
- tr.inorder(tr.root);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement