用C++列印二叉搜尋樹的所有偶數節點
在這個問題中,我們得到一個二叉搜尋樹。我們的任務是列印二叉搜尋樹的所有偶數節點。
二叉搜尋樹是一個遵循以下條件的二叉樹:
左子樹總是包含比父節點值小的節點。
右子樹總是包含比父節點值大的節點。
所有節點都必須遵循上述兩條規則。
二叉搜尋樹示例:

讓我們舉個例子來理解這個問題:

輸出 - 2 4 6 8
為了解決這個問題,我們將遍歷二叉搜尋樹的所有節點並檢查當前節點的值。如果它是偶數,則列印該節點,否則忽略它。
示例
下面的程式碼將說明我們邏輯的工作原理:
#include <iostream>
using namespace std;
struct Node {
int key;
struct Node *left, *right;
};
Node* newNode(int item){
Node* temp = new Node;
temp->key = item;
temp->left = temp->right = NULL;
return temp;
}
Node* insertNode(Node* node, int key){
if (node == NULL)
return newNode(key);
if (key < node->key)
node->left = insertNode(node->left, key);
else
node->right = insertNode(node->right, key);
return node;
}
void printEvenNode(Node* root){
if (root != NULL) {
printEvenNode(root->left);
if (root->key % 2 == 0)
cout<<root->key<<"\t";
printEvenNode(root->right);
}
}
int main(){
Node* root = NULL;
root = insertNode(root, 54);
root = insertNode(root, 43);
root = insertNode(root, 12);
root = insertNode(root, 30);
root = insertNode(root, 89);
root = insertNode(root, 67);
root = insertNode(root, 80);
cout<<"All even nodes of the tree are :\n";
printEvenNode(root);
return 0;
}輸出
樹的所有偶數節點是:
12 30 54 80
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP