二叉树很烦,为什么输入顺序一定要 5, 6, 4, 8, 2, 3, 7, 1, 9 ?

发布于 2022-10-15 08:43:00 字数 2050 浏览 28 评论 0

二叉树很烦,为什么输入顺序一定要 5, 6, 4, 8, 2, 3, 7, 1, 9 ?
那位高手知道输入一个顺序 1 -9 , 自动生成 二叉查找树(5, 6, 4, 8, 2, 3, 7, 1, 9)算法?
求一个数组,根据数组索引顺序,生成 二叉查找树 数组.

  1. #include <stdio.h>
  2. void createbtree(int *btree, int *data, int len) {
  3.         int level;
  4.         int i;
  5.         btree[1] = data[1];
  6.         for (i = 2; i <= len; i++) {
  7.                 level = 1;
  8.                 while (btree[level] != 0) {
  9.                         if (data[i] > btree[level])
  10.                                 level = level * 2 + 1;
  11.                         else
  12.                                 level = level * 2;
  13.                 }
  14.                 btree[level] = data[i];
  15.         }
  16. }
  17. int main() {
  18.         int btree[16];
  19.         int data[10] = { 0, 5, 6, 4, 8, 2, 3, 7, 1, 9 };
  20.         int i;
  21.         for (i = 1; i < 16; i++)
  22.                 btree[i] = 0;
  23.         createbtree(btree, data, 9);
  24.         for (i = 1; i < 16; i++)
  25.                 printf("%2d: [%d] \n", i, btree[i]);
  26.         return 0;
  27. }

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无所的.畏惧 2022-10-22 08:43:00

你那样的算法根本就不存在。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文