Computer >> Máy Tính >  >> Lập trình >> C ++

In các nút ở mức lẻ của cây trong Lập trình C ++.

Với cây nhị phân, chương trình phải in các nút ở mức lẻ của cây và các mức của cây nhị phân bắt đầu từ 1 đến n.

Như không có gì được đề cập, một trong hai cách tiếp cận có thể được thực hiện, tức là đệ quy hoặc lặp lại.

Vì chúng ta đang sử dụng cách tiếp cận đệ quy, chương trình sẽ thực hiện một cuộc gọi đệ quy tới một hàm sẽ tìm nạp các nút ở các mức lẻ và trả về chúng.

In các nút ở mức lẻ của cây trong Lập trình C ++.

Trong cây nhị phân ở trên -

Nodes at level 1: 10
Nodes at level 2: 3 and 211
Nodes at level 3: 140, 162, 100 and 146

Vì vậy, các nút ở mức 1 và mức 3 sẽ được in ra có nghĩa là đầu ra sẽ là 10, 140, 162, 100 và 146.

Thuật toán

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

Ví dụ

#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;
}

Đầu ra

nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra kết quả sau

odd nodes are 45 24 85