Heim > Backend-Entwicklung > C++ > Drucken Sie die linke Ansicht des Binärbaums in C-Sprache

Drucken Sie die linke Ansicht des Binärbaums in C-Sprache

WBOY
Freigeben: 2023-09-03 13:25:05
nach vorne
1448 Leute haben es durchsucht

Die Aufgabe besteht darin, den linken Knoten des angegebenen Binärbaums zu drucken. Zuerst fügt der Benutzer Daten ein, wodurch ein Binärbaum erstellt wird, und druckt dann die linke Ansicht des resultierenden Baums aus.

Jeder Knoten kann maximal 2 untergeordnete Knoten haben, daher muss dieses Programm nur den linken Zeiger iterieren, der dem Knoten zugeordnet ist.

Wenn der linke Zeiger nicht null ist, bedeutet dies, dass ihm einige Daten oder ein Zeiger zugeordnet sind, andernfalls handelt es sich um den linken Zeiger Untergeordnetes Element, das gedruckt und als Ausgabe angezeigt werden soll.

Beispiel
Input : 1 0 3 2 4
Output : 1 0 2
Nach dem Login kopieren

Drucken Sie die linke Ansicht des Binärbaums in C-Sprache

Hier stellt der orangefarbene Knoten die linke Ansicht des Binärbaums dar.

In der angegebenen Grafik ist der Knoten mit den Daten 1 der Wurzelknoten, also wird er gedruckt, anstatt zum linken untergeordneten Knoten zu gehen, wird 0 gedruckt, dann geht er zu 3 und druckt seinen linken untergeordneten Knoten. Das ist 2.

Wir können eine rekursive Methode verwenden, um die Ebenen von Knoten zu speichern und sie wiederholt zu übertragen.

Der folgende Code zeigt die C-Implementierung des angegebenen Algorithmus. it Die folgende Ausgabe wird generiert.

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 left_view(struct node* root, int level, int* highest_level)
      IF root = NULL
         Exit
      End
      IF *highest_level < level
         Print root->data
         Set *highest_level = level
      End
      Recursively call left_view(root->left, level + 1, highest_level)
      Recursively call left_view(root->right, level + 1, highest_level)
   Step 4 -> Declare Function void left(struct node* root)
      Set int highest_level = 0
      Call left_view(root, 1, &highest_level)
   Step 5-> In main()
      Call New passing value user want to insert as struct node* root = New(1)
      Call left(root)
STOP
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDrucken Sie die linke Ansicht des Binärbaums in C-Sprache. 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