注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘邓

每天收获一点点-目标:富足

 
 
 

日志

 
 

二叉树的建立和递归遍历  

2012-02-22 21:16:51|  分类: 技术类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
/*
1.插入节点建立有序的二叉树(左子树的值<father<右子树)
2.左为L,右为R,父为F 则前序为FLR;中序为LFR;后序为LRF。 
*/
#include<iostream>
using namespace std;
class BinTree;
class Node{
      friend class BinTree;
      private:
              float data;
              Node *lchild,*rchild;
      public:
             Node():lchild(0),rchild(0){}
             Node(float val,Node *lpointer,Node *rpointer)
             {
                      data=val;
                      lchild=lpointer;
                      rchild=rpointer;
                      }
             float GetData(){return data;}
             Node* GetLchild(){return lchild;}
             Node* GetRchild(){return rchild;}
      };
class BinTree{
      private:
              Node *root;
              void insertNode(Node *&t,float val);//插入节点(有序二叉树) 
              void PreOrder(Node *t);//前序递归遍历 
              void MOrder(Node *t);//中序递归遍历 
              void PostOrder(Node *t);//后续递归遍历 
              //void Destroy(Node *t);
      public:
             BinTree():root(0){}
             //~BinTree(){Destroy(root);}
             void insertNode(float val){
                  insertNode(root,val);}
             void PreOrder(){PreOrder(root);}
             void MOrder(){MOrder(root);}
             void PostOrder(){PostOrder(root);}
      
      };
void BinTree::insertNode(Node *&t,float val)
{
     if(t==0)t=new Node(val,0,0);
     else if(val<t->data) insertNode(t->lchild,val);
     else insertNode(t->rchild,val);
     }

void BinTree::PreOrder(Node *t)
{
     if(t!=0){
              cout<<t->data<<" ";
              PreOrder(t->lchild);
              PreOrder(t->rchild);
              }
     }

void BinTree::MOrder(Node *t)
{
     if(t!=0)
     {
             MOrder(t->lchild);
             cout<<t->data<<" ";
             MOrder(t->rchild);
     }
}
void BinTree::PostOrder(Node *t)
{
     if(t!=0){
              PostOrder(t->lchild);
              PostOrder(t->rchild);
              cout<<t->data<<" ";
              }
     }
int main()
{
    BinTree BTree;
    int i;
    float v;
    cout<<"Please enter 10 Numbers:";
    cout<<endl;
    for(i=0;i<10;i++)
    {
                     cin>>v;
                     BTree.insertNode(v);
                     }
    BTree.PreOrder();
    cout<<endl;
    BTree.MOrder();
    cout<<endl;
    BTree.PostOrder();
    cout<<endl;
    system("pause");
    return 0;
    }

  评论这张
 
阅读(114)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018