{"id":6643,"date":"2025-06-12T17:19:04","date_gmt":"2025-06-12T11:49:04","guid":{"rendered":"https:\/\/namastedev.com\/blog\/?p=6643"},"modified":"2025-06-12T17:24:08","modified_gmt":"2025-06-12T11:54:08","slug":"introduction-to-linked-list","status":"publish","type":"post","link":"https:\/\/namastedev.com\/blog\/introduction-to-linked-list\/","title":{"rendered":"Introduction to Linked List"},"content":{"rendered":"\n<!-- PrismJS for Syntax Highlighting -->\n<link href=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/themes\/prism-tomorrow.min.css\" rel=\"stylesheet\">\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/prism.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/plugins\/autoloader\/prism-autoloader.min.js\"><\/script>\n\n<style>\n  .wp_blog_main-heading {\n    text-align: center;\n    font-size: 2.4rem;\n    color: #E58C32;\n    margin-top: 2.5rem;\n    font-weight: bold;\n  }\n  \n  .wp_blog_explanation,\n  .wp_blog_code-tabs-container {\n    max-width: 940px;\n    margin: 2rem auto;\n    padding: 2rem;\n    border-radius: 12px;\n    background-color: #f9fafb;\n  }\n  \n  .wp_blog_explanation h2 {\n    font-size: 1.4rem;\n    color: #E58C32;\n    margin-bottom: 0.75rem;\n  }\n  \n  .wp_blog_explanation p,\n  .wp_blog_explanation li {\n    font-size: 1.05rem;\n    line-height: 1.7;\n    margin: 0.5rem 0;\n    color: #1f2937;\n  }\n  \n  .wp_blog_explanation code {\n    padding: 3px 6px;\n    border-radius: 4px;\n    background: #e5e7eb;\n    font-family: 'Courier New', monospace;\n  }\n  \n  .wp_blog_explanation img {\n    width: 100%;\n    border-radius: 12px;\n    margin-top: 1rem;\n  }\n  \n  \/* Tabs *\/\n  .wp_blog_code-tabs-header {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 0.5rem;\n    margin-bottom: 1rem;\n  }\n  \n  .wp_blog_code-tab-button {\n    padding: 0.6rem 1.2rem;\n    border: 1px solid #E58C32;\n    color: #E58C32;\n    border-radius: 50px;\n    font-weight: 600;\n    cursor: pointer;\n    background-color: white;\n    transition: background 0.3s ease, color 0.3s ease;\n  }\n  \n  .wp_blog_code-tab-button.active {\n    background: #E58C32;\n    color: white;\n  }\n  \n  \/* Code Panel *\/\n  .wp_blog_code-tab-content {\n    display: none;\n    background: #111827;\n    border-radius: 12px;\n  }\n  \n  .wp_blog_code-tab-content.active {\n    display: block;\n  }\n  \n  .wp_blog_code-tab-content pre {\n    margin: 0;\n    padding: 1.5rem;\n    font-size: 1rem;\n    overflow-x: auto;\n    color: #f3f4f6;\n    background: #111827;\n    border-radius: 12px;\n  }\n\n  .wp_blog_explanation table th,\n.wp_blog_explanation table td {\n  border: 1px solid #e5e7eb;\n  padding: 1rem;\n  text-align: left;\n  vertical-align: top;\n  background-color: #ffffff; \/* Explicit white for better visibility *\/\n  color: #1f2937; \/* dark text for readability *\/\n}\n\n.wp_blog_explanation table th {\n  background-color: #fff7ed; \/* Light orange background *\/\n  color: #b45309; \/* Slightly darker orange text *\/\n  font-weight: 600;\n}\n\n  \n  <\/style>\n<div class=\"wp_blog_explanation\">\n  <h2>Linked List<\/h2>\n  <p>\n    A Linked List is a linear data structure in which elements (called nodes) are connected using pointers. Each node contains:\n    <ul>\n      <li>A <strong>value<\/strong> (the actual data)<\/li>\n      <li>A <strong>reference<\/strong> (or pointer) to the next node (and optionally to the previous node in doubly linked lists)<\/li>\n    <\/ul>\n  <\/p>\n\n  <h2>Types of Linked Lists:<\/h2>\n\n  <h3>1. Singly Linked List<\/h3>\n  <ul>\n    <li><strong>value<\/strong>: the data part<\/li>\n    <li><strong>next<\/strong>: a pointer\/reference to the next node<\/li>\n    <li>It moves only in one direction (forward)<\/li>\n    <li><strong>Structure:<\/strong> [value | next] -> [value | next] -> [value | null]<\/li>\n  <\/ul>\n\n  <h3>2. Doubly Linked List<\/h3>\n  <ul>\n    <li><strong>value<\/strong>: the data<\/li>\n    <li><strong>next<\/strong>: pointer to the next node<\/li>\n    <li><strong>prev<\/strong>: pointer to the previous node<\/li>\n    <li>Allows bidirectional traversal<\/li>\n    <li><strong>Structure:<\/strong> null &lt;- [prev | value | next] &lt;-&gt; [prev | value | next] -&gt; null<\/li>\n  <\/ul>\n\n  <h2>Key Terminologies:<\/h2>\n  <ul>\n    <li><strong>Head:<\/strong> The first node of a linked list. It marks the entry point and points to the next node.<\/li>\n    <li><strong>Tail:<\/strong> The last node of a linked list. It points to null because there\u2019s no node after it.<\/li>\n    <li><strong>Linked List Representation:<\/strong> It is typically represented using its head node.<\/li>\n  <\/ul>\n\n  <h2>Array vs Linked List \u2014 Comparison Table:<\/h2>\n  <table border=\"1\" cellpadding=\"6\" cellspacing=\"0\">\n    <thead>\n      <tr>\n        <th>Feature<\/th>\n        <th>Array<\/th>\n        <th>Linked List<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td><strong>Type<\/strong><\/td>\n        <td>Linear data structure where elements are arranged in a sequence using indexes.<\/td>\n        <td>Linear data structure where each element (node) points to the next, forming a chain.<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Memory Layout<\/strong><\/td>\n        <td>Elements are stored in a contiguous (adjacent) block of memory.<\/td>\n        <td>Each node is stored separately and connected via pointers, allowing scattered memory locations.<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Size<\/strong><\/td>\n        <td>Size must be known or defined initially. Resizing is expensive if needed later.<\/td>\n        <td>Size is dynamic. Nodes can be added or removed without knowing the size in advance.<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Data Stored<\/strong><\/td>\n        <td>Only values are stored (e.g., integers, strings, etc.)<\/td>\n        <td>Each node stores a value along with one or more pointers (to next and\/or previous nodes).<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Access Time (Indexing)<\/strong><\/td>\n        <td>Direct access using index (e.g., <code>arr[3]<\/code>) is fast with time complexity O(1).<\/td>\n        <td>Sequential access only. To get a value, you must start at the head and traverse node by node. Time complexity O(n).<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Insertion\/Deletion<\/strong><\/td>\n        <td>Inserting or deleting in the middle requires shifting elements. Can be time-consuming.<\/td>\n        <td>Insertion and deletion are faster, especially at the beginning or end, as it only involves pointer changes.<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Memory Efficiency<\/strong><\/td>\n        <td>Efficient memory usage as no extra space is needed for pointers.<\/td>\n        <td>Extra memory is used to store pointers (next\/prev), making it less memory efficient.<\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n\n  <h2>Use Cases: When to Use What?<\/h2>\n  <table border=\"1\" cellpadding=\"6\" cellspacing=\"0\">\n    <thead>\n      <tr>\n        <th>Use Case<\/th>\n        <th>Prefer<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td><strong>Access elements by index fast<\/strong><\/td>\n        <td><strong>Array<\/strong> \u2013 Arrays provide direct access to elements using an index, making it very fast (O(1)). Ideal when random access is frequent.<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Frequent insertions\/deletions at head or tail<\/strong><\/td>\n        <td><strong>Linked List<\/strong> \u2013 Inserting or removing nodes at the beginning or end is efficient in linked lists since you just change a few pointers (O(1)).<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Static-sized data with memory-efficient storage<\/strong><\/td>\n        <td><strong>Array<\/strong> \u2013 Arrays are more memory-efficient as they don\u2019t use extra space for pointers. Best when the number of elements is fixed or predictable.<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Unknown size or avoid resizing overhead<\/strong><\/td>\n        <td><strong>Linked List<\/strong> \u2013 Since linked lists grow as needed, they are a better choice when the size of the data is not known upfront or changes frequently.<\/td>\n      <\/tr>\n      <tr>\n        <td><strong>Do a lot of traversal or manipulation<\/strong><\/td>\n        <td><strong>Linked List<\/strong> \u2013 When you need to move around, insert or remove nodes repeatedly, linked lists offer better flexibility for such operations.<\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Linked List A Linked List is a linear data structure in which elements (called nodes) are connected using pointers. Each node contains: A value (the actual data) A reference (or pointer) to the next node (and optionally to the previous node in doubly linked lists) Types of Linked Lists: 1. Singly Linked List value: the<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[811,810],"tags":[],"class_list":["post-6643","post","type-post","status-publish","format-standard","category-data-structures-and-algorithms","category-dsa"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/6643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/comments?post=6643"}],"version-history":[{"count":4,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/6643\/revisions"}],"predecessor-version":[{"id":6661,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/6643\/revisions\/6661"}],"wp:attachment":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/media?parent=6643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/categories?post=6643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/tags?post=6643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}