0% found this document useful (0 votes)
3 views6 pages

Expt 1

The document provides a C program that implements a singly linked list with functions to create the list, delete a specified integer, and display the list contents. It includes the definitions for the linked list node structure, functions for inserting, deleting, and printing nodes, and a main function demonstrating these operations. The output shows the list before and after the deletion of a specified integer.

Uploaded by

darkside9547
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views6 pages

Expt 1

The document provides a C program that implements a singly linked list with functions to create the list, delete a specified integer, and display the list contents. It includes the definitions for the linked list node structure, functions for inserting, deleting, and printing nodes, and a main function demonstrating these operations. The output shows the list before and after the deletion of a specified integer.

Uploaded by

darkside9547
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

1.

Write a C program that uses functions to perform the following:


a. Create a singly linked list of integers.
b. Delete a given integer from the above linked list.
c. Display the contents of the above list after deletion.

Program:

// A complete working C program

// to demonstrate Insertion,deletion,display in

// singly linked list

#include <stdio.h>

#include <stdlib.h>

// 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 key, deletes the first occurrence of key in

linked list */

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

// Store head node

struct Node *temp = *head_ref, *prev;


// If head node itself holds the key to be deleted

if (temp != NULL && temp->data == key) {

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

free(temp); // free old head

return;

// Search for the key to be deleted, keep track of the

// previous node as we need to change 'prev->next'

while (temp != NULL && temp->data != key) {

prev = temp;

temp = temp->next;
}

// If key was not present in linked list

if (temp == NULL)

return;

// Unlink the node from linked list

prev->next = temp->next;

free(temp); // Free memory

// 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;

// Driver code

int main()

/* Start with the empty list */

struct Node* head = NULL;

push(&head, 7);

push(&head, 1);

push(&head, 3);

push(&head, 2);
puts("Created Linked List: ");

printList(head);

deleteNode(&head, 1);

puts("\nLinked List after Deletion of 1: ");

printList(head);

return 0;

Output:

Created Linked List:

2 3 1 7

Linked List after Deletion of 1:

2 3 7

You might also like