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

C++の二重リンクリストで最大のノードを検索します


この問題では、二重連結リストLLが与えられます。私たちのタスクは、二重リンクリストで最大のノードを見つけることです。 。

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

Input : linked-list = 5 -> 2 -> 9 -> 8 -> 1 -> 3
Output : 9

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

この問題を解決する簡単な方法は、リンクリストをトラバースし、maxのデータ値がmaxValのデータより大きいかどうかを確認することです。リンクリストをトラバースした後、macValノードのデータを返します。

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

#include <iostream>
using namespace std;
struct Node{
   int data;
   struct Node* next;
   struct Node* prev;
};
void push(struct Node** head_ref, int new_data){
   struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->prev = NULL;
   new_node->next = (*head_ref);
   if ((*head_ref) != NULL)
      (*head_ref)->prev = new_node;
   (*head_ref) = new_node;
}
int findLargestNodeInDLL(struct Node** head_ref){
   struct Node *maxVal, *curr;
   maxVal = curr = *head_ref;
   while (curr != NULL){
      if (curr->data > maxVal->data)
         maxVal = curr;
      curr = curr->next;
   }
   return maxVal->data;
}
int main(){
   struct Node* head = NULL;
   push(&head, 5);
   push(&head, 2);
   push(&head, 9);
   push(&head, 1);
   push(&head, 3);
   cout<<"The largest node in doubly linked-list is "<<findLargestNodeInDLL(&head);
   return 0;
}

出力

The largest node in doubly linked-list is 9

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

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

  2. 二重リンクリストで最大の要素を見つけるPythonプログラム

    二重リンクリストで最大の要素を見つける必要がある場合、二重リンクリストに要素を追加する方法、二重リンクリストの要素を印刷する方法、および二重リンクリストで最大の要素を見つける方法リストが定義されています。 以下は同じのデモンストレーションです- 例 class Node:    def __init__(self, data):       self.data = data       self.next = None       self.prev = None class Do