i wrote a code but i am not sure and my assignment is due today by midnight. if you do correction i appreciate.
#include <iostream>
using namespace std;
struct node {
int value;
node *next;
};
void insertAtEnd(node * list1);
void insertBetween(node * List1, int a, int b);
node* delete_first(node * root);
void delete_last();
void delete_position(node * root, int pos);
int main() {
node *root = new node;
node *current = new node;
current = root;
int inputValue = 0;
cout << “Enter no: “;
cin >> inputValue;
node *temp = new node;
temp->value = inputValue;
temp->next = NULL;
root = temp;
current = temp;
//BUILD LINKED LIST
do {
cout << “Enter no: “;
cin >> inputValue;
node *temp = new node;
temp->value = inputValue;
temp->next = NULL;
current->next = temp;
current = current->next;
} while (current->value != 0);
root = delete_first(root);
//PRINT LINKED LIST – TRAVERSE
current = root;
cout << endl << “Now printing the linked list…” << endl;
do {
cout << current->value << ” “;
current = current->next;
} while (current->next != NULL);
cout << endl << “Print complete.”;
int a;
cin >> a;
getchar();
return 0;
}
void insertAtEnd(node * list1) {
node *current = list1;
int inputValue = 0;
do {
if (current->next->next == NULL) {
current = current->next;
cout << endl << “Enter Value to new node: “;
cin >> inputValue;
node*temp = new node;
temp->value = inputValue; // assign value to new node
temp->next = NULL; // last node therefore ->next ==NULL
current->next = temp; // join temp with the list (current is last node in the list prior
current = current->next;// current now point to the last node in the list
}
else {
current = current->next;
}
} while (current->next != NULL);
}
void insertBetween(node * List1, int a, int b) {
node*current = List1;
int inputValue;
do {
if (current->value == a && current->next->value == b) {
cout << endl << “Enter value to new node:”;
cin >> inputValue;
node*temp = new node;
temp->value = inputValue;
temp->next = current->next;
current->next = temp;
break;
}
else {
current = current->next;
}
} while (current->next != NULL);
}
node* delete_first(node * root)
{
node *temp = new node;
temp = root;
root = root->next;
delete temp;
return root;
}
void delete_last()
{
node *current = new node;
node *previous = new node;
//current = head;
while (current->next != NULL)
{
previous = current;
current = current->next;
}
//tail = previous;
previous->next = NULL;
delete current;
}
void delete_position(node * root, int pos)
{
node *current = new node;
node *previous = new node;
current = root;
for (int i = 1; i<pos; i++)
{
previous = current;
current = current->next;
}
previous->next = current->next;
}


0 comments