Files
data-structures-and-algorithms/homework4/BiTree.cpp
T
2024-11-20 22:08:57 +08:00

45 lines
923 B
C++

#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);
}
BiTree* BiTree::createNode(int data) {
BiTree* newNode = new BiTree();
newNode->data = data;
newNode->left = nullptr;
newNode->right = nullptr;
return newNode;
}
void BiTree::insertNode(BiTree*& bt, int value) {
if (bt == nullptr) {
bt = createNode(value);
} else {
if (value < bt->data) {
insertNode(bt->left, value);
} else if (value > bt->data) {
insertNode(bt->right, value);
}
}
}