保平哥的第三次上机作业
最后一个相似算法写的比较简陋,见谅
实现功能:
二叉树的基本操作(存放整形数组)
1.创建一颗二叉树
60 20 -1 -1 100 -1
2.中序遍历二叉树
3.左右交换算法
4.计算一下二叉树中非终端的个数
5.计算结点的值小于x结点的个数
遍历算法
(函数原型:int countx(bitnode *天,int x)
6.二叉树的树高,树叶数量
7.二叉树的相似性
找bug不易,点个关注,收藏再走呗疯狂暗示()手动狗头
//注意:代码模板中的代码将会被复制到任何新创建的文件中,编辑代码模板中的代码,让他帮你自动增加固定代码吧
#include <iostream>
typedef int elem;//元素类型
using namespace std;
typedef struct BitNode {
elem data;
BitNode* lchild;
BitNode* rchild;
}BitNode;
class bitt {
private:
BitNode* bt;
void create(BitNode*& t);
int countleaf(BitNode* t);
int counthigh(BitNode* t);
BitNode* search(BitNode* t, elem x);
int countone(BitNode* t);
void print(BitNode* t);
void swape(BitNode* t);
//计算结点值小于x的个数(私
int countx(BitNode* t, elem x);
public:
void recreate();
int countleafbit();
int counthighbit();
BitNode* searchbit(elem);//查找元素
int countonebit();
//中序遍历二叉树
void printbit();
void swapebit();
//计算结点值小于x的个数
int countxbit(elem t);
BitNode* kt = this->bt;
bool alikee(bitt bs);
};
void bitt::create(BitNode*& t)