1A
1A
// UGR/23035/13
#include <iostream>
struct Node{
int num;
Node *next;
};
int nodeCounter;
Node* create_num(){
newNode->next = NULL;
nodeCounter++;
return newNode;
void insertFirst(){
if(head == NULL){
} else {
ptr->next = temp;
head = ptr;
} cout << "Item added\n\n";
void insertEnd(){
if (head == NULL){
} else {
tail->next = ptr;
tail = ptr;
void insertMid(){
int pos;
if (pos == 1){
insertFirst();
insertEnd();
} else {
pos--;
while (--pos){
temp = temp->next;
ptr->next = temp->next;
temp->next = ptr;
}
}
void delete_first(){
if(head == NULL){
} else {
head = head->next;
if (head == NULL){
tail = NULL;
delete temp;
nodeCounter--;
void delete_last(){
if (head == NULL){
} else {
nodeCounter--;
if (nodeCounter == 0){
head = NULL;
tail = NULL;
delete deletetail;
} else{
while(temp->next->next != NULL){
temp = temp->next;
}
delete deletetail;
tail = temp;
tail->next = NULL;
void deleteAtMid(){
int pos;
if (pos == 1){
delete_first();
delete_last();
} else {
pos--;
while (--pos){
temp = temp->next;
temp->next = deleteItem->next;
nodeCounter--;
delete deleteItem;
}
void printForward(){
if (head == NULL){
} else {
while(temp != NULL){
temp = temp->next;
void user_menu(){
char num;
delete #
switch (num) {
case '1':
insertFirst();
break;
case '2':
insertEnd();
break;
case '3':
insertMid();
break;
case '4':
delete_first();
break;
case '5':
delete_last();
break;
case '6':
deleteAtMid();
break;
case '7':
printForward();
break;
case '8':
_end = true;
break;
default:
_end = true;
break;
}
}
int main(){
while(!_end){
user_menu();
return 0;