求二叉树中每一个节点对应的层次

转载自:http://wenku.baidu.com/view/b9c8c4115f0e7cd1842536da.html
#include "stdafx.h"
#include<iostream>
using namespace std;
 int i=1;  
typedef struct bnode
{  
   char data; 
   struct bnode*lchild,*rchild;
 }bnode;
 class bitree
 { 
   public:  
    void preorder(bnode*t);
    void inorder(bnode*t); 
    void postorder(bnode*t);  
    bnode * get_root(){return root;} 
    void creat(bnode*&t);  
    void inorder_printjie(bnode*t,int i);
  private:
     bnode * root;
    };
  void bitree::preorder (bnode*t)
   { 
     if(t!=NULL)
       { 
          cout<<t->data<<" ";
         preorder(t->lchild );
          preorder(t->rchild );
        }
    }  
  void bitree::inorder (bnode*t)
{ 
 if(t!=NULL)
   {   inorder(t->lchild ); 
       cout<<t->data<<" " ;
       inorder(t->rchild );
    }
 }

void bitree::creat (bnode*&t)
{  
   char x; 
   cin>>x;
   if(x=='.')t=NULL; 
   else
      {   
		t=new bnode;  
        t->data =x;  
        creat(t->lchild );
        creat(t->rchild );
     } 
}
void bitree::inorder_printjie (bnode*t,int i) 
{  
  if(t!=NULL)
 {  
	 
   inorder_printjie(t->lchild ,i+1);  
   cout<<" ("<<t->data <<","<<i<<")";
   inorder_printjie(t->rchild ,i+1);
  } 
} 
 void main()
{  
  bitree a;
  bnode*t=a.get_root ();
  cout<<"请输入A二叉树,以.表示没有孩子数目:"<<endl;
  a.creat (t); 
 cout<<endl; 
 cout<<"以中序的方式输出A二叉树:"<<endl;
  a.inorder(t); 
 cout<<endl;  
cout<<"以中序输出二叉树各结点的值及对应的层次:"<<endl;
  a.inorder_printjie (t,i);
  getchar();
}



<span style="font-size:24px;">虽然能够求得每个节点对应的层次,但还是不能求得每一层的节点,还需要好好研究才行。</span>


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值