Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5.  
  6. //Structure for linked list
  7. struct node
  8. {
  9.     int data;
  10.     node *next;
  11. };
  12.  
  13. void display_list(node*, int);
  14.  
  15. int main()
  16. {
  17.     //Create linked list
  18.     node * head = new node;
  19.     node * ptr = head;
  20.     node * temp = nullptr;
  21.  
  22.     //DATA
  23.     int numberOfNodes = 0;
  24.     int userNumber = 0;
  25.     int index = 0;
  26.  
  27.     //Prompt user for proper input
  28.     while (numberOfNodes < 1)
  29.     {
  30.         cout << "Enter the number of initial nodes (must be at least 1): ";
  31.         cin >> numberOfNodes;
  32.     }
  33.  
  34.     //Fill list
  35.     for (int i = 0; i < numberOfNodes; i++)
  36.     {
  37.         //Prompt for data
  38.         cout << "Enter a number: ";
  39.         cin >> userNumber;
  40.         ptr->data = userNumber;
  41.  
  42.         //Connect tail to nullptr
  43.         if (i == numberOfNodes - 1)
  44.         {
  45.             ptr->next = nullptr;
  46.         }
  47.         //Creat a new node and pointer
  48.         else
  49.         {
  50.             ptr->next = new node;
  51.             ptr = ptr->next;
  52.         }
  53.     }
  54.  
  55.     //Set pointer to beginning of list
  56.     ptr = head;
  57.  
  58.     //Output data in list
  59.     display_list(ptr, numberOfNodes);
  60.  
  61.     //Insert into linked list
  62.     do
  63.     {
  64.         cout << "Enter the index to insert a node: ";
  65.         cin >> index;
  66.         if (index >= numberOfNodes)
  67.         {
  68.             cout << "Invalid index. Please enter an index below the number of nodes." << endl;
  69.         }
  70.     } while (index >= numberOfNodes);
  71.     cout << "Enter a number for a new node to insert to the linked list: ";
  72.     cin >> userNumber;
  73.  
  74.     //Set pointer to beginning of list
  75.     ptr = head;
  76.  
  77.     //Have pointer point to index
  78.     for (int i = 0; i < index - 1; i++)
  79.     {
  80.         ptr = ptr->next;
  81.         if (ptr->next == nullptr)
  82.         {
  83.             temp = nullptr;
  84.         }
  85.         else
  86.         {
  87.             temp = ptr->next;
  88.         }
  89.     }
  90.  
  91.     //Insert node
  92.     ptr->next = new node;
  93.     ptr->data = userNumber;
  94.     ptr = temp;
  95.     ptr = head;
  96.  
  97.  
  98.     display_list(ptr, numberOfNodes);
  99.  
  100.     return 0;
  101. }
  102.  
  103. void display_list(node* ptr, int numberOfNodes)
  104. {
  105.     //Output data in list
  106.     for (int i = 0; i < numberOfNodes; i++)
  107.     {
  108.         cout << (ptr->data) << endl;
  109.         ptr = ptr->next;
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement