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

C++プログラムで特定の配列からリンクリストを作成する


このチュートリアルでは、指定された配列からリンクリストを作成する方法を学習します。

問題を解決するための手順を見てみましょう。

  • ダミーデータでアレイを初期化します。

  • 構造体ノードを記述します。

  • アレイを繰り返し処理します。

    • データを使用して新しいノードを作成します。

    • リンクリストに新しいノードを挿入します。

  • リンクリストを印刷します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   Node* next;
};
struct Node* newNode(int data) {
   Node* node = new Node;
   node->data = data;
   node->next = NULL;
   return node;
}
void insertNewNode(Node** root, int data) {
   Node* node = newNode(data);
   Node* ptr;
   if (*root == NULL) {
      *root = node;
   }
   else {
      ptr = *root;
      while (ptr->next != NULL) {
         ptr = ptr->next;
      }
      ptr->next = node;
   }
}
void printLinkedList(Node* root) {
   while (root != NULL) {
      cout << root->data << " -> ";
      root = root->next;
   }
   cout << "NULL" << endl;
}
Node* createLinkedList(int arr[], int n) {
   Node *root = NULL;
   for (int i = 0; i < n; i++) {
      insertNewNode(&root, arr[i]);
   }
   return root;
}
int main() {
   int arr[] = { 1, 2, 3, 4, 5 }, n = 5;
   Node* root = createLinkedList(arr, n);
   printLinkedList(root);
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

1 -> 2 -> 3 -> 4 -> 5 -> NULL

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++の2Dマトリックスからリンクリストを作成します

    行列が1つあるとすると、再帰的アプローチを使用して2Dリンクリストに変換する必要があります。 リストには右ポインタと下ポインタがあります。 したがって、入力が次のような場合 10 20 30 40 50 60 70 80 90 出力はになります これを解決するには、次の手順に従います- 関数make_2d_list()を定義します。これは、行列mat、i、j、m、n、を取ります。 iとjが行列の境界にない場合、- nullを返す temp:=値mat [i、j]で新しいノードを作成します 温度

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

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