在 C++ 程式設計中列印樹中的奇數層節點。
給定二叉樹,該程式必須列印奇數層上的節點,而二叉樹的層級從 1 開始到 n。
由於尚未提及,因此可以實現兩種方法之一,即遞迴或迭代。
由於我們正在使用遞迴方法,所以程式將遞迴地呼叫一個函式,該函式將獲取奇數層上的節點並返回它們。

在上述二叉樹中 -
Nodes at level 1: 10 Nodes at level 2: 3 and 211 Nodes at level 3: 140, 162, 100 and 146
因此,將列印第 1 層和第 3 層的節點,這意味著輸出將為 10、140、162、100 和 146。
演算法
START Step 1 -> create a structure of a node as struct Node struct node *left, *right int data End Step 2 -> function to create a node node* newnode(int data) node->data = data node->left = node->right = NULL; return (node) step 3 -> create function for finding the odd nodes void odd(Node *root, bool ifodd = true) IF root = NULL Return End if (ifodd) print root->data End odd(root->left, !ifodd) odd(root->right, !ifodd) step 4 -> In main() Create tree using Node* root = newnode(45) root->left = newnode(23) Call odd(root) Stop
示例
#include <bits/stdc++.h>
using namespace std;
struct Node{
int data;
Node* left, *right;
};
void odd(Node *root, bool ifodd = true){
if (root == NULL)
return;
if (ifodd)
cout << root->data << " " ;
odd(root->left, !ifodd);
odd(root->right, !ifodd);
}
// function to create a new node
Node* newnode(int data){
Node* node = new Node;
node->data = data;
node->left = node->right = NULL;
return (node);
}
int main(){
Node* root = newnode(45);
root->left = newnode(23);
root->right = newnode(13);
root->left->left = newnode(24);
root->left->right = newnode(85);
cout<<"\nodd nodes are ";
odd(root);
return 0;
}輸出
如果我們執行上述程式,它將生成以下輸出
odd nodes are 45 24 85
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP