青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

jake1036

面試100 -11二叉樹鏡像

       求二叉樹的鏡像

1 該問題實質上是將二叉樹的左右兩子樹,進行交換。
    求查找樹的映像
   即是將原來標準的二叉樹,翻轉180度 。
   實現方法:
  方法(1)
   首先前序遍歷,標準二茶樹,然后將每一個節點,按照逆查找樹,插入到鏡像中
  方法(2)
   前序遍歷,交換左右子樹,遞歸遍歷
  方法(3) 
   使用非遞歸的方法,遍歷左右子樹

2 代碼如下:
  
#include <iostream>
#include 
<stack>

  
using namespace std ;
  
  template 
<class T>
  
struct BinaryTree{
     T data ;
     BinaryTree 
* lc ;
     BinaryTree 
* rc ;             
  }
 ;
 
 BinaryTree 
<int> * root ;
 BinaryTree 
<int> * image ;
 
  
 
const int N = 7 ;
 

 
 
  template 
<class T>
  
void  switchs( BinaryTree <T> * p ,stack <BinaryTree<T>*> st)
    
{
       
while(!st.empty()) //當st不為空的時候 
       {
          BinaryTree 
<T> * top = st.top() ;
          st.pop() ;
          
while(top) //前序遍歷,右節點依次插入堆棧,左節點依次進行操作
          {          //此處也可以,左節點和右節點都入棧 
            BinaryTree <T> * temp = top->lc ; //交換        
            top->lc = top->rc ;         
            top
->rc = temp ;        
                     
            
if(top->rc)  //右節點依次壓棧 
              st.push(top->rc) ;          
                     
                    
            top 
= top->lc ;
          }

                            
       }
          
    }

 
  template 
<class T>
  
void buildTree(T x) //正規的二叉查找樹 
  {
    
if(root == 0)
    
{
        root 
= (BinaryTree <T> *) malloc(sizeof(BinaryTree <T>)) ;
        root
->lc = 0 ;
        root
->rc = 0 ;
        root
->data = x ;
        
return ;
    }

    
    BinaryTree 
<T> * p = root ;
    BinaryTree 
<T> * q = root ;
    
    
while(p)
    
{
       q 
= p ;      
       
if(p->data <= x)
           p 
= p->rc ;
       
else
           p 
= p->lc ;              
    }

    
    p 
= (BinaryTree <T> *) malloc(sizeof(BinaryTree <T>)) ;
    p
->data = x ;
    p
->lc = 0 ;
    p
->rc = 0 ;
    
    
if(q->data > x)
      q
->lc = p ;
    
else
      q
->rc = p ;     
  }
  
  
  
  
  template 
<class T>
  
void buildImageTree(T x) //正規的二叉查找樹 
  {
    
if(image == 0)
    
{
        image 
= (BinaryTree <T> *) malloc(sizeof(BinaryTree <T>)) ;
        image
->lc = 0 ;
        image
->rc = 0 ;
        image
->data = x ;
        
return ;
    }

    
    BinaryTree 
<T> * p = image ;
    BinaryTree 
<T> * q = image ;
    
    
while(p)
    
{
       q 
= p ;      
       
if(p->data <= x)
           p 
= p->lc ;
       
else
           p 
= p->rc ;              
    }

    p 
= (BinaryTree <T> *) malloc(sizeof(BinaryTree <T>)) ;
    p
->data = x ;
    p
->lc = 0 ;
    p
->rc = 0 ;
    
    
if(q->data <= x)
      q
->lc = p ;
    
else
      q
->rc = p ;     
  }
  
  
  template 
<class T>
  
void postOrder(BinaryTree <T> * p)
  
{
      
if(p)
      
{
        postOrder(p
->lc) ;   
        cout
<<p->data<<" " ;             
        postOrder(p
->rc) ;
      }
 
       
  }

  
   template 
<class T>
  
void preOrder(BinaryTree <T> * p )
  
{
      
if(p)
      
{
        buildImageTree(p
->data) ;   
        preOrder(p
->lc) ;                        
        preOrder(p
->rc) ;
      }
 
       
  }

  
   template 
<class T> //可以看做交換左右兩個節點 
    void switcLR(BinaryTree <T> * p)
    
{
       
if(p)
      
{
            
        BinaryTree 
<T> * temp = p->lc ;  
        p
->lc = p->rc ;
        p
->rc = temp ;     
        switcLR(p
->lc) ;                        
        switcLR(p
->rc) ;
      }
                   
    }

  
  
   
int main()
   
{   
        
int i ;
       
int a[] = {8 ,6 ,10 , 5 ,79 , 11}  ;
    
       
for(i = 0 ; i < N ; i++)
        buildTree(a[i]) ;
       
       postOrder(root) ;
       cout
<<endl ;
       
       stack 
<BinaryTree <int> *>  st ;
       st.push(root) ; 
//首先把根傳進去 
       switchs(root , st) ;
       postOrder(root) ;
       
       system(
"pause");
     
return 0 ;    
   }

posted on 2011-05-17 09:02 kahn 閱讀(841) 評論(0)  編輯 收藏 引用 所屬分類: 算法相關

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲视频狠狠| 亚洲精品乱码久久久久| 欧美黄网免费在线观看| 一区二区三区四区五区视频| 在线视频中文亚洲| 国产精品扒开腿爽爽爽视频| 羞羞答答国产精品www一本| 午夜精品成人在线| 亚洲国产高清一区| 99国产一区| 国产精品视频福利| 欧美国产精品专区| 欧美日韩国产一区二区| 久久成年人视频| 美女福利精品视频| 午夜欧美大片免费观看| 每日更新成人在线视频| 久久久久九九视频| 午夜精品亚洲一区二区三区嫩草| 久久动漫亚洲| 亚洲欧美不卡| 欧美精品日韩一区| 亚洲自拍电影| 亚洲精品一区在线观看香蕉| 亚洲午夜电影网| 亚洲日本va在线观看| 亚洲精品乱码久久久久久日本蜜臀 | 一二三区精品| 中国亚洲黄色| 亚洲一区二区在线免费观看| 国产欧美va欧美va香蕉在| 国产精品a久久久久久| 国产欧美日韩免费看aⅴ视频| 嫩模写真一区二区三区三州| 亚洲人成网站精品片在线观看| 国产亚洲欧美日韩一区二区| 亚洲久色影视| 日韩视频在线观看国产| 久久精品国产综合| 欧美一区免费视频| 欧美日韩成人一区二区| 欧美 日韩 国产精品免费观看| 国产精品一卡二| 国产情人节一区| 亚洲一区二区在| 一区二区高清| 免费观看日韩av| 久久综合色8888| 狠狠色噜噜狠狠狠狠色吗综合| 在线一区二区三区四区五区| 一本久道久久综合中文字幕| 欧美激情第3页| 欧美激情一区二区三区蜜桃视频| 亚洲丁香婷深爱综合| 欧美在线视频在线播放完整版免费观看 | 久久久久高清| 香蕉av777xxx色综合一区| 欧美国产精品一区| 美女国产一区| 欧美一区二区视频在线观看| 夜夜嗨av一区二区三区| 国产精品视屏| 欧美日韩一区二区视频在线 | 亚洲精品在线一区二区| 久久天天躁夜夜躁狠狠躁2022 | 欧美国产日本韩| 亚洲三级性片| 亚洲国产另类久久精品| 正在播放日韩| 欧美成人一区二区在线| 一区二区欧美在线| 在线性视频日韩欧美| 欧美精品尤物在线| 一二三区精品福利视频| 亚洲一区中文| 国产欧美一区二区三区国产幕精品| 一区二区免费看| 亚洲与欧洲av电影| 国产视频久久网| 久久国产精品72免费观看| 欧美成人第一页| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美二区在线播放| 99天天综合性| 久久精品国产亚洲一区二区三区| 极品日韩久久| 欧美—级高清免费播放| 一区二区三欧美| 欧美在线三区| 亚洲三级影片| 欧美色欧美亚洲另类二区| 亚洲主播在线观看| 另类尿喷潮videofree| 亚洲国产成人午夜在线一区| 亚洲欧美中文另类| 欧美一级视频| 美女图片一区二区| 亚洲激情视频在线播放| 亚洲天天影视| 欧美一区=区| 欧美日韩另类视频| 怡红院精品视频| 欧美一区激情| 亚洲卡通欧美制服中文| 老司机成人网| 国产欧美日韩一区| 一区二区高清视频在线观看| 鲁大师影院一区二区三区| 免费成人黄色| 午夜国产精品视频| 欧美日本久久| 这里只有精品丝袜| 亚洲免费视频在线观看| 亚洲一区二区3| 国产精品久久一区二区三区| 亚洲免费一级电影| 亚洲国产精品电影| 欧美午夜不卡在线观看免费| 欧美在线视频导航| 亚洲精品久久久久| 久久综合九九| 欧美亚洲一区二区三区| 在线亚洲一区| 在线播放中文一区| 国产午夜精品全部视频在线播放| 蜜臀91精品一区二区三区| 久久成人精品无人区| 国产精品亚洲成人| 欧美一区二区三区另类| 国产视频一区在线| 久久久久久久久久久久久9999| 国产精品99久久99久久久二8| 欧美日韩天堂| 亚洲美女av电影| 麻豆freexxxx性91精品| 亚洲日本aⅴ片在线观看香蕉| 性视频1819p久久| 中日韩高清电影网| 亚洲日本中文字幕区| 激情综合网激情| 黄色日韩精品| 久久久久久国产精品一区| 香蕉视频成人在线观看| 一本一本久久a久久精品牛牛影视| 欧美电影电视剧在线观看| 久久久www免费人成黑人精品 | 欧美一区二区三区免费视频| 国产精品99久久久久久久vr| 亚洲精品午夜| 亚洲区一区二区三区| 亚洲国产精品一区制服丝袜 | 在线观看日韩av| 影音先锋中文字幕一区二区| 在线日韩av永久免费观看| 激情五月婷婷综合| 亚洲高清视频一区| 亚洲动漫精品| 亚洲精品乱码久久久久久久久 | 性色一区二区| 久久久一本精品99久久精品66| 久久狠狠一本精品综合网| 久久久欧美一区二区| 久久久久久网站| 看片网站欧美日韩| 欧美成人免费在线观看| 欧美精品日韩三级| 国产精品入口日韩视频大尺度| 国产精品草莓在线免费观看| 国产亚洲毛片在线| 在线播放视频一区| 亚洲男人的天堂在线| 欧美一区成人| 欧美一区二区视频在线观看2020| 亚洲欧美在线一区二区| 欧美一区二区观看视频| 久久婷婷蜜乳一本欲蜜臀| 欧美日韩精品中文字幕| 国产精品久久久久天堂| 国产精品男gay被猛男狂揉视频| 国产精品视频男人的天堂| 国产午夜精品一区二区三区视频| 一区在线播放| 99riav国产精品| 午夜一区二区三区不卡视频| 久久一区二区三区超碰国产精品| 欧美激情国产日韩| 一区二区免费看| 久久久精品性| 欧美日韩免费观看一区=区三区| 国产女主播一区二区三区| 亚洲国产精品高清久久久| 亚洲欧美日韩一区二区三区在线| 久久在线视频| 中文精品视频一区二区在线观看| 欧美一区二区精品在线| 欧美日本视频在线| 在线免费不卡视频| 欧美在线www| 99re6热在线精品视频播放速度 | 国色天香一区二区|