初步实现(不知道对不对😭

This commit is contained in:
2024-11-20 21:48:13 +08:00
parent 882c36c956
commit cca9948fea
3 changed files with 64 additions and 0 deletions
+25
View File
@@ -1 +1,26 @@
#include "BiTree.h" #include "BiTree.h"
bool BiTree::is_empty(BiTree *bt) {
if(bt==nullptr) {
return true;
}
return false;
}
bool BiTree::is_leaf(BiTree *bt) {
if(bt->left==nullptr && bt->right==nullptr) {
return true;
}
return false;
}
int BiTree::sum_leaf(BiTree *bt) {
if(is_empty(bt)) {
return 0;
}
if(is_leaf(bt)) {
return bt->data;
}
return sum_leaf(bt->left)+sum_leaf(bt->right);
}
+7
View File
@@ -4,7 +4,14 @@
class BiTree { class BiTree {
public:
int data;
BiTree *left;
BiTree *right;
static bool is_empty(BiTree *bt);
static bool is_leaf(BiTree *bt);
static int sum_leaf(BiTree *bt);
}; };
+32
View File
@@ -0,0 +1,32 @@
#include<iostream>
#include"BiTree.h"
using namespace std;
BiTree* createNode(int data) {
BiTree* newNode = new BiTree();
newNode->data = data;
newNode->left = nullptr;
newNode->right = nullptr;
return newNode;
}
void createTree(BiTree*& bt, int value) {
if (bt == nullptr) {
bt = createNode(value);
} else {
if (value < bt->data) {
createTree(bt->left, value);
} else if (value > bt->data) {
createTree(bt->right, value);
}
}
}
int main() {
BiTree* root = nullptr;
for (int i = 0; i < 10; i++) {
createTree(root, i);
}
cout << BiTree::sum_leaf(root) << endl;
return 0;
}