C++实现二叉树
#include <iostream>
using namespace std ;
class Tree
{
public :
int number ;
class Tree *left ;
class Tree *right ;
void insert_tree(class Tree **header , int number) ;
void print_tree(class Tree *header , int lever) ;
void front(class Tree *header) ;
void middle(class Tree *header) ;
void back(class Tree *header) ;
};
int main()
{
Tree tree ;
Tree *header = NULL ;
int i ;
int buffer[10] ;
for(i = 0 ; i < 10 ; i++)
{
buffer[i] = rand()%100 ;
}
for(i = 0 ; i < 10 ; i++)
{
tree.insert_tree(&header , buffer[i]) ;
}
tree.print_tree(header,0);
cout << endl<< "前序遍历: " <<endl ;
tree.front(header) ;
cout << endl << "中序遍历: "<< endl ;
tree.middle(header) ;
cout << endl << "后序遍历: " << endl ;
tree.back(header);
getchar();
}
void Tree::insert_tree(class Tree **header , int number)
{
Tree *New = NULL ;
New = new Tree[10] ;
if(NULL == New)
return ;
New->number = number ;
New->left = NULL ;
New->right = NULL ;
Tree **link = header ;
Tree *cur ;
while(cur = *link)
{
if(New->number < cur->number)
link = &(cur->left) ;
else
link = &(cur->right) ;
}
*link = New ;
}
void Tree::print_tree(Tree *header , int lever)
{
if(header == NULL)
return ;
print_tree(header->right , lever+1);
int i ;
for(i = 0 ; i < lever ; i++)
cout<<'\t';
cout << header->number << endl;
print_tree(header->left , lever+1);
}
void Tree::front(class Tree *header)
{
if(header == NULL)
return ;
cout <<' '<<header->number ;
front(header->left);
front(header->right);
}
void Tree::middle(class Tree *header)
{
if(header == NULL)
return ;
middle(header->left);
cout<<' '<< header->number ;
middle(header->right);
}
void Tree::back(class Tree *header)
{
if(header == NULL)
return ;
back(header->left);
back(header->right);
cout <<' '<<header->number ;
}
C++实现二叉树的更多相关文章
- [数据结构]——二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)及其衍生算法
二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现 ...
- 二叉树的递归实现(java)
这里演示的二叉树为3层. 递归实现,先构造出一个root节点,先判断左子节点是否为空,为空则构造左子节点,否则进入下一步判断右子节点是否为空,为空则构造右子节点. 利用层数控制迭代次数. 依次递归第二 ...
- c 二叉树的使用
简单的通过一个寻找嫌疑人的小程序 来演示二叉树的使用 #include <stdio.h> #include <stdlib.h> #include <string.h& ...
- Java 二叉树遍历右视图-LeetCode199
题目如下: 题目给出的例子不太好,容易让人误解成不断顺着右节点访问就好了,但是题目意思并不是这样. 换成通俗的意思:按层遍历二叉树,输出每层的最右端结点. 这就明白时一道二叉树层序遍历的问题,用一个队 ...
- 数据结构:二叉树 基于list实现(python版)
基于python的list实现二叉树 #!/usr/bin/env python # -*- coding:utf-8 -*- class BinTreeValueError(ValueError): ...
- [LeetCode] Path Sum III 二叉树的路径和之三
You are given a binary tree in which each node contains an integer value. Find the number of paths t ...
- [LeetCode] Find Leaves of Binary Tree 找二叉树的叶节点
Given a binary tree, find all leaves and then remove those leaves. Then repeat the previous steps un ...
- [LeetCode] Verify Preorder Serialization of a Binary Tree 验证二叉树的先序序列化
One way to serialize a binary tree is to use pre-oder traversal. When we encounter a non-null node, ...
- [LeetCode] Binary Tree Vertical Order Traversal 二叉树的竖直遍历
Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bott ...
- [LeetCode] Binary Tree Longest Consecutive Sequence 二叉树最长连续序列
Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ...
随机推荐
- [ExtJS5学习笔记]第二十七节 CMD打包错误 Error C2009: YUI Parse Error (identifier is a reserved word => debugger;)
本文地址:http://blog.csdn.net/sushengmiyan/article/details/41242993 本文作者:sushengmiyan ------------------ ...
- FFmpeg源代码结构图 - 解码
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- NDK在windows下的开发环境搭建及开发过程
在Android应用的开发工程中,不管是游戏还是普通应用,都时常会用到.so即动态链接库,关于.so是什么玩意儿,有什么好处,这个大家可以在网上查一下,本人不做过多解释..so本是linux下的文件类 ...
- Tomcat集群如何同步会话
Tocmat集群中最重要的交换信息就是会话消息,对某个tomcat实例某会话做的更改要同步到集群其他tomcat实例的该会话对象,这样才能保证集群所有实例的会话数据一致.在tribes组件的基础上完成 ...
- Linux之mailx的使用
mailx是UNIX系统上用来处理邮件的工具,使用它可以发送,读取邮件.下面看看如何使用它来发送邮件. 发送格式 mailx -s subject user@xxx.com < message_ ...
- Android的DatePicker和TimePicker-android学习之旅(三十八)
DatePicker和TimePicker简介 DatePicker和TimePicker是从FrameLayout继承而来,他们都是比较简单的组件.时间改变时间分别添加OnDateChangeLis ...
- 漫谈android系统(4)bring up panel
点击打开链接 版权声明: 作者:alex wang 版权:本文版权归作者和CSDN共有 转载:欢迎转载,为了保存作者的创作热情,请按要求[转载],谢谢 要求:未经作者同意,必须保留此段声明:必须在文章 ...
- 03 ProgressBar 进度条
> style="?android:attr/progressBarStyleSmall" 样式 android:progress= ...
- 就这么 来ADO.net类操作数据库
使用ADO.net操作数据库其实也是很简单,而且使用频率蛮高的一种方式.话不多说,上代码才更容易理解. 首先,先要引入数据库操作相关的命名空间,这样才能使用下面的代码 //数据库连接引用的命名空间 u ...
- 1022. Digital Library (30) -map -字符串处理
题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...