C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++のスタックを使用してリンクリストを反転します


リンクリストはメモリを動的に割り当て、スタックを実装するために使用されます。このプログラムは、C++プログラミングでのリンクリストの反転を示しています。ここで、志願者は期待される結果を得るために次のアプローチを採用することができます。アルゴリズムは次のとおりです。

アルゴリズム

START
   Step 1: create an empty stack of type node pointer
   Step 2: Traverse the list and push all of its nodes onto a stack
   Step 4: Traverse the list from the head node again
   Step 5: pop a value from the stack top
   step 6: connect them in reverse order
   Step 7: PRINT
STOP

上記のアルゴリズムに基づいて、次のc++コードがstdlibで作成されます。 ライブラリファイルエッセイの主要な役割は、次のようにスタック関連の主要なメソッドを利用します。

#include <iostream>
#include <stdlib.h>
using namespace std;
struct linked_list {
   int data;
   struct linked_list *next;
};
int stack[30], top = -1;
struct linked_list* head = NULL;
int printfromstack(int stack[]) {
   cout<<"\nStack after Reversal::";
   while(top>=0) {
      cout<<stack[top--]<<" ";
   }
}
int push(struct linked_list** head, int n) {
   struct linked_list* newnode = (struct linked_list*)malloc(sizeof(struct linked_list));
   newnode->data = n;
   newnode->next = (*head);
   (*head) = newnode;
}
int intostack(struct linked_list* head) {
   cout<<"Linked list::";
   while(head!=NULL) {
      printf("%d ", head->data);
      stack[++top] = head->data;
      head = head->next;
   }
}
int main(int argc, char const *argv[]) {
   push(&head, 7);
   push(&head, 20);
   push(&head, 3);
   push(&head, 40);
   intostack(head);
   printfromstack(stack);
   return 0;
}

上記のコードに見られるように、すべての文字列操作コードは retrieveChar()にバンドルされています。 後で、この呼び出しがプログラムmain()の実行に渡されるメソッド。

出力

Linked list:: 40 3 20 7
Stack after Reversal::7 20 3 40

  1. C++STLのリスト逆関数

    この記事では、C++でのlist::reverse()関数の動作、構文、および例について説明します。 STLのリストとは リストは、任意の場所で一定時間の挿入と削除を順番に実行できるデータ構造です。リストは、二重にリンクされたリストとして実装されます。リストを使用すると、連続しないメモリ割り当てが可能になります。リストは、配列、ベクトル、および両端キューよりも、コンテナー内の任意の位置で要素の挿入抽出と移動を実行します。リストでは、要素への直接アクセスは遅く、リストはforward_listに似ていますが、フォワードリストオブジェクトは単一のリンクリストであり、フォワードでのみ繰り返すことが

  2. C ++で再帰を使用して、リンクリストの代替ノードを出力します

    リンクリストは、要素を連続していないメモリ位置に格納する線形データ構造です。すべての要素には、リンクリストの次の要素へのポインタが含まれています。 例 − この問題では、リンクリストが与えられ、このリンクリストの要素を印刷する必要がありますが、代替要素のみが印刷されます。問題をよりよく理解するために例を見てみましょう。 Input : 2 -> 4 -> 1 -> 67 -> 48 -> 90 Output : 2 -> 1 -> 48 説明 −リンクリストに代替要素を出力します。したがって、1番目、3番目、5番目の要素が印刷されます。