二叉树-非平衡
2016-05-26 12:27
267 查看
二叉树的插入和中序遍历的实现
#include "stdafx.h"
#include<stdlib.h>
struct BinanryTree
{
int value;
BinanryTree* p_left;
BinanryTree* p_right;
};
BinanryTree* insertTree(BinanryTree* p_tree, int value) {
if (p_tree == NULL) {
p_tree =(BinanryTree*) malloc(sizeof(BinanryTree));
p_tree->value = value;
p_tree->p_left = NULL;
p_tree->p_right = NULL;
return p_tree;
}
if (p_tree->value > value) {
p_tree->p_right=insertTree(p_tree->p_right, value);
}
else
{
p_tree-> p_left = insertTree(p_tree->p_left, value);
}
return p_tree;
}
/*对树中数据的操作*/
void operate(int value) {
printf("%d , ", value);
}
void showTree(BinanryTree* p_tree) {
if (p_tree == NULL) {
return;
}
/*调换下面三个顺序,实现前中后序遍历*/
showTree(p_tree->p_right);
operate(p_tree->value);
showTree(p_tree->p_left);
}
int main()
{
int x[8] = {54, 23, 12, 42, 90, 3, 132, 89};
BinanryTree* p_tree = NULL;
for (int i = 0; i < 8; i++) {
p_tree = insertTree(p_tree, x[i]);
}
showTree(p_tree);
return 0;
}
#include "stdafx.h"
#include<stdlib.h>
struct BinanryTree
{
int value;
BinanryTree* p_left;
BinanryTree* p_right;
};
BinanryTree* insertTree(BinanryTree* p_tree, int value) {
if (p_tree == NULL) {
p_tree =(BinanryTree*) malloc(sizeof(BinanryTree));
p_tree->value = value;
p_tree->p_left = NULL;
p_tree->p_right = NULL;
return p_tree;
}
if (p_tree->value > value) {
p_tree->p_right=insertTree(p_tree->p_right, value);
}
else
{
p_tree-> p_left = insertTree(p_tree->p_left, value);
}
return p_tree;
}
/*对树中数据的操作*/
void operate(int value) {
printf("%d , ", value);
}
void showTree(BinanryTree* p_tree) {
if (p_tree == NULL) {
return;
}
/*调换下面三个顺序,实现前中后序遍历*/
showTree(p_tree->p_right);
operate(p_tree->value);
showTree(p_tree->p_left);
}
int main()
{
int x[8] = {54, 23, 12, 42, 90, 3, 132, 89};
BinanryTree* p_tree = NULL;
for (int i = 0; i < 8; i++) {
p_tree = insertTree(p_tree, x[i]);
}
showTree(p_tree);
return 0;
}
相关文章推荐
- 用C语言打印一个菱形
- 将两个值进行交换的方法
- 二维数组的输出问题
- 一个函数返回参数二进制中 1 的个数
- 【WPF开发】无人机HUD (Head Up Display)开源控件
- 常见的Linux发行版
- MVC缓存
- [置顶] 【Linux】 find指令(文件查找)
- [置顶] 【数据结构】 二叉树
- [置顶] 【C语言】 字符串操作函数及内存拷贝函数归总
- [置顶] 【数据结构】 栈
- [置顶] 【数据结构】 一个数组实现两个栈【面试】
- [置顶] 【数据结构】 两个栈实现一个队列【面试】
- [置顶] 【数据结构】 出栈序列的合法性【面试】
- [置顶] 【C++】 斐波那契数列
- 霾转晴之心情大好(2015.12.2)
- 了解Context
- [置顶] 【C++】 浅析智能指针
- RSA基于Java Web的前台公钥加密后台私钥解密
- [置顶] 【C++】 浅析异常