设为首页 加入收藏

TOP

二叉树这种数据结构的实现(八)
2013-05-14 09:26:18 来源: 作者: 【 】 浏览:1715
Tags:这种 数据结构 实现

 

  下面是具体的关于二叉树各接口代码的简单测试应用,如下:

  [cpp]

  /* main */

  int main(int argc, char **argv)

  {

  int ret;

  int *int_ptr;

  BiTree tree1, tree2, tree_merge;

  List list;

  ListElmt *member;

  BiTreeNode *nd;

  /* tree1 as follows :

  1

  / \

  2 5

  / \ / \

  3 4 6 7

  */

  create_tree(&tree1, NULL); //input "123#4#56#7#"

  printf("\nstep1:tree1 build success\n");

  /* tree2 as follows:

  0

  / \

  8 9

  / \ /

  6 7 3

  */

  int_ptr = NULL;

  create_tree(&tree2, NULL); //input "086#7#93###"

  printf("step2:tree2 build success\n");

  int_ptr = (int *)malloc(sizeof(int));

  if( int_ptr == NULL )

  return -1;

  *int_ptr = 11;

  /* after merged as follow( by tree1 and tree2 ) :

  11

  / \

  1 0

  / \ / \

  2 5 8 9

  / \ / \ / \ / \

  3 4 6 9 6 7 3 NULL

  */

  ret = bitree_merge(&tree_merge, &tree1, &tree2, int_ptr);

  printf("step3: after merged: there are %d number nodes in the tree_merge.\n", bitree_size(&tree_merge));

  /* after remove the right tree:

  11

  / \

  1 NULL

  / \

  2 5

  / \ / \

  3 4 6 7

  */

  printf("\nstep4: remove the right tree in tree_merge.\n");

  bitree_rem_right(&tree_merge, bitree_root(&tree_merge) );

  printf("after remove the right tree, there are %d number nodes in the tree_merge.\n", bitree_size(&tree_merge));

  printf("\nstep5: preorder traverse the tree and insert the nodes into the list\n");

  list_init(&list, destroy);

  ret = preorder( bitree_root(&tree_merge), &list );

  printf("according to the sequence of the preorder traversing the tree:\n");

  for(member = list_head(&list); member != NULL; member = list_next(member) )

  {

  printf("%d ", *(int *)list_data(member));

  }

  printf("\n");

  printf("\nsetp6: inorder traverse the tree and insert the nodes into the list\n");

  list_init(&list, destroy);

  ret = inorder( bitree_root(&tree_merge), &list );

  printf("according to the sequence of the inorder traversing the tree:\n");

  for(member = list_head(&list); member != NULL; member = list_next(member) )

  {

  printf("%d ", *(int *)list_data(member));

  }

  printf("\n");

  printf("\nsetp7: postorder traverse the tree and insert the nodes into the list\n");

  list_init(&list, destroy);

  ret = postorder( bitree_root(&tree_merge), &list );

  printf("according to the sequence of the postorder traversing the tree:\n");

  for(member = list_head(&list); member != NULL; member = list_next(member) )

  {

  printf("%d ", *(int *)list_data(member));

  }

  printf("\n");

  printf("\nstep8: delete all the nodes in the tree.\n");

  bitree_rem_left( &tree_merge, NULL );

  printf("there are %d number nodes.\n", bitree_size(&tree_merge) );

  bitree_destroy(&tree_merge);

  return 0;

  }

  具体的含义不再说明,注释以及printf已经非常详细。代码的编译过程如下:

  程序执行过程如下:

 

            

首页 上一页 5 6 7 8 下一页 尾页 8/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇正整数求输出的最低点A 下一篇c++中常见问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: