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

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

	printf("%d ", ptr->num);

	return;
}
Esempio n. 6
0
void postOrderPrint(HuffNode *root, FILE* fp)
{
  // Base case: empty subtree

  if (root == NULL) 
    return;

    // Recursive case: post-order traversal
    // Visit left

  fprintf(fp,"Left\n");
  postOrderPrint(root->left, fp);
  fprintf(fp,"Back\n");
    // Visit right
  fprintf(fp,"Right\n");
  postOrderPrint(root->right,fp);
  fprintf(fp,"Back\n");
  // Visit node itself (only if leaf)
  if (root->left == NULL && root->right == NULL)
    fprintf(fp,"Leaf: %c\n", root->value);
}
Esempio n. 7
0
int main() {

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

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

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

    return 0;
}
Esempio n. 8
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);
	
}
Esempio n. 9
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;
}
Esempio n. 10
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::printpost(node* node){
	std::cout << "post order: " ;
	return postOrderPrint(root);
	
}