A link list is a data structure that maintain the list of items that are logically connected with links (pointer). Link list is of four types:-
1) Singly link list:-
In singly link list every nodes contains two information inside it first data field and second field is pointer field .
Data field:- It stores the actual value of the data items.
Pointer field:- It stores the address of next node or data item
To create a singly link list the structure of node can be define as follows :-+
/* Implementation of singly link list */ #include<stdio.h>
#include<stdlib.h>
// define structure of a node
struct node
{
int data;
struct node* link;
};
struct node *start=NULL;
// create a node
struct node * create_node()
{
struct node *temp;
temp=(struct node*)malloc(sizeof(struct node));
return temp;
}
// function for insert element at first position
void insert_first()
{
struct node *temp;
temp=create_node();
printf("Enter a element\n");
scanf("%d",&temp->data);
temp->link=start;
start=temp;
}
// function for insert element at the end of the list
void insert_end()
{
struct node *temp,*t;
temp=create_node();
printf("Enter a element\n");
scanf("%d",&temp->data);
if(start==NULL)
{
temp->link=start;
start=temp;
}
else
{
t=start;
temp->link=NULL;
while(t->link!=NULL)
t=t->link;
t->link=temp;
}
}
// function for delete element from the starting
void delte_first()
{
struct node * temp;
if(start==NULL)
printf("List is empty\n");
else
{
temp=start;
start=temp->link;
free(temp);
}
}
// function for delete element from the end of the list
void delete_end()
{
struct node * temp,*t;
if(start==NULL)
{
printf("List is empty\n");
}
else
{
t=start;
if(t->link==NULL)
{
start=NULL;
free(t);
}
else
{
while(t->link->link!=NULL)
{
t=t->link;
}
temp=t->link;
t->link=NULL;
free(temp);
}
}
}
// function for display the element of List
void display()
{
struct node * temp;
if(start==NULL)
printf("List is empty\n");
else
{
temp=start;
while(temp!=NULL)
{
printf("%d ",temp->data);
temp=temp->link;
}
}
}
int main()
{
int ch;
printf("1. insert element at starting\n");
printf("2. insert element at the end of the list\n");
printf("3. delete element from the starting\n");
printf("4. delete element from the end of the list\n");
printf("5. display element of the list\n");
printf("6. exit\n");
while(1)
{
printf("Enter your choice\n");
scanf("%d",&ch);
switch(ch)
{
case 1: insert_first();
break;
case 2: insert_end();
break;
case 3: delte_first();
break;
case 4: delete_end();
break;
case 5: display();
break;
case 6: exit(0);
default: printf("Wrong key\n");
}
}
return 0;
}
Recommended Post:
Key points:-
- How to set limit in the floating value in python
- What is boolean data type
- How to print any character without using format specifier
- How to check that given number is power of 2 or not
- How to fix limit in double and floating numbers after dot (.) in c++
- How to print a double or floating point number in scientific notation and fixed notation
- How to take input a string in c
- How to reduce the execution time of program in c++.
Cracking the coding interview:-
Array and string:-
Tree and graph:-
Hackerearth Problems:-
- Very Cool numbers | Hacker earth solution
- Vowel Recognition | Hackerearth practice problem solution
- Birthday party | Hacker earth solution
- Most frequent | hacker earth problem solution
- program to find symetric difference of two sets
- cost of balloons | Hacker earth problem solution
- Chacha o chacha | hacker earth problem solution
- jadu and dna | hacker earth solution
- Bricks game | hacker earth problem
- Anti-Palindrome strings | hacker earth solution
- connected components in the graph | hacker earth data structure
- odd one out || hacker earth problem solution
- Minimum addition | Hackerearth Practice problem
- The magical mountain | Hackerearth Practice problem
- The first overtake | Hackerearth Practice problem
Hackerrank Problems:-
- Playing With Characters | Hackerrank practice problem solution
- Sum and Difference of Two Numbers | hackerrank practice problem solution
- Functions in C | hackerrank practice problem solution
- Pointers in C | hackerrank practice problem solution
- Conditional Statements in C | Hackerrank practice problem solution
- For Loop in C | hackerrank practice problem solution
- Sum of Digits of a Five Digit Number | hackerrank practice problem solution
- 1D Arrays in C | hackerrank practice problem solution
- Array Reversal | hackerrank practice problem solution
- Printing Tokens | hackerrank practice problem solution
- Digit Frequency | hackerrank practice problem solution
- Calculate the Nth term | hackerrank practice problem solution
Data structure:-
- Program to find cycle in the graph
- Implementation of singly link list
- Implementation of queue by using link list
- Algorithm of quick sort
- stack by using link list
- program to find preorder post order and inorder of the binary search tree
- Minimum weight of spanning tree
- Preorder, inorder and post order traversal of the tree
MCQs:-
0 Comments