0% found this document useful (0 votes)
43 views3 pages

Struct Int Struct: #Include #Include

This C program implements a linked list with functions to insert and delete nodes from either end of the list. The main function uses a menu to allow the user to insert nodes, traverse the list to print elements, and delete nodes from either end. Functions are defined to insert nodes at the beginning or end of the list, traverse the list to print elements, and delete nodes from the beginning or end of the list.

Uploaded by

Uma Mahesh
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)
43 views3 pages

Struct Int Struct: #Include #Include

This C program implements a linked list with functions to insert and delete nodes from either end of the list. The main function uses a menu to allow the user to insert nodes, traverse the list to print elements, and delete nodes from either end. Functions are defined to insert nodes at the beginning or end of the list, traverse the list to print elements, and delete nodes from the beginning or end of the list.

Uploaded by

Uma Mahesh
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/ 3

#include <stdio.

h>
#include <stdlib.h>

struct node {
int data;
struct node *next;
};

struct node *start = NULL;


void insert_at_begin(int);
void insert_at_end(int);
void traverse();
void delete_from_begin();
void delete_from_end();
int count = 0;

int main () {
int input, data;

for (;;) {
printf("1. Insert an element at beginning of linked list.\n");
printf("2. Insert an element at end of linked list.\n");
printf("3. Traverse linked list.\n");
printf("4. Delete element from beginning.\n");
printf("5. Delete element from end.\n");
printf("6. Exit\n");

scanf("%d", &input);

if (input == 1) {
printf("Enter value of element\n");
scanf("%d", &data);
insert_at_begin(data);
}
else if (input == 2) {
printf("Enter value of element\n");
scanf("%d", &data);
insert_at_end(data);
}
else if (input == 3)
traverse();
else if (input == 4)
delete_from_begin();
else if (input == 5)
delete_from_end();
else if (input == 6)
break;
else
printf("Please enter valid input.\n");
}

return 0;
}

void insert_at_begin(int x) {
struct node *t;
t = (struct node*)malloc(sizeof(struct node));
count++;

if (start == NULL) {
start = t;
start->data = x;
start->next = NULL;
return;
}

t->data = x;
t->next = start;
start = t;
}

void insert_at_end(int x) {
struct node *t, *temp;

t = (struct node*)malloc(sizeof(struct node));


count++;

if (start == NULL) {
start = t;
start->data = x;
start->next = NULL;
return;
}

temp = start;

while (temp->next != NULL)


temp = temp->next;

temp->next = t;
t->data = x;
t->next = NULL;
}

void traverse() {
struct node *t;

t = start;

if (t == NULL) {
printf("Linked list is empty.\n");
return;
}

printf("There are %d elements in linked list.\n", count);

while (t->next != NULL) {


printf("%d\n", t->data);
t = t->next;
}
printf("%d\n", t->data);
}
void delete_from_begin() {
struct node *t;
int n;

if (start == NULL) {
printf("Linked list is already empty.\n");
return;
}

n = start->data;
t = start->next;
free(start);
start = t;
count--;

printf("%d deleted from beginning successfully.\n", n);


}

void delete_from_end() {
struct node *t, *u;
int n;

if (start == NULL) {
printf("Linked list is already empty.\n");
return;
}

count--;

if (start->next == NULL) {
n = start->data;
free(start);
start = NULL;
printf("%d deleted from end successfully.\n", n);
return;
}

t = start;

while (t->next != NULL) {


u = t;
t = t->next;
}

n = t->data;
u->next = NULL;
free(t);

printf("%d deleted from end successfully.\n", n);


}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy