⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree.cpp

📁 c++书籍的源代码
💻 CPP
字号:
//tree.cpp
#include<iostream.h>
#include "tree.h"
 node::node(int x)
{
 data=x;
}
 node::~node()
{
 cout<<"二叉树的结点被析构"<<endl;
}
 tree::tree(void)
{
 root=0;
}
 tree::~tree()
{
 free_t(root);
 cout<<"二叉树被析构"<<endl;
}
 void tree::free_t(node *r)
{
 if(r!=0)
 {
  free_t(r->left);
  free_t(r->right);
  delete r;
 } 
}
 node* tree::get_r()
{
 return(root);
}
 void tree::build_t(int d)
{
 node *p,*q;
 if(root==0)//空树
 {
  root=new node(d);
  root->left=0;
  root->right=0;
 }
 else
 {
  p=root;
  while(p!=0)
  {
   q=p;
   if(d<p->data)
	p=p->left;
   else
	p=p->right;
  }
  node *newp=new node(d);
  newp->left=0;
  newp->right=0;
  if(d<q->data)
   q->left=newp;
  else
   q->right=newp;
 }
}
 void tree::preorder(node *r)//前序遍历
{
 if(r!=0)
 {
  cout<<r->data<<" ";
  preorder(r->left);
  preorder(r->right);
 }
}
 void tree::inorder(node *r)//中序遍历
{
 if(r!=0)
 {
  inorder(r->left);
  cout<<r->data<<" ";
  inorder(r->right);
 }
}
 void tree::postorder(node *r)//后序遍历
{
 if(r!=0)
 {
  postorder(r->left);
  postorder(r->right);
  cout<<r->data<<" ";
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -