C ++を使用して、指定された単一リンクリストからテールノードを削除します
リンクリストは、ノードを含む線形データ構造であり、各ノードには2つのフィールドがあります。 1つは挿入される値またはデータであり、もう1つのフィールドは次のノードのアドレスを格納します。
ここでのタスクは、リンクリストの最後からノードを削除することです。最後のノードはテールノードと呼ばれます。リンクリストにノードがない場合は、NULLを返します。
例-
入力1 −1→2→3→4→5
出力 −1→2→3→4→
説明 −与えられた単一リンクリストでは、最後からのノードは「5」です。最後のノードを削除すると、出力は1→2→3→4→になります。
入力2 −5→8→3
出力 −5→8→
説明 −与えられた単一リンクリストでは、最後からのノードは「3」です。ノードを最後から削除すると、出力は5→8→。
になります。この問題を解決するためのアプローチ
この特定の問題を解決する簡単なアプローチは、現在のポインタがリンクリストの最後のノードを指すときに、後で現在のノードの値を格納する前のノードを作成することです。
現在のノードが最後のノードを指している場合は、リンクリストのすべてのノードを繰り返し処理します。そして最後に、リンクリストから戻ります。
-
ノードをリストに挿入して、リンクリストを初期化します。
-
関数insertAtFirst(node *&head、int data)は、リンクリスト内のすべてのノードを挿入します。
-
関数deleteAtTail(node * head)は、現在ヘッドを指しているポインターを取ります。
-
前のノードポインタを作成し、NULLとして初期化します。
-
現在ポインタの先頭を指している一時的なノードポインタを作成します。
-
リンクリストの最後に到達しなくなるまで、一時ポインタをトラバースします。
-
一時ポインタの値を前のノードポインタに格納します。
-
一時ポインタを削除します。
-
リンクリストを返します。
例
#include<iostream> using namespace std; class node{ public: int data; node*next; node(int d){ data=d; node*next= NULL; } }; void insertAtFirst(node*&head, int data){ node*n= new node(data); n->next= head; head=n; } void printNode(node*head){ while(head!=NULL){ cout<<head->data<<"->"; head=head->next; } cout<<endl; } void deleteatTail(node*head){ node*prev= NULL; node*temp= head; while(temp->next!=NULL){ prev= temp; temp=temp->next; } delete temp; prev->next= NULL; return; } int main(){ node*head= NULL; insertAtFirst(head,5); insertAtFirst(head,4); insertAtFirst(head,3); insertAtFirst(head,2); insertAtFirst(head,1); deleteatTail(head); printNode(head); }
出力
上記のコードを実行すると、次のように出力が生成されます
1→2→3→4→
指定された入力単一リンクリスト(1→2→3→4→5)では、リンクリストの最後のノードは「5」です。したがって、最後のノードを削除すると、リンクリストは1→2→3→4→になります。
-
C++の特定の位置にある二重リンクリストノードを削除します
このチュートリアルでは、指定された位置にある二重リンクリストのノードを削除する方法を学習します。 問題を解決するための手順を見てみましょう。 データ、前のポインタ、次のポインタを使用して構造体を記述します。 ノードを二重リンクリストに挿入する関数を記述します。 ダミーデータを使用して二重リンクリストを初期化します。 ノードを削除する位置を初期化します。 リンクリストを繰り返し処理し、指定された位置にあるノードを見つけて、ノードを削除します。 ノードを削除する関数を記述します。ノードを削除するときは、次の3つのケースを考慮してください。 ノードがヘッド
-
循環単一リンクリストを実装するためのC++プログラム
循環単一リンクリストは、自己参照構造を使用して作成されたノードで構成されるデータ構造の一種です。これらの各ノードには、データと次のリストノードへの参照という2つの部分が含まれています。 リンクリスト全体にアクセスするには、最初のリストノードへの参照のみが必要です。これは頭として知られています。リストの最後のノードは、リストの先頭または最初のノードを指します。これが循環リンクリストとして知られている理由です。 循環単一リンクリストを実装するプログラムは次のとおりです。 例 #include <iostream> using namespace std; struct Node