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

C++で二重リンクリストのサイズを見つけるプログラム


この問題では、二重にリンクされたリストが与えられます。私たちのタスクは、C++で二重リンクリストのサイズを見つけるプログラムを作成することです。

二重リンクリストは特殊なタイプのリンクリストであり、単一リンクリストと比較して、順方向と逆方向の両方の方法で簡単にナビゲーションできます。以下は、二重リンクリストの概念を理解するための重要な用語です。

  • リンク-リンクリストの各リンクには、要素と呼ばれるデータを格納できます。

  • 次へ-リンクリストの各リンクには、次と呼ばれる次のリンクへのリンクが含まれています。

  • 前-リンクリストの各リンクには、前と呼ばれる前のリンクへのリンクが含まれています。

  • LinkedList-リンクリストには、Firstと呼ばれる最初のリンクとLastと呼ばれる最後のリンクへの接続リンクが含まれます。

二重リンクリストの表現-

C++で二重リンクリストのサイズを見つけるプログラム

問題の説明 −上記のタイプの二重リンクリストが提供されます。そして、そのサイズ(長さ)を見つけます。

問題を理解するために例を見てみましょう

入力

the above linked list A <-> B <-> C.

出力

3

ソリューションアプローチ

二重リンクリストのサイズを見つけるには、二重リンクリストをトラバースし、有効な長さで長さを追跡する必要があります。

アルゴリズム

初期化 −長さ=0、*temp=ヘッド

  • ステップ1 −リストをトラバースします。つまり、temp!=NULLになるまで実行します。
    • ステップ1.1 −長さを増やす、長さ++
    • ステップ1.2 −ポインタを更新します。temp=temp->次へ。
  • ステップ2 −印刷の長さ。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
struct doublyLL {
   char val;
   struct doublyLL *next;
   struct doublyLL *prev;
};
void insertNode(struct doublyLL** head_ref, int value){
   struct doublyLL* new_node = new doublyLL;
   new_node->val = value;
   new_node->next = (*head_ref);
   new_node->prev = NULL;
   if ((*head_ref) != NULL)
      (*head_ref)->prev = new_node ;
      (*head_ref) = new_node;
}
int calcDLLSize(struct doublyLL *temp) {
   int length = 0;
   while (temp != NULL){
      temp = temp->next;
      length++;
   }
   return length;
}
int main(){
   struct doublyLL* head = NULL;
   insertNode(&head, 'A');
   insertNode(&head, 'H');
   insertNode(&head, 'E');
   insertNode(&head, 'K');
   insertNode(&head, 'M');
   insertNode(&head, 'S');
   cout<<"The size of Doubly Linked List is "<<calcDLLSize(head);
   return 0;
}

出力

The size of Doubly Linked List is 6

  1. C++で二重リンクリストのサイズを見つけるプログラム

    この問題では、二重にリンクされたリストが与えられます。私たちのタスクは、C++で二重リンクリストのサイズを見つけるプログラムを作成することです。 二重リンクリストは特殊なタイプのリンクリストであり、単一リンクリストと比較して、順方向と逆方向の両方の方法で簡単にナビゲーションできます。以下は、二重リンクリストの概念を理解するための重要な用語です。 リンク-リンクリストの各リンクには、要素と呼ばれるデータを格納できます。 次へ-リンクリストの各リンクには、次と呼ばれる次のリンクへのリンクが含まれています。 前-リンクリストの各リンクには、前と呼ばれる前のリンクへのリンクが含ま

  2. C++で二重にリンクされたリストを使用した優先キュー

    データと優先度は整数値として与えられ、タスクは与えられた優先度に従って二重にリンクされたリストを作成し、結果を表示することです。 キューはFIFOデータ構造であり、最初に挿入された要素が最初に削除されます。優先度付きキューは、優先度に応じて要素を挿入または削除できるキューの一種です。キュー、スタック、またはリンクリストのデータ構造を使用して実装できます。優先キューは、次のルールに従って実装されます- 優先度が最も高いデータまたは要素は、優先度が最も低いデータまたは要素の前に実行されます。 2つの要素の優先度が、順番に実行される要素と同じである場合、それらはリストに追加されます。 優先