数据结构求先序序列第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