二叉排序树数组实现
来源:互联网 发布:hp扫描软件 编辑:程序博客网 时间:2024/06/10 01:51
定义left[], right[]作为标记,记录但前节点是哪个点的左(右)孩子
比如我们要对 4,3, 8,6,1。排序排好序后的二叉树如图:
把这个过程在纸上用笔走一遍,你就会一目了然。
#include <stdio.h>#include <string.h>#define N 1000int l[N], r[N], key[N], flag, root;void insert(int index, int x){ if(x <= key[index]) { if(l[index] == -1) l[index] = flag; else insert(l[index], x); } else { if(r[index] == -1) r[index] = flag; else insert(r[index], x); }}void InOrder(int index){ if(l[index] != -1) InOrder(l[index]); printf("%d ", key[index]); if(r[index] != -1) InOrder(r[index]);}int main(){ int i, x, n; memset(l, -1, sizeof(l)); memset(r, -1, sizeof(r)); scanf("%d", &n); root = -1; flag = 0; for(i = 0; i < n; i++) { scanf("%d", &x); if(root == -1) key[++root] = x; else { key[++flag] = x; insert(root, x); } } InOrder(root); return 0;}
0 0
- 二叉排序树数组实现
- 二叉排序树实现
- 实现二叉排序树
- 实现二叉排序树
- 有序数组转二叉排序树
- 升序数组转成二叉排序树
- pascal语言实现二叉排序树
- 二叉排序树的实现
- 二叉排序树 C语言实现
- 二叉排序树的简单实现
- C实现二叉排序树
- 二叉排序树的实现
- 二叉排序树的实现
- 二叉排序树的实现
- 二叉排序树的实现
- 二叉排序树的简单实现
- 二叉排序树C实现
- 二叉排序树_Java简单实现
- 多线程中让main方法最先开始,最后结束的简单例子
- viewpager加载fragment出错Caused by: java.lang.IllegalStateException: The specified child already has a p
- 我的第一篇学习笔记
- css将书写模式变成纵向
- RTP协议全解(H264码流和PS流)
- 二叉排序树数组实现
- Android 性能优化 二 TraceView工具的使用
- 利用QtQuick实现UI的一个Demo
- IOS项目中的 Prefix.pch 和 Info.plist
- android应用启动短暂黑屏处理
- 【2015.9.6】JZOJ4211送你一颗圣诞树
- 上传图片到指定位置并显示
- iOS知识小集 第四期(2015.08.15)
- 浅谈java Web中的request和response,以及转发和重定向的区别。