//先序遍历二叉树(根、左、右)(递归算法)
void preOrderPrint(BiTree T, int root){
	if(root){//根节点不为空
		printf("%c ", T[root].data);
		preOrderPrint(T, T[root].llink);
		preOrderPrint(T, T[root].rlink);
	}
}
Exemple #2
0
void preOrderPrint(struct TreeNode *root) {
    if (root) {
        printf("%d ", root->val);
        preOrderPrint(root->left);
        preOrderPrint(root->right);
    }
}
void binaryTree::preOrderPrint(node* node)
{
	if(node == NULL) return;
    std::cout << node->value << " ";
  	preOrderPrint(node->left);
  	preOrderPrint(node->right);
  	 
}
Exemple #4
0
/*
   function to print the values of the nodes of a tree using
   a pre-order traversal
*/
void preOrderPrint(TreeNodePtr rootPtr)
{
    if (rootPtr != NULL)
    {
        printf("%d ", rootPtr->data);
        preOrderPrint(rootPtr->leftPtr);
        preOrderPrint(rootPtr->rightPtr);
    }
}
Exemple #5
0
void preOrderPrint(NODE* ptr){
	printf("%d ", ptr->num);

	if(ptr->left != NULL)
		preOrderPrint(ptr->left);

	if(ptr->right != NULL)
		preOrderPrint(ptr->right);

	return;
}
Exemple #6
0
int main() {

    int pre[] = { 20, 8, 4, 12, 10, 14, 22 };
    int in[] = { 4, 8, 10, 12, 14, 20, 22 };

    struct TreeNode *r
        = buildTree(pre, sizeof(pre)/sizeof(pre[0]), in, sizeof(in)/sizeof(in[0]));

    preOrderPrint(r); printf("\n");

    return 0;
}
void main(){
	BiTree tree;
	int root = 1;//根节点的位置
	printf("请按先序次序输入二叉树各节点以#号结束,空树用点号代替:\n");
	int pos = 1;//控制加入静态数组的位置
	createBiTree(tree, root, pos);	

	
	printf("先序遍历打印二叉树(递归算法):\n");
	preOrderPrint(tree, root);
	printf("\n");
		

	printf("先序遍历打印二叉树(非递归算法):\n");
	preOrderPrint2(tree, root);
	printf("\n");
	

	printf("中序遍历打印二叉树(递归算法):\n");
	inOrderPrint(tree, root);
	printf("\n");

	printf("中序遍历打印二叉树(非递归算法):\n");
	inOrderPrint2(tree, root);
	printf("\n");
	
	
	printf("后序遍历打印二叉树(递归算法):\n");
	postOrderPrint(tree, root);
	printf("\n");

	printf("后序遍历打印二叉树(非递归算法):\n");
	postOrderPrint2(tree, root);
	printf("\n");
	
	
	printf("按层次遍历打印二叉树(非递归算法):\n");
	hierarchicalTraversePrint(tree, root);
	printf("\n");
	

	
	int depth = getBiTreeDepth(tree, root);
	printf("该二叉树的深度为:%d\n", depth);
	

	int size = getBiTreeSize(tree, root);
	printf("该二叉树的结点数为:%d\n", size);
	
	int leafNodesNum = getBiTreeLeafNodesNum(tree, root);
	printf("该二叉树的叶子结点数为:%d\n", leafNodesNum);
	
}
Exemple #8
0
int main(){
	NODE* ptr;
	TREE* tree;
	int i=0;

	tree = create_tree();
	for(i=0; i<13; i++){
		insertNode(tree, i);
	}
	printf("PreOrder: ");
	preOrderPrint(tree->root);
	printf("\nInOrder: ");
	inOrderPrint(tree->root);
	printf("\npostOrder: ");
	postOrderPrint(tree->root);
	printf("\nPrint list:");
	linklistprint(tree->root);
	printf("\ntree count: %d\n", tree->count);

	return 0;
}
Exemple #9
0
/*
   Function to illustrate printing the nodes of a tree
   using pre-order, in-order, and post-order traversals
*/
void traversalExamples()
{
    int i, value;
    TreeNodePtr rootPtr = NULL;

    /* create example tree by inserting 10 nodes with random values
       into random positions of tree */
    srand(time(NULL)); /* seed random number generator */
    for (i=0; i < 10; i++)
    {
        value = rand() % 100;
        insertTreeNodeRandomly(&rootPtr, value);
    }

    printf("RANDOM TREE:\n");
    printTree(rootPtr, 0);
    printf("\nPre-order traversal:\n");
    preOrderPrint(rootPtr);
    printf("\nIn-order traversal:\n");
    inOrderPrint(rootPtr);
    printf("\nPost-order traversal:\n");
    postOrderPrint(rootPtr);
    printf("\n");
}
void binaryTree::printpre(node* node){
	std::cout << "pre order: ";
	return preOrderPrint(root);
	
}