Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
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.
Advertisements
