二叉树很烦,为什么输入顺序一定要 5, 6, 4, 8, 2, 3, 7, 1, 9 ?
二叉树很烦,为什么输入顺序一定要 5, 6, 4, 8, 2, 3, 7, 1, 9 ?
那位高手知道输入一个顺序 1 -9 , 自动生成 二叉查找树(5, 6, 4, 8, 2, 3, 7, 1, 9)算法?
求一个数组,根据数组索引顺序,生成 二叉查找树 数组.
- #include <stdio.h>
- void createbtree(int *btree, int *data, int len) {
- int level;
- int i;
- btree[1] = data[1];
- for (i = 2; i <= len; i++) {
- level = 1;
- while (btree[level] != 0) {
- if (data[i] > btree[level])
- level = level * 2 + 1;
- else
- level = level * 2;
- }
- btree[level] = data[i];
- }
- }
- int 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]);
- return 0;
- }
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你那样的算法根本就不存在。