博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 二叉树的实现
阅读量:5874 次
发布时间:2019-06-19

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

1 #include
2 struct tree 3 { 4 int data; 5 tree *left,*right; 6 }; 7 class Btree 8 { 9 static int n; 10 static int m; 11 public: 12 tree *root; 13 Btree() 14 { 15 root=NULL; 16 } 17 void create_Btree(int); 18 void Preorder(tree *); //先序遍历 19 void inorder(tree *); //中序遍历 20 void Postorder(tree *); //后序遍历 21 void display1() {Preorder(root); cout<
data=x; 34 newnode->right=newnode->left=NULL; 35 if(root==NULL) 36 root=newnode; 37 else 38 { 39 tree *back; 40 tree *current=root; 41 while(current!=NULL) 42 { 43 back=current; 44 if(current->data>x) 45 current=current->left; 46 else 47 current=current->right; 48 } 49 if(back->data>x) 50 back->left=newnode; 51 else 52 back->right=newnode; 53 } 54 } 55 int Btree::count(tree *p) 56 { 57 if(p==NULL) 58 return 0; 59 else 60 return count(p->left)+count(p->right)+1; //这是运用了函数嵌套即递归的方法。 61 } 62 void Btree::Preorder(tree *temp) //这是先序遍历二叉树,采用了递归的方法。 63 { 64 if(temp!=NULL) 65 { 66 cout<
data<<" "; 67 Preorder(temp->left); 68 Preorder(temp->right); 69 } 70 } 71 void Btree::inorder(tree *temp) //这是中序遍历二叉树,采用了递归的方法。 72 { 73 if(temp!=NULL) 74 { 75 inorder(temp->left); 76 cout<
data<<" "; 77 inorder(temp->right); 78 } 79 } 80 void Btree::Postorder(tree *temp) //这是后序遍历二叉树,采用了递归的方法。 81 { 82 if(temp!=NULL) 83 { 84 Postorder(temp->left); 85 Postorder(temp->right); 86 cout<
data<<" "; 87 } 88 } 89 int Btree::findleaf(tree *temp) 90 { 91 if(temp==NULL)return 0; 92 else 93 { 94 if(temp->left==NULL&&temp->right==NULL)return n+=1; 95 else 96 { 97 findleaf(temp->left); 98 findleaf(temp->right); 99 }100 return n;101 }102 }103 int Btree::findnode(tree *temp)104 {105 if(temp==NULL)return 0;106 else107 {108 if(temp->left!=NULL&&temp->right!=NULL)109 {110 findnode(temp->left);111 findnode(temp->right);112 }113 if(temp->left!=NULL&&temp->right==NULL)114 {115 m+=1;116 findnode(temp->left);117 }118 if(temp->left==NULL&&temp->right!=NULL)119 {120 m+=1;121 findnode(temp->right);122 }123 }124 return m;125 }126 127 128 void main()129 {130 Btree A;131 int array[]={
7,4,2,3,15,35,6,45,55,20,1,14,56,57,58};132 int k;133 k=sizeof(array)/sizeof(array[0]);134 cout<<"建立排序二叉树顺序: "<

 

转载地址:http://azkix.baihongyu.com/

你可能感兴趣的文章
汽车常识全面介绍 - 悬挂系统
查看>>
电子政务方向:We7.Cloud政府云门户
查看>>
虚拟机Centos7连接Internet
查看>>
ansible 基本操作(初试)
查看>>
更改tomcat的根目录路径
查看>>
51nod 1292 字符串中的最大值V2(后缀自动机)
查看>>
加快ALTER TABLE 操作速度
查看>>
学习笔记之软考数据库系统工程师教程(第一版)
查看>>
基本网络概念
查看>>
将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1 RC 1
查看>>
js提交图片转换为base64
查看>>
学习CodeIgniter框架之旅(二)继承自定义类
查看>>
Y2161 Hibernate第三次考试 2016年8月18日 试卷分析
查看>>
Angular CLI 使用教程指南参考
查看>>
PHP 程序员的技术成长规划
查看>>
用于守护进程的出错处理函数
查看>>
AppCan可以视为Rexsee的存活版
查看>>
【转】SQL SERVER 2005 数据库状态为“可疑”的解决方法
查看>>
Revit API 创建带箭头的标注
查看>>
jetty启动报错Unsupported major.minor version 51.0
查看>>