C++实现二叉树
2016-05-11 16:00
295 查看
#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++实现二叉树
- C++实现二叉树
- PAT (Basic Level) Practise (中文)1041. 考试座位号(15)
- next_permutation函数 in c++
- 深入理解C++中的vector类的用法及特性
- c++分离式编译模型
- C++遍历文件夹获取文件列表
- Effective C++ 学习笔记(一)
- f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\occcont.cpp(Line:950)错误
- 第7周 C语言程序设计(新2版) 例题 1.6数组(无法编译)
- C++中的宏定义
- c语言中各个类型的sizeof长度
- 在C/C++函数中使用可变参数
- 【C语言】截取字符串实现
- 详解C++编程中的vector类容器用法
- C语言——数组与指针之动态分配一维和多维数组
- PAT (Basic Level) Practise (中文)1040. 有几个PAT(25)
- c语言基础巩固 2:完全平方
- C++与Java的区别
- 汇编学习第五课之函数调用约定:cdecl,stdcall,fastcall