• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
donneyming
博客园    首页    新随笔    联系   管理    订阅  订阅
排序二叉树~

呵呵 原来打印语句位置的不同就是不同的访问方式~

 

// btree.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdlib.h"
int a[10]={1,2,4,5,3,6,7,8,9,10};

struct tree
{
 tree *left;
 tree *right;
 int value;
};

void btree(tree *node,tree *tr)
{
 tree *list = tr;
 if (node->value >list->value)
 {
  if (list->right !=NULL)
  {
    btree(node,list->right);
  }
  else
  {
   list->right = node;
  } 
 }
 else
 {
  if (list->left !=NULL)
  {
    btree(node,list->left);
  }
  else
  {
   list->left = node;
  }
 }

}

void ptree(tree *tr)
{
 tree *list = tr;

 if (list->left)
 {
  ptree(list->left);
 }
 printf("%d\n",list->value);//中序输出

 if (list->right)
 {
  ptree(list->right);
 }

 return;
}
int main(int argc, char* argv[])
{
 tree *binetree = (tree*)malloc(sizeof(tree));

 binetree->value =a[0];
 binetree->left =NULL;
 binetree->right =NULL;

 tree *temp = binetree;
 
 for (int i=1;i<10;i++)
 {
  tree *node =(tree*)malloc(sizeof(tree));
  node->value =a[i];
  node->left =NULL;
  node->right =NULL;

  btree(node,temp);
 }

 ptree(binetree);
return 0;
}

 

posted on 2009-03-10 02:24  donneyming  阅读(254)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3