mirror of
https://github.com/TheAlgorithms/C.git
synced 2026-02-18 14:21:27 +00:00
93 lines
1.3 KiB
C
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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|