C++の単一リンクリストで最小および最大の要素を検索します
この問題では、単一リンクリストが与えられます。私たちの仕事は、単一のリンクリストから最小要素と最大要素を見つけることです。
問題を理解するために例を見てみましょう
入力
linked List : 5 -> 2 -> 7 -> 3 ->9 -> 1 -> 4
出力
Smallest element = 1 Largest element = 9
ソリューションアプローチ
この問題の簡単な解決策は、リンクリストをノードごとにトラバースすることで使用することです。これに先立ち、maxElementとminElementを最初の要素の値、つまりhead->dataに初期化します。次に、リンクリストを要素ごとにトラバースします。次に、現在のノードの値をmaxElementと比較し、大きい方の値をmaxElement変数に格納します。 minElementに小さい値を格納する場合も、同じように実行します。トラバーサルが完了したら、両方の値を出力します。
ソリューションの動作を説明するプログラム
例
#include <bits/stdc++.h> using namespace std; struct Node { int data; struct Node* next; }; void printLargestSmallestLinkedList(struct Node* head) { int maxElement = INT_MIN; int minElement = INT_MAX; while (head != NULL) { if (minElement > head->data) minElement = head->data; if (maxElement < head->data) maxElement = head->data; head = head->next; } cout<<"Smallest element in the linked list is : "<<minElement<<endl; cout<<"Largest element in the linked list is : "<<maxElement<<endl; } void push(struct Node** head, int data) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = data; newNode->next = (*head); (*head) = newNode; } int main() { struct Node* head = NULL; push(&head, 5); push(&head, 2); push(&head, 7); push(&head, 3); push(&head, 9); push(&head, 1); push(&head, 4); printLargestSmallestLinkedList(head); return 0; }
出力
Smallest element in the linked list is : 1 Largest element in the linked list is : 9
-
C++でソートおよびローテーションされたリンクリストのローテーションをカウントします
リンクリストが表示されます。リストは最初にソートされ、次にK個のノードでローテーションされます。目標は、Kの値を見つけることです。K個のノードだけ回転する入力としてリンクリストを以下に示す場合- それならオリジナルは-だったに違いない ここでKは2であることがわかります。入力リンクリストは、元のソートされたリンクリストの2ノードのローテーションです。 例を挙げて理解しましょう。 入力 −リスト:5→7→9→1→3 出力 リンクリストの要素は次のとおりです。5791 3 ソートおよびローテーションされたリンクリストのローテーション数は-3 説明 −元のソート済み
-
C++の単一リンクリスト内の交互の奇数ノードと偶数ノード
単一のリンクリストは、2つの部分を含む線形データ構造です。1つはデータで、もう1つはリスト内の次の要素へのポインタです。 代替の奇数および偶数の単一リンクリスト は、一方のノードに偶数のデータがあり、もう一方のノードに奇数のデータメンバーがあるリンクリストです。 この問題では、事前定義された単一リンクリストの要素を、代替の奇数および偶数の単一リンクリストを定義する2つの方法のいずれかで再配置する必要があります。 2つの方法があります-リンクリストの最初の要素が偶数の場合、次の要素は奇数であり、次の要素、つまり3番目の要素は再び偶数である必要があります。もう1つのタイプは、最初の要素が奇数