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

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

  1. C++のリンクリストの代替ノードの合計

    この問題では、リンクリストが表示されます。私たちのタスクは、リンクリストの代替ノードの合計を出力することです。 リンクリストは、リンクを介して相互に接続された一連のデータ構造です。 では、問題に戻りましょう。ここでは、リンクリストの代替ノードを追加します。これは、ノードが位置0、2、4、6、…であることを追加することを意味します 問題を理解するために例を見てみましょう。 入力 4 → 12 → 10 → 76 → 9 → 26 → 1 出力 24 説明 considering alternate strings

  2. 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