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

特定の単一リンクリストの最初のノードを削除するC++プログラム


リンクリストは、相互に接続された複数のノードを持つ線形データ構造です。各ノードは、データフィールドと次のノードのアドレスの2つのフィールドで構成されています。

単一リンクリストがあり、このリンクリストから最初のノードを削除する必要があると仮定します。たとえば、

入力1 −4→3→2→1

出力 −3→2→1→

説明 −「4」は、指定された単一リンクリストの最初のノードです。最初のノードを削除すると、リンクリストは3→2→1になります。

入力2 −1→2→3→

出力 −2→3→

説明 −最初のノード「1」を削除すると、リンクリストは2→3になります。

この問題を解決するためのアプローチ

最初に、ノードで構成されるリンクリストがあります。各ノードには、次のノードへのデータとアドレスが含まれています。リンクリストにデータを挿入した後、最初のノードを削除する関数を作成します。

したがって、最初にヘッドを指し、ヘッドを次のノードに移動する一時的なポインタを作成します。次に、一時ノードを削除して、リンクリストを返します。

  • 関数deleteAthead(node *&head)は、ヘッドへのポインターを取得し、リンクリストの最初のノードを削除します。

  • 最初に頭を指す一時的なポインタを作成します。

  • 頭が次のノードに移動します。

  • 一時ポインタを削除します。

  • リンクリストを返します。

#include<iostream>
using namespace std;
int main(){
class node{
   public:
      int data;
      node*next;
      node(int d){
         data=d;
         node*next=NULL;
      }
};
void insertAtFirstNode(node*&head, int data){
   node*n= new node(data);
   n->next= head;
   head=n;
}
void print(node*head){
   while(head!=NULL){
      cout<<head->data<<"->";
      head=head->next;
   }
   cout<<endl;
}
void deleteAtFirst(node*&head){
   if(head==NULL){
      return;
   }
   node*temp=head;
   head= head->next;
   delete temp;
   return;
}
int main(){
   node*head= NULL;
   insertAtFirstNode(head,1);
   insertAtFirstNode(head,2);
   insertAtFirstNode(head,3);
   insertAtFirstNode(head,4);
   deleteAtFirst(head);
   print(head);
}

出力

上記のコードを実行すると、次のように出力が生成されます

3 → 2 → 1 →

与えられた単一リンクリストは4→3→2→1→なので、最初のノードである4を削除すると、リンクリストは3→2→1→

になります。
  1. 循環単一リンクリストを実装するためのC++プログラム

    循環単一リンクリストは、自己参照構造を使用して作成されたノードで構成されるデータ構造の一種です。これらの各ノードには、データと次のリストノードへの参照という2つの部分が含まれています。 リンクリスト全体にアクセスするには、最初のリストノードへの参照のみが必要です。これは頭​​として知られています。リストの最後のノードは、リストの先頭または最初のノードを指します。これが循環リンクリストとして知られている理由です。 循環単一リンクリストを実装するプログラムは次のとおりです。 例 #include <iostream> using namespace std; struct Node

  2. 単一リンクリストを実装するC++プログラム

    単一リンクリストは、自己参照構造を使用して作成されたノードで構成されるデータ構造の一種です。これらの各ノードには、データと次のリストノードへの参照という2つの部分が含まれています。リンクリスト全体にアクセスするには、最初のリストノードへの参照のみが必要です。これは頭​​として知られています。リストの最後のノードは何も指していないため、その部分にNULLが格納されます。 単一リンクリストを実装するためのプログラムは次のとおりです。 例 #include <iostream> using namespace std; struct Node {    int da