Singly Linked List
Singly Linked List
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) {
temp = ptr;
return temp;
void appendNode(Node * n) {
} else {
if (head == NULL) {
head = n;
} else {
void prependNode(Node * n) {
cout << "Node Already exists with key value : " << n -> key << ".
Append another node with different Key value" << endl;
} else {
head = n;
}
}
if (ptr == NULL) {
cout << "No node exists with key value: " << k << endl;
} else {
cout << "Node Already exists with key value : " << n -> key <<
". Append another node with different Key value" << endl;
} else {
void deleteNodeByKey(int k) {
if (head == NULL) {
cout << "Singly Linked List already Empty. Cant delete" << endl;
} else {
temp = currentptr;
currentptr = NULL;
} else {
if (temp != NULL) {
cout << "Node UNLINKED with keys value : " << k << endl;
} else {
cout << "Node Doesn't exist with key value : " << k << endl;
if (ptr != NULL) {
} else {
cout << "Node Doesn't exist with key value : " << k << endl;
// 7th printing
void printList() {
if (head == NULL) {
} else {
cout << "(" << temp -> key << "," << temp -> data << ") --> ";
}
}
};
int main() {
SinglyLinkedList s;
int option;
do {
//Node n1;
switch (option) {
case 0:
break;
case 1:
cout << "Append Node Operation \nEnter key & data of the Node to
be Appended" << endl;
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;
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;
s.insertNodeAfter(k1, n1);
break;
case 4:
cout << "Delete Node By Key Operation - \nEnter key of the Node
to be deleted: " << endl;
s.deleteNodeByKey(k1);
break;
case 5:
cout << "Update Node By Key Operation - \nEnter key & NEW data to
be updated" << endl;
s.updateNodeByKey(key1, data1);
break;
case 6:
s.printList();
break;
case 7:
system("cls");
break;
default:
return 0;