Singly Linked
Singly Linked
Complete code
// linkedlist.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
class Node {
public:
int key;
int data;
Node * next;
Node() {
key = 0;
data = 0;
next = NULL;
}
Node(int k, int d) {
key = k;
data = d;
}
};
class SinglyLinkedList {
public:
Node * head;
SinglyLinkedList() {
head = NULL;
}
SinglyLinkedList(Node * n) {
head = n;
}
Node * nodeExists(int k) {
Node * temp = NULL;
}
return temp;
}
}
// 3. Prepend Node - Attach a node at the start
void prependNode(Node * n) {
if (nodeExists(n->key) != NULL) {
cout << "Node Already exists with key value : " << n->key
<< ". Append another node with different Key value" << endl;
}
else {
n->next = head;
head = n;
cout << "Node Prepended" << endl;
}
}
}
// 6th update node
void updateNodeByKey(int k, int d) {
// 7th printing
void printList() {
if (head == NULL) {
cout << "No Nodes in Singly Linked List";
}
else {
cout << endl << "Singly Linked List Values : ";
Node * temp = head;
};
int main() {
SinglyLinkedList s;
int option;
int key1, k1, data1;
do {
cout << "\nWhat operation do you want to perform? Select Option
number. Enter 0 to exit." << endl;
cout << "1. appendNode()" << endl;
cout << "2. prependNode()" << endl;
cout << "3. insertNodeAfter()" << endl;
cout << "4. deleteNodeByKey()" << endl;
cout << "5. updateNodeByKey()" << endl;
cout << "6. print()" << endl;
cout << "7. Clear Screen" << endl << endl;
switch (option) {
case 0:
break;
case 1:
cout << "Append Node Operation \nEnter key & data of the
Node to be Appended" << endl;
cin >> key1;
cin >> data1;
n1->key = key1;
n1->data = data1;
s.appendNode(n1);
//cout<<n1.key<<" = "<<n1.data<<endl;
break;
case 2:
cout << "Prepend Node Operation \nEnter key & data of the
Node to be Prepended" << endl;
cin >> key1;
cin >> data1;
n1->key = key1;
n1->data = data1;
s.prependNode(n1);
break;
case 3:
cout << "Insert Node After Operation \nEnter key of existing
Node after which you want to Insert this New node: " << endl;
cin >> k1;
cout << "Enter key & data of the New Node first: " << endl;
cin >> key1;
cin >> data1;
n1->key = key1;
n1->data = data1;
s.insertNodeAfter(k1, n1);
break;
case 4:
break;
case 5:
cout << "Update Node By Key Operation - \nEnter key &
NEW data to be updated" << endl;
cin >> key1;
cin >> data1;
s.updateNodeByKey(key1, data1);
break;
case 6:
s.printList();
break;
case 7:
system("cls");
break;
default:
cout << "Enter Proper Option number " << endl;
}
return 0;
}