C语言实现二叉树的搜索及相关算法示例

  

本文实例讲述了C语言实现二叉树的搜索及相关算法。分享给大家供大家参考,具体如下:

  

二叉树(二叉查找树)是这样一类的树,父节点的左边孩子的关键都小于它,右边孩子的关键都大于它。

  

二叉树在查找和存储中通常能保持logn的查找,插入,删除,以及前驱,后继,最大值,最小值复杂度,并且不占用额外的空间。

  

这里演示二叉树的搜索及相关算法:

        # include   # include   使用名称空间性病;   类tree_node {   公众:   int的关键;   tree_node *左;   tree_node *正确;   int标签;   tree_node () {   关键=0;   左边=右边=零;   标签=0;   }   ~ tree_node () {}   };   无效访问(int值){   printf (" % d \ n”,值);   }//插入   tree_node * insert_tree (tree_node *根,tree_node *节点){   如果节点(!){   返回根;   }   如果(根){   根=节点;   返回根;   }   tree_node * p=根;   而(p) {   如果(节点→键& lt;p→键){   如果(p→左){   p=p→左;   }   其他{   p→左=节点;   打破;   }   }   其他{   如果(p→右){   p=p→正确;   }   其他{   p→=节点;   打破;   }   }   }   返回根;   }//查询关键所在节点   tree_node * search_tree (tree_node *根,int键){   tree_node * p=根;   而(p) {   如果(关键& lt;p→键){   p=p→左;   }   else if(关键在p→键){   p=p→正确;   }   其他{   返回p;   }   }   返回NULL;   }//创建树   tree_node * create_tree (tree_node * t, int n) {   tree_node *根=t;   for (int i=1;iC语言实现二叉树的搜索及相关算法示例