Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Link list program in C, Study notes of Data Structures and Algorithms

Data structure and algorithms

Typology: Study notes

2018/2019

Uploaded on 11/09/2019

ismailissu
ismailissu 🇮🇳

1 document

1 / 6

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
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);
pf3
pf4
pf5

Partial preview of the text

Download Link list program in C and more Study notes Data Structures and Algorithms in PDF only on Docsity!

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;