Heim > Backend-Entwicklung > C++ > Verwenden Sie die Iterationsmethode in der C-Sprache, um die letzten k Knoten der verknüpften Liste in umgekehrter Reihenfolge auszudrucken.

Verwenden Sie die Iterationsmethode in der C-Sprache, um die letzten k Knoten der verknüpften Liste in umgekehrter Reihenfolge auszudrucken.

WBOY
Freigeben: 2023-09-17 21:21:02
nach vorne
924 Leute haben es durchsucht

Verwenden Sie die Iterationsmethode in der C-Sprache, um die letzten k Knoten der verknüpften Liste in umgekehrter Reihenfolge auszudrucken.

Wir müssen die k Knoten der verknüpften Liste in umgekehrter Reihenfolge drucken. Wir müssen einen iterativen Ansatz anwenden, um dieses Problem zu lösen.

Iterative Methoden werden normalerweise mithilfe einer Schleife ausgeführt, bis der Bedingungswert 1 oder wahr ist.

Angenommen, die Liste enthält die Knoten 29, 34, 43, 56 und 88 und der Wert von k ist 2. Die Ausgabe sind die Ersatzknoten bis k, zum Beispiel 56 und 88.

Verwenden Sie die Iterationsmethode in der C-Sprache, um die letzten k Knoten der verknüpften Liste in umgekehrter Reihenfolge auszudrucken.

Beispiel

Linked List: 29->34->43->56->88
Input: 2
Output: 56 88
Nach dem Login kopieren

Da wir die letzten k Elemente aus der Liste entfernen müssen, ist es am besten, eine Stapeldatenstruktur zu verwenden, in die die Elemente hineingeschoben werden. Dadurch werden die Liste und das Startelement erstellt Der Stapel ist das letzte Element der Liste und wird dann bis zum k-ten Mal vom Stapel entfernt, wodurch wir den letzten Knoten der verknüpften Liste erhalten.

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

Algorithmus

START
   Step 1 -> create node variable of type structure
      Declare int data
      Declare pointer of type node using *next
   Step 2 -> create struct node* intoList(int data)
      Create newnode using malloc
      Set newnode->data = data
      newnode->next = NULL
      return newnode
   step 3 -> Declare function void rev(struct node* head,int count, int k)
      create struct node* temp1 = head
      Loop While(temp1 != NULL)
         count++
         temp1 = temp1->next
      end
      Declare int array[count], temp2 = count,i
      Set temp1 = head
      Loop While(temp1 != NULL)
         Set array[--temp2] = temp1->data
         Set temp1 = temp1->next
      End
      Loop For i = 0 and i < k and i++
         Print array[i]
      End
   Step 4 -> In Main()
      Create list using struct node* head = intoList(9)
      Set k=3 and count=0
      Call rev(head,count,k)
STOP
Nach dem Login kopieren

Beispiel

#include<stdio.h>
#include<stdlib.h>
// Structure of a node
struct node {
   int data;
   struct node *next;
};
//functon for inserting a new node
struct node* intoList(int data) {
   struct node* newnode = (struct node*)malloc(sizeof(struct node));
   newnode->data = data;
   newnode->next = NULL;
   return newnode;
}
// Function to reversely printing the elements of a node
void rev(struct node* head,int count, int k) {
   struct node* temp1 = head;
   while(temp1 != NULL) {
      count++;
      temp1 = temp1->next;
   }
   int array[count], temp2 = count,i;
   temp1 = head;
   while(temp1 != NULL) {
      array[--temp2] = temp1->data;
      temp1 = temp1->next;
   }
   for(i = 0; i < k; i++)
   printf("%d ",array[i]);
}
int main() {
   printf("</p><p>reverse of a list is : ");
   struct node* head = intoList(9); //inserting elements into a list
   head->next = intoList(76);
   head->next->next = intoList(13);
   head->next->next->next = intoList(24);
   head->next->next->next->next = intoList(55);
   head->next->next->next->next->next = intoList(109);
   int k = 3, count = 0;
   rev(head, count, k); //calling function to print reversely
   return 0;
}
Nach dem Login kopieren

Ausgabe

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

reverse of a list is : 109 55 24
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVerwenden Sie die Iterationsmethode in der C-Sprache, um die letzten k Knoten der verknüpften Liste in umgekehrter Reihenfolge auszudrucken.. 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