TheAlgorithms/C++ 1.0.0
All the algorithms implemented in C++
Loading...
Searching...
No Matches
linkedlist_implentation_usingarray.cpp File Reference

Linked list implementation using Arrays. More...

#include <iostream>
Include dependency graph for linkedlist_implentation_usingarray.cpp:

Go to the source code of this file.

Classes

class  Node< ValueType >
 

Functions

void initialise_list ()
 
int getnode ()
 
void freeNode (int nodeToBeDeleted)
 
void insertAtTheBeginning (int data)
 
void insertAtTheEnd (int data)
 
void display ()
 
int main ()
 

Variables

Node AvailArray [100]
 array that will act as nodes of a linked list.
 
int head = -1
 
int avail = 0
 

Detailed Description

Linked list implementation using Arrays.

The difference between the pointer implementation of linked list and array implementation of linked list:

  1. The NULL is represented by -1;
  2. Limited size. (in the following case it is 100 nodes at max). But we can reuse the nodes that are to be deleted by again linking it bacj to the list.

Definition in file linkedlist_implentation_usingarray.cpp.

Function Documentation

◆ display()

void display ( )

Definition at line 69 of file linkedlist_implentation_usingarray.cpp.

69 {
70 int temp = head;
71 while (temp != -1) {
72 std::cout << AvailArray[temp].data << "->";
73 temp = AvailArray[temp].next;
74 }
75 std::cout << "-1" << std::endl;
76}
Node AvailArray[100]
array that will act as nodes of a linked list.

◆ freeNode()

void freeNode ( int nodeToBeDeleted)

This function when called will delete the node with the index presented as an argument, and will put back that node into the array.

Definition at line 42 of file linkedlist_implentation_usingarray.cpp.

42 {
43 AvailArray[nodeToBeDeleted].next = avail;
44 avail = nodeToBeDeleted;
45}

◆ getnode()

int getnode ( )

This will return the index of the first free node present in the avail list

Definition at line 32 of file linkedlist_implentation_usingarray.cpp.

32 {
33 int NodeIndexToBeReturned = avail;
34 avail = AvailArray[avail].next;
35 return NodeIndexToBeReturned;
36}

◆ initialise_list()

void initialise_list ( )

Definition at line 23 of file linkedlist_implentation_usingarray.cpp.

23 {
24 for (int i = 0; i <= 98; i++) {
25 AvailArray[i].next = i + 1;
26 }
27 AvailArray[99].next = -1; // indicating the end of the linked list.
28}

◆ insertAtTheBeginning()

void insertAtTheBeginning ( int data)

The function will insert the given data into the front of the linked list.

Definition at line 50 of file linkedlist_implentation_usingarray.cpp.

50 {
51 int newNode = getnode();
52 AvailArray[newNode].data = data;
53 AvailArray[newNode].next = head;
54 head = newNode;
55}
int data[MAX]
test data

◆ insertAtTheEnd()

void insertAtTheEnd ( int data)

Definition at line 57 of file linkedlist_implentation_usingarray.cpp.

57 {
58 int newNode = getnode();
59 int temp = head;
60 while (AvailArray[temp].next != -1) {
61 temp = AvailArray[temp].next;
62 }
63 // temp is now pointing to the end node.
64 AvailArray[newNode].data = data;
65 AvailArray[newNode].next = -1;
66 AvailArray[temp].next = newNode;
67}

◆ main()

int main ( void )

Main function

Definition at line 79 of file linkedlist_implentation_usingarray.cpp.

79 {
80 initialise_list();
81 int x, y, z;
82 for (;;) {
83 std::cout << "1. Insert At The Beginning" << std::endl;
84 std::cout << "2. Insert At The End" << std::endl;
85 std::cout << "3. Display" << std::endl;
86 std::cout << "4.Exit" << std::endl;
87 std::cout << "Enter Your choice" << std::endl;
88 std::cin >> z;
89 switch (z) {
90 case 1:
91 std::cout << "Enter the number you want to enter" << std::endl;
92 std::cin >> x;
94 break;
95 case 2:
96 std::cout << "Enter the number you want to enter" << std::endl;
97 std::cin >> y;
98 insertAtTheEnd(y);
99 break;
100 case 3:
101 std::cout
102 << "The linked list contains the following element in order"
103 << std::endl;
104 display();
105 break;
106 case 4:
107 return 0;
108 default:
109 std::cout << "The entered choice is not correct" << std::endl;
110 }
111 }
112
113 return 0;
114}
void insertAtTheBeginning(int data)

Variable Documentation

◆ avail

int avail = 0

Definition at line 22 of file linkedlist_implentation_usingarray.cpp.

◆ AvailArray

Node AvailArray[100]

array that will act as nodes of a linked list.

Definition at line 19 of file linkedlist_implentation_usingarray.cpp.

◆ head

int head = -1

Definition at line 21 of file linkedlist_implentation_usingarray.cpp.