C++プログラミングでリンクリストを削除する関数を記述します
ここでは、リンクリストのすべての要素を1つずつ削除する関数を作成します。
c / c ++では、このタスクを実行するための特定の機能はありませんが、Javaでは、リンクリストの削除を容易にするために自動ガベージコレクションが実行されます。
それでは、このプログラムの実装を見てみましょう。
例
#include <iostream> using namespace std; class Node{ public: int data; Node* next; }; void deleteLinkedList(Node** head_ref){ Node* current = *head_ref; Node* next; while (current != NULL){ cout<<current->data<<"\t"; next = current->next; free(current); current = next; } *head_ref = NULL; } void push(Node** head_ref, int new_data){ Node* new_node = new Node(); new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } int main(){ Node* head = NULL; push(&head, 25); push(&head, 10); push(&head, 5); push(&head, 90); push(&head, 68); cout<<"Elements of linked list : "; deleteLinkedList(&head); cout << "\nLinked list deleted"; }
出力
Elements of linked list : 68 90 5 10 25 Linked list deleted
-
C++のリンクリストの代替ノードの合計
この問題では、リンクリストが表示されます。私たちのタスクは、リンクリストの代替ノードの合計を出力することです。 リンクリストは、リンクを介して相互に接続された一連のデータ構造です。 では、問題に戻りましょう。ここでは、リンクリストの代替ノードを追加します。これは、ノードが位置0、2、4、6、…であることを追加することを意味します 問題を理解するために例を見てみましょう。 入力 4 → 12 → 10 → 76 → 9 → 26 → 1 出力 24 説明 considering alternate strings
-
C++の逆リンクリストII
リンクリストがあるとします。ノードを位置mからnに反転する必要があります。 1回のパスで実行する必要があります。したがって、リストが[1,2,3,4,5]で、m=2およびn=4の場合、結果は[1,4、、3,2,5]になります。 手順を見てみましょう- 2つのメソッド、reverseN()とreverseBetween()があります。 reverseBetween()はメインメソッドとして機能します。 successorと呼ばれる1つのリンクノードポインタをnullとして定義します reverseNは次のように機能します- n =1の場合、後継者:=頭の次、頭を返す last =rev