程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 二叉排序樹(c++實現)

二叉排序樹(c++實現)

編輯:C++入門知識

二叉排序樹(c++實現)


#include 
using namespace std;
class btree
{
public:
	btree *left;
	btree *right;
	int data;
    btree(int i):left(NULL),right(NULL),data(i){}
    ~btree();

	void insert(int a);
	static void inorder(const btree*);//中序遍歷
	static void rinorder(const btree*);//中序遍歷,先遍歷右子樹

};
void btree::insert(int a)
{
	if (ainsert(a);
	else if (adata && right)
		right->insert(a);
	else if (a>data && !right)
		right=new btree(a);
}

void btree::inorder(const btree* b)
{
   if (b != NULL)
   {
   	  inorder(b->left);
   	  cout<data<<" ";
   	  inorder(b->right);
   }
}

void btree::rinorder(const btree* b)
{
   if (b != NULL)
   {
   	  rinorder(b->right);
   	  cout<data<<" ";
   	  rinorder(b->left);
   }
}
btree::~btree()
{
	if (left)
		delete left;
	if (right)
		delete right;
}

void main()
{
   int zu[]={45,1,9,12,8,4821,4,5,1651,51};
   btree *root=new btree(zu[0]);

   for (int i = 1; i < 10; ++i)
   {
   	 root->insert(zu[i]);
   }

   btree::inorder(root);
   cout<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved