【数据结构】二叉查找树
发布时间:2021-05-22 13:39:08  所属栏目:安全  来源:网络整理 
            导读:副标题#e# 1、概念: 二叉查找树,也称排序二叉树,是指一棵空树或者具备下列性质的二叉树(每个节点都不能有多于两个儿子的树): 1. 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 2. 若任意节点的右子树不空,则右子树上所有节点
                
                
                
            | 树的遍历有三种:先序、中序和后序。每次遍历子树时,也要相应的按序遍历该子树。1. 先序遍历:[首先访问根节点]? 先访问根节点,再遍历左子树,最后遍历右子树 2. 中序遍历:[中间访问根节点]? 先遍历左子树,再访问根节点,最后遍历右子树 3. 后序遍历:[最后访问根节点]? 先遍历左子树,再遍历右子树,最后访问根节点 如下所示: /* * 6 先序遍历: 6 2 1 4 3 8 10 * / * 2 8 中序遍历: 1 2 3 4 6 8 10 * / * 1 4 10 后序遍历: 1 3 4 2 10 8 6 * / * 3 */从上得知,中序遍历二叉查找树时正好是排序好的数据。 /*先序遍历*/
void printPreorder(BinaryTree *pBinaryTree)
{
	if (NULL != pBinaryTree)
	{
		printf("%dn",pBinaryTree->value);
		printPreorder(pBinaryTree->left_child);
		printPreorder(pBinaryTree->right_child);
	}
}
/*中序遍历*/
void printInorder(BinaryTree *pBinaryTree)
{
	if (NULL != pBinaryTree)
	{
		printInorder(pBinaryTree->left_child);
		printf("%dn",pBinaryTree->value);
		printInorder(pBinaryTree->right_child);
	}
}
/*后序遍历*/
void printPostorder(BinaryTree *pBinaryTree)
{
	if (NULL != pBinaryTree)
	{
		printPostorder(pBinaryTree->left_child);
		printPostorder(pBinaryTree->right_child);
		printf("%dn",pBinaryTree->value);
	}
}参考资料:《数据结构与算法分析:C语言描述》(维斯) (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
站长推荐
            
        
