Friday, August 28, 2009

Linked Stack



#include<stdio.h> namespace="" ns="urn:schemas-microsoft-com:office:office" prefix="o" ?>



#include<conio.h>




 



style="mso-spacerun: yes">  typedef struct
ss



style="mso-spacerun: yes">  {



style="mso-tab-count: 1">      int
data;



style="mso-tab-count: 1">      struct
ss *link;



style="mso-spacerun: yes">  }snode;



style="mso-spacerun: yes">  typedef struct



style="mso-spacerun: yes">  {



style="mso-tab-count: 1">      snode *top;



style="mso-spacerun: yes">  }stack;



stack s;




int

main()



{



style="mso-tab-count: 1">      void
push(int x);



style="mso-tab-count: 1">      void
pop(int *x);



style="mso-tab-count: 1">      void
show();



style="mso-tab-count: 1">      int
choice,value;



style="mso-tab-count: 1">      s.top=NULL;



style="mso-tab-count: 1">      do



style="mso-tab-count: 1">      {



style="mso-tab-count: 2">            clrscr();



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n\n\t\t\tLINKED STACK");



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n\t\t\t************");



style="mso-tab-count: 2">            printf( style="color: #a31515">"\nMENU");



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n====");



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n\t 1.PUSH");



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n\t 2.POP");



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n\t 3.SHOW");



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n\t 4.EXIT");



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n\nEnter the choice :->");



style="mso-tab-count: 2">            scanf( style="color: #a31515">"%d",&choice);



style="mso-tab-count: 2">           
switch
(choice)



style="mso-tab-count: 2">            {



style="mso-tab-count: 2">           
case
1:



style="mso-tab-count: 3">               
 
printf("\n ENTER THE VALUE :->");



style="mso-tab-count: 3">               
 
scanf("%d",&value);



style="mso-tab-count: 3">               
 
push(value);



style="mso-tab-count: 3">               
 
getch();



style="mso-tab-count: 3">               
 
break;



style="mso-tab-count: 2">           
case
2:



style="mso-tab-count: 3">               
 
pop(&value);



style="mso-tab-count: 3">               
 
getch();



style="mso-tab-count: 3">               
 
break;



style="mso-tab-count: 2">           
case
3:



style="mso-tab-count: 3">               
 
show();



style="mso-tab-count: 3">               
 
getch();



style="mso-tab-count: 3">               
 
break;



style="mso-tab-count: 2">           
case
4:



style="mso-tab-count: 2">            exit();



style="mso-tab-count: 2">            getch();



style="mso-tab-count: 2">            }



style="mso-tab-count: 1">      }while(choice!=4);



style="mso-tab-count: 1">      return
0;



}




void

push(int x)



{



style="mso-tab-count: 1">      snode *newnode;



style="mso-tab-count: 1">      newnode=(snode*)malloc( style="color: blue">sizeof(snode));



style="mso-tab-count: 1">      newnode->data=x;



style="mso-tab-count: 1">      newnode->link=s.top;



style="mso-tab-count: 1">      s.top=newnode;



style="mso-tab-count: 1">      printf("\n%d
IS PUSHED"
,x);



}




void

pop(int *x)



{



style="mso-tab-count: 1">      if(s.top==NULL)



style="mso-tab-count: 1">      printf("\nSTACK
IS EMPTY \n"
);



style="mso-tab-count: 1">      else



style="mso-tab-count: 1">      {



style="mso-tab-count: 2">            snode
*temp=s.top;



style="mso-tab-count: 2">            *x=s.top->data;



style="mso-tab-count: 2">            s.top=s.top->link;



style="mso-tab-count: 2">            printf( style="color: #a31515">"\n %d IS POPED",*x);



style="mso-tab-count: 2">            free(temp);



style="mso-tab-count: 1">      }



}




void

show()



{



style="mso-tab-count: 1">      snode *temp;



style="mso-tab-count: 1">      if(s.top==NULL)



style="mso-tab-count: 1">      printf("\n
STACK IS EMPTY"
);



style="mso-tab-count: 1">      else



style="mso-tab-count: 1">      {



style="mso-tab-count: 2">            snode
*temp=s.top;



style="mso-tab-count: 2">           
while
(temp)



style="mso-tab-count: 2">            {



style="mso-tab-count: 3">               
 
printf("\n %d is",temp->data);



style="mso-tab-count: 3">               
 
temp=temp->link;



style="mso-tab-count: 2">            }



style="mso-tab-count: 1">      }



}



 


No comments:

Post a Comment