Question: // A complete working C program to delete a node in a linked list // at a given position #include #include // A linked list

 // A complete working C program to delete a node ina linked list // at a given position #include #include // A

// A complete working C program to delete a node in a linked list

// at a given position

#include

#include

// A linked list node

struct Node

{

int data;

struct Node *next;

};

/* Given a reference (pointer to pointer) to the head of a list

and an int, inserts a new node on the front of the list. */

void push(struct Node** head_ref, int new_data)

{

struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));

new_node->data = new_data;

new_node->next = (*head_ref);

(*head_ref) = new_node;

}

/* Given a reference (pointer to pointer) to the head of a list

and a position, deletes the node at the given position */

void deleteNode(struct Node **head_ref, int position)

{

// If linked list is empty

if (*head_ref == NULL)

return;

// Store head node

struct Node* temp = *head_ref;

// If head needs to be removed

if (position == 0)

{

*head_ref = temp->next; // Change head

free(temp); // free old head

return;

}

// Find previous node of the node to be deleted

for (int i=0; temp!=NULL && i

temp = temp->next;

// If position is more than number of nodes

if (temp == NULL || temp->next == NULL)

return;

// Node temp->next is the node to be deleted

// Store pointer to the next of node to be deleted

struct Node *next = temp->next->next;

// Unlink the node from linked list

free(temp->next); // Free memory

temp->next = next; // Unlink the deleted node from list

}

// This function prints contents of linked list starting from

// the given node

void printList(struct Node *node)

{

while (node != NULL)

{

printf(" %d ", node->data);

node = node->next;

}

}

/* Drier program to test above functions*/

int main()

{

/* Start with the empty list */

struct Node* head = NULL;

push(&head, 7);

push(&head, 1);

push(&head, 3);

push(&head, 2);

push(&head, 8);

puts("Created Linked List: ");

printList(head);

deleteNode(&head, 5);

puts(" Linked List after Deletion at position 4: ");

printList(head);

return 0;

}

tudent name: Student ID: Rewrite the code (lines 46-47) when necessary so that your code has the bug "you get an error if you try to delete the node in the fifth position (node number 6) only, while your code contains only five nodes (positions 0-4). Explain your answer in detail using the nodes in the code. 1. The new statement: Explanation: Rewrite the code (lines 46-47) when necessary so that your code has the bug "you get an error if you try to delete the nodes staring form the sixth (node number 7), while your code contains 2. The new statement: Explanation

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!