void inorder_traverse (struct bst *bstroot)
{
if (bstroot !=NULL)
{
inorder_traverse (bstroot->lchild);
printf ("\n%c", bstroot->data);
inorder_traverse (bstroot->rchild);
}
}
Exemplo n.º 2
0
void inorder_traverse(node *t)
    {
    if (t != tail)
        {
        inorder_traverse(t->left);
        visit(t);
        inorder_traverse(t->right);
        }
    }
Exemplo n.º 3
0
void inorder_traverse(tree_node* T)  // preorder_traverse and postorder_traverse
{
  if(T!=NULL)
    {
      inorder_traverse(T->left);
      std::cout<<T->data<<" ";
      inorder_traverse(T->right);
    }

}
void inorder_traverse(tree_node *root) 
{//从根节点开始中序遍历
	//中序遍历的访问优先级是左子树>节点>右子树
	if(root == NULL)
		return;

	inorder_traverse(root->t_lc);
	print_node(root);
	inorder_traverse(root->t_rc);
}
int 
inorder_traverse(bst_node_t *bst_node,bst_t * bst)
{
    
    if(bst_node != bst->sentinel) {
        inorder_traverse(bst_node->left,bst);
        printf("key:%d\n",bst_node->key);
        inorder_traverse(bst_node->right,bst);
    }
    return 0;
}
void main ( )
{
clrscr ( );
create_bst (&root, 'A');
create_bst (&root, 'B');
create_bst (&root, 'a');
create_bst (&root, 'b');
create_bst (&root, 'C');
create_bst (&root, 'c');
create_bst (&root, 'D');
create_bst (&root, 'd');
create_bst (&root, 'E');
clrscr ( ) ;
printf ("\nTraversing bst into Inorder :\n");
inorder_traverse (root);
printf ("\nTraversing bst into Preorder :\n");
preorder_traverse (root);
printf ("\nTraversing bst into Postorder:\n");
postorder_traverse (root);
getch ( );
}
Exemplo n.º 7
0
void main(void)
    {
    char post[256];
    init_stack();
    init_queue();
    init_tree();
    while (1)
	{
	printf("\n\nInput Postfix expression -> ");
	gets(post);
	if (*post == NULL)
	    {
	    printf("\n Program ends...");
	    exit(0);
	    }
	if (!is_legal(post))
	    {
	    printf("\nExpression is not legal.");
	    continue;
	    }

	head->right = make_parse_tree(post);

        printf("\nPreorder   traverse -> ");
        preorder_traverse(head->right);

        printf("\nInorder    traverse -> ");
        inorder_traverse(head->right);

        printf("\nPostorder  traverse -> ");
        postorder_traverse(head->right);

        printf("\nLevelorder traverse -> ");
        levelorder_traverse(head->right);
	}
    }
Exemplo n.º 8
0
int main()
{
  int ary[10] = {9,23,45,1,2,5,21,16,78,43};
  int ary2[10] = {9,23,45,31,2,5,21,16,78,43};
  int ary3[3] = {2,1,3};
  
  //int ary[3] = {2,1,3};
  tree_node* tree = NULL;
  tree_node* tree2 = NULL;
  tree_node* tree3 = NULL;
  create_tree(tree, ary, 10);
  create_tree(tree2, ary2, 10);
  create_tree(tree3, ary3, 3);
  
  inorder_traverse(tree);
  std::cout<<std::endl;
  
  mirror_recursively(tree);
  inorder_traverse(tree);
  std::cout<<std::endl;
  
  mirror_iteratively(tree);
  inorder_traverse(tree);
  std::cout<<std::endl;

  // print_paths(tree);

  // std::cout<<std::endl;
  // tree = delete_node(tree,95);

  // print_paths(tree);
  // std::cout<<std::endl;
  /*
  std::cout<<"Size of tree::"<<size(tree)<<std::endl;
  std::cout<<"max depth of tree::"<<max_depth(tree)<<std::endl;
  std::cout<<"max value of tree::"<<max_value(tree)<<std::endl;
  inorder_traverse(tree);
  std::cout<<std::endl;
  std::cout<<"sum 69 has ? ::"<<(has_path_sum(tree, 69)?"Yes":"No")<<std::endl;

  print_paths(tree);

  
  double_tree(tree);
  inorder_traverse(tree);
  std::cout<<std::endl;
  

  std::cout<<"Are two trees same::"<<(same_trees(tree, tree2)?"Yes":"No")<<std::endl;
 


  std::cout<<"Is tree a bst:::"<<(is_bst2(tree)?"Yes" : "No")<<std::endl;
  mirror(tree);
  std::cout<<"After mirror operation:: Is tree a bst::"<<(is_bst2(tree)?"Yes" : "No")<<std::endl;

  
  mirror(tree);
  print_paths(tree);
  inorder_traverse(tree);
  

  std::cout<<"5 num_keys :: trees number:: "<<count_trees(5)<<std::endl;*/


  return 0;
}