delete a linked list node

0 comments

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;

}

About the Author

Follow me


{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}