博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树的遍历
阅读量:7090 次
发布时间:2019-06-28

本文共 1796 字,大约阅读时间需要 5 分钟。

二叉树的遍历
 
#include
"
iostream
"
#include
"
stdlib.h
"
using
namespace
std;
struct
tree
{
int
data;
struct
tree
*
left;
struct
tree
*
right;
};
typedef
struct
tree treenode;
typedef treenode
*
btree;
/*
------插入二叉树的结点-------
*/
btree insertnode(btree root,
int
value)
{
btree newnode;
btree current;
btree back;
/*
---创建新结点内存---
*/
newnode
=
(btree)malloc(
sizeof
(treenode));
newnode
->
data
=
value;
newnode
->
right
=
NULL;
newnode
->
left
=
NULL;
if
(root
==
NULL)
{
return
newnode;
}
else
{
current
=
root;
while
(current
!=
NULL)
{
back
=
current;
if
(current
->
data
>
value)
current
=
current
->
left;
else
current
=
current
->
right;
}
if
(back
->
data
>
value)
back
->
left
=
newnode;
else
back
->
right
=
newnode;
}
return
root;
}
/*
------创建二叉树--------
*/
btree createbtree(
int
*
data,
int
len)
{
btree root
=
NULL;
int
i;
for
(i
=
0
;i
<
len;i
++
)
root
=
insertnode(root,data[i]);
return
root;
}
/*
-----中序遍历------
*/
void
inorder( btree ptr)
{
if
(ptr
!=
NULL)
{
inorder(ptr
->
left);
printf(
"
[%2d]\n
"
,ptr
->
data);
inorder(ptr
->
right);
}
}
/*
-----------------------
*/
/*
--------前序遍历-------
*/
void
preorder(btree ptr)
{
if
(ptr
!=
NULL)
{
printf(
"
[%2d]\n
"
,ptr
->
data);
inorder(ptr
->
left);
inorder(ptr
->
right);
}
}
/*
-----------------------------
*/
/*
------后序遍历--------
*/
void
postorder(btree ptr)
{
if
(ptr
!=
NULL)
{
inorder(ptr
->
left);
inorder(ptr
->
right);
printf(
"
[%2d]\n
"
,ptr
->
data);
}
}
/*
---------------------------
*/
/*
---------主程序-----
*/
int
main()
{
btree root
=
NULL;
int
data[
9
]
=
{
5
,
6
,
4
,
8
,
2
,
3
,
7
,
1
,
9
};
root
=
createbtree(data,
9
);
printf(
"
树的结点内容:\n
"
);
inorder(root);
cout
<<
endl;
preorder(root);
cout
<<
endl;
postorder(root);
cout
<<
endl;
}

 

转载于:https://www.cnblogs.com/FCWORLD/archive/2010/11/22/1884749.html

你可能感兴趣的文章
Weblogic 12c 使用 WLST 新建域
查看>>
快速掌握dockerfile
查看>>
Android动态设置主题(使用RxBus模式)
查看>>
CMake 简介和 CMake 模板
查看>>
SnapKit自动布局(三)
查看>>
SegmentFault D-Day 2016「天津站: 前端场」活动回顾
查看>>
我的Docker笔记(补全ing)
查看>>
Climbing Stairs leetcode
查看>>
The road you are trudging is bound for loneliness.(前行的道路注定孤独)
查看>>
Write Lean Programs
查看>>
django 1.8 官方文档翻译:9-2 "本地特色"附加功能
查看>>
大数据相关技术有哪些?
查看>>
和 Pipelining 说再见,cURL 放弃使用管道技术
查看>>
Egg 2.16.2 发布,企业级 Node.js 框架
查看>>
计算几何 - 最近点对 分治法
查看>>
大众继续深耕SUV市场:5款新车型先于上海车展登场,ID. ROOMZZ成点睛之笔 ...
查看>>
使用CODERUN部署阿里云KUBERNETES
查看>>
没有所谓好与不好,只是能否适用和用的好
查看>>
Linux基础命令---gunzip
查看>>
Linux基础命令---文本编辑
查看>>