📄 7_3_1.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 + -