二叉樹遍歷

今天來介紹下二叉樹的4種遍歷方式,如果對二叉樹不熟悉的話,請先去本系列二叉樹的介紹中先學習。

 

遍歷:單鏈表的遍歷是指從第一個結點開始(下標爲0的結點),按照某種次序依次訪問每一個結點。
           二叉樹的遍歷是指從根結點開始,按照某種次序依次訪問二叉樹中的所有結點。

 

OK,下面就分別介紹前序遍歷中序遍歷後序遍歷層次遍歷

 

代碼:

[cpp] view plain copy


  1. void pre_order_traversal(BTreeNode* root)  
  2. {  
  3.     if(NULL != root)  
  4.     {  
  5.         printf(”%c, ”, ((Node*)root)->v);  
  6.           
  7.         pre_order_traversal(root->left);  
  8.         pre_order_traversal(root->right);  
  9.     }  
  10. }  


 

 

代碼:

[cpp] view plain copy


  1. void middle_order_traversal(BTreeNode* root)  
  2. {  
  3.     if(NULL != root)  
  4.     {  
  5.         middle_order_traversal(root->left);  
  6.           
  7.         printf(”%c, ”, ((Node*)root)->v);  
  8.           
  9.         middle_order_traversal(root->right);  
  10.     }  
  11. }  


 

 

代碼:

[cpp] view plain copy


  1. void post_order_traversal(BTreeNode* root)  
  2. {  
  3.     if(NULL != root)  
  4.     {  
  5.         post_order_traversal(root->left);  
  6.         post_order_traversal(root->right);  
  7.           
  8.         printf(”%c, ”, ((Node*)root)->v);  
  9.     }  
  10. }  


 

代碼:

[cpp] view plain copy


  1. void level_order_traversal(BTreeNode* root)  
  2. {  
  3.     if(NULL != root)  
  4.     {  
  5.         LinkQueue* queue = LinkQueue_Create();  
  6.           
  7.         if(NULL != queue)  
  8.         {  
  9.             LinkQueue_Append(queue, root);  
  10.               
  11.             while(0 < LinkQueue_Length(queue))  
  12.             {  
  13.                 Node* node = (Node*)LinkQueue_Retrieve(queue);  
  14.                   
  15.                 printf(”%c, ”, node->v);  
  16.                   
  17.                 LinkQueue_Append(queue, node->header.left);  
  18.                 LinkQueue_Append(queue, node->header.right);  
  19.             }  
  20.         }  
  21.           
  22.         LinkQueue_Destroy(queue);  
  23.     }  
  24. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章