



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Data structure and algorithms
Typology: Study notes
1 / 6
This page cannot be seen from the preview
Don't miss anything!
C program to implement linked list #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++;
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;