Files
C/data_structures/linked_list/stack_using_linkedlists.c
Anup Kumar Panwar 444d4b11d5 Refactor
2018-10-08 21:18:35 +05:30

93 lines
1.3 KiB
C

#include<stdio.h>
#include<stdlib.h>
struct node
{
int info;
struct node *link;
};
struct node *top=NULL,*temp;
void push(struct node*);
void pop(struct node*);
void display(struct node*);
int main()
{
int x=0,item;
printf("\t****stack using linked list****\n");
while(x!=4)
{
printf("enter your choice");
printf("\n1.push\n2.pop\n3.display\n4.exit\n");
scanf("%d",&x);
switch(x)
{
case 1:
push(top);
break;
case 2: pop(top);
break;
case 3: display(top);
break;
case 4: return 0;
}
}
}
void push(struct node *p)
{
int item;
struct node *temp;
temp=(struct node *)malloc(sizeof(struct node));
printf("enter element to be inserted\n");
scanf("%d",&item);
temp->info=item;
temp->link=top;
top=temp;
printf("inserted succesfully\n");
}
void pop(struct node *p)
{
int item;
struct node *temp;
if(top==NULL)
printf("stack is empty\n");
else{
item=top->info;
temp=top;
top=top->link;
free(temp);
printf("Element popped is%d\n",item);
}
}
void display(struct node *p)
{
if(top==NULL)
printf("stack is empty\n");
else
{ printf("Elements in the stack are\n");
while(p!=NULL)
{
printf("%d\n",p->info);
p=p->link;
}
// printf("%d\n",p->info);
}
}