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