⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7_3_1.c

📁 数据结构C语言版台湾知城数位科技有限公司出版2002
💻 C
字号:
/* ======================================== */
/*    程式实例: 7_3_1.c                     */
/*    二叉树的数组表示法                    */
/* ======================================== */

/* ---------------------------------------- */
/*  建立二叉树                              */
/* ---------------------------------------- */
void createbtree(int *btree,int *data,int len)
{
   int level;                       /* 树的阶层           */
   int i;

   btree[1] = data[1];              /* 建立根节点         */
   for ( i = 2; i <= len; i++ )     /* 用回路建立其它节点 */
   {
      level = 1;                    /* 从阶层1开始        */
      while ( btree[level] != 0 )   /* 是否有子树         */
      {
         if ( data[i] > btree[level] )   /* 是左或右子树  */
            level = level * 2 + 1;  /* 右子树             */
         else
            level = level * 2;      /* 左子树             */
      }
      btree[level] = data[i];       /* 存入节点数据       */
   }
}

/* ---------------------------------------- */
/*  主程式: 建立数组的二叉树.               */
/* ---------------------------------------- */
void main()
{
   int btree[16];                   /* 二叉树数组         */
   /* 二叉树节点数据 */
   int data[10] = { 0, 5, 6, 4, 8, 2, 3, 7, 1, 9 };
   int i;

   for ( i = 1; i < 16; i++ )       /* 清除二叉树数组     */
      btree[i] = 0;
   createbtree(btree,data,9);      /* 建立二叉树         */
   for ( i = 1; i < 16; i++ )       /* 列出二叉树内容     */
      printf("%2d: [%d] \n",i,btree[i]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -