Heim > Backend-Entwicklung > C++ > Drucken Sie in der C-Sprache die Blattknoten einer bestimmten Ebene

Drucken Sie in der C-Sprache die Blattknoten einer bestimmten Ebene

王林
Freigeben: 2023-08-25 14:17:12
nach vorne
1100 Leute haben es durchsucht

Die Aufgabe besteht darin, Blattknoten eines Binärbaums auf einer bestimmten Ebene k zu drucken, die vom Benutzer angegeben wird.

Blattknoten sind die Endknoten, deren linker und rechter Zeiger NULL ist, was bedeutet, dass dieser bestimmte Knoten kein übergeordneter Knoten ist.

Die chinesische Übersetzung von Beispiel

lautet:

Beispiel

Input : 11 22 33 66 44 88 77
Output : 88 77
Nach dem Login kopieren

Drucken Sie in der C-Sprache die Blattknoten einer bestimmten Ebene

Hier stellt k die Ebene des Baums dar, die gedruckt werden muss. Die hier verwendete Methode besteht darin, jeden Knoten zu durchlaufen und zu prüfen, ob der Knoten Zeiger hat. Selbst wenn es nur einen Zeiger gibt, der links oder rechts oder beides anzeigt, kann dieser bestimmte Knoten kein Blattknoten sein.

Verwenden Sie die hierarchische Traversierungstechnik, um jeden Knoten rekursiv zu durchlaufen, beginnend links, dann beim Wurzelknoten und schließlich rechts.

Der folgende Code zeigt die C-Sprachimplementierung des angegebenen Algorithmus.

Die chinesische Übersetzung des Algorithmus

START
   Step 1 -> create node variable of type structure
      Declare int data
      Declare pointer of type node using *left, *right
   Step 2 -> create function for inserting node with parameter as new_data
      Declare temp variable of node using malloc
      Set temp->data = new_data
      Set temp->left = temp->right = NULL
      return temp
   Step 3 -> declare Function void leaf(struct node* root, int level)
      IF root = NULL
         Exit
      End
      IF level = 1
         IF root->left == NULL && root->right == NULL
            Print root->data
         End
      End
      ELSE IF level>1
         Call leaf(root->left, level - 1)
         Call leaf(root->right, level - 1)
      End
   Step 4-> In main()
      Set level = 4
      Call New passing value user want to insert as struct node* root = New(1)
      Call leaf(root,level)
STOP
Nach dem Login kopieren

Beispiel

lautet:

Beispiel

include<stdio.h>
#include<stdlib.h>
//structre of a node defined
struct node {
   struct node* left;
   struct node* right;
   int data;
};
//structure to create a new node
struct node* New(int data) {
   struct node* temp = (struct node*)malloc(sizeof(struct node));
   temp->data = data;
   temp->left = NULL;
   temp->right = NULL;
   return temp;
}
//function to found leaf node
void leaf(struct node* root, int level) {
   if (root == NULL)
      return;
   if (level == 1) {
      if (root->left == NULL && root->right == NULL)
      printf("%d</p><p>",root->data);
   } else if (level > 1) {
      leaf(root->left, level - 1);
      leaf(root->right, level - 1);
   }
}
int main() {
   printf("leaf nodes are: ");
   struct node* root = New(11);
   root->left = New(22);
   root->right = New(33);
   root->left->left = New(66);
   root->right->right = New(44);
   root->left->left->left = New(88);
   root->left->left->right = New(77);
   int level = 4;
   leaf(root, level);
   return 0;
}
Nach dem Login kopieren

Ausgabe

Wenn wir das obige Programm ausführen, wird die folgende Ausgabe generiert.

leaf nodes are: 88 77
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDrucken Sie in der C-Sprache die Blattknoten einer bestimmten Ebene. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage