From f2e5df0f0b4b5dbfbf2d037be5e40be64e3af05f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=A1=E5=9D=82=E6=98=B4?= Date: Wed, 20 Nov 2024 22:08:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- homework4/BiTree.cpp | 19 +++++++++++++++++++ homework4/BiTree.h | 2 ++ homework4/test1.cpp | 20 +------------------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/homework4/BiTree.cpp b/homework4/BiTree.cpp index d99090d..e306936 100644 --- a/homework4/BiTree.cpp +++ b/homework4/BiTree.cpp @@ -24,3 +24,22 @@ int BiTree::sum_leaf(BiTree *bt) { 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); + } + } +} \ No newline at end of file diff --git a/homework4/BiTree.h b/homework4/BiTree.h index eb7c2b7..5dd446b 100644 --- a/homework4/BiTree.h +++ b/homework4/BiTree.h @@ -12,6 +12,8 @@ public: static bool is_empty(BiTree *bt); static bool is_leaf(BiTree *bt); static int sum_leaf(BiTree *bt); + static BiTree* createNode(int data); + static void insertNode(BiTree*& bt, int value); }; diff --git a/homework4/test1.cpp b/homework4/test1.cpp index 9436abf..2f5f3c4 100644 --- a/homework4/test1.cpp +++ b/homework4/test1.cpp @@ -2,30 +2,12 @@ #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 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); - } - } -} BiTree* createTreeFromArray(const int* values, int size) { BiTree* root = nullptr; for (int i = 0; i < size; ++i) { - insertNode(root, values[i]); + BiTree::insertNode(root, values[i]); } return root; }