數據結構求先序序列第k個結點的值


算法思想:設置一個全局變量i記錄已經訪問過的節點,當二叉樹為空時返回特殊字符'#',當i=k,時,表示已經找到滿足條件的結點,返回

b->data;當i!=k時,遍歷其左子樹,若找到返回其值,否則在右子樹中查找。

代碼如下:

 1 int i=1;      //全局變量,用於記錄訪問結點個數
 2 ElemType PreNode(BiTree b,int k)  3 {  4     if(b==null)    //空結點,返回特殊字符
 5         return '#';  6     if(i==k)      //相等,返回當前結點值
 7         return b->data;  8     i++;   //訪問節點數加一
 9     ch=PreNode(b->lchild,k);   //訪問左子樹
10     if(ch!='#')   //存在於左子樹中,返回該值
11         return ch; 12     ch=PreNode(b->rchild,k);   //存在於右子樹中,返回元素
13         return ch; 14 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM