Create linked list from a given array in C++ Program

In this tutorial, we are going to learn how to create a linked list from the given array.

Let's see the steps to solve the problem.

  • Initialize the array with dummy data.

  • Write the struct node.

  • Iterate over the array.

    • Create a new node with the data.

    • Insert the new node into the linked list.

  • Print the linked list.

Example

Let's see the code.

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

Output

If you run the above code, then you will get the following result.

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

Conclusion

If you have any queries in the tutorial, mention them in the comment section.

Updated on: 2023-09-15T02:23:32+05:30

29K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements