GET ADMISSION in any stream CONTACT :: Mr. JAYDEEP MEHTA :: CONTACT NO :: 9228217183
Get & share knowledge with us... Be a part of GTU-MATERIAL. send study Material at gtumca1@gmail.com with your Name - College name...

Monday, March 7, 2011

STAKLINK


/*  Write a Program to perform the following operation stack using linklist. */
/* PUSH, POP, ISEMPTY, ISFULL, PEEP   */
struct list
{
  int info;
  struct list *next;
}*start,*q,*node,*p;
#define max 4
void push();
void pop();
int isempty();
int isfull();
void peep();
void disp();
int top=-1,stack[max];
void main()
{

  int ret,s1,choice;
  clrscr();

  start = '\0';

do
{
  printf("\n\n1 : Push element in Stack.\n");
  printf("2 : Pop an element from stack.\n");
  printf("3 : Peep an element into stack.\n");
  printf("4 : Exit from Program.\n");
  printf("Enter your choice :  ");
  scanf("%d",&choice);

  switch(choice)
   {
    case 1:
        ret = isfull();
          if(ret!=1)
           push();
           disp();
         break;
    case 2:
        ret = isempty();
         if(ret != 1)
           pop();
           disp();
         break;
    case 3:
         ret = isempty();
          if(ret != 1)
           peep();
           disp();
         break;
    case 4:
         exit();
    default :
        printf("\n\n\t\t######## INVALID CHOICE ##########\n\n");
   }

}while(s1);

}



int isfull()
{
  if(top == max)
   {
    printf("\n\n\t\t####### STCK IS OVERFLOW #########\n\n");
    return 1;
   }
  else
   return 0;
}


int isempty()
{
  if(top == -1)
   {
    printf("\n\n\t\t####### STCK IS UNDERFLOW #########\n\n");
    return 1;
   }
  else
   return 0;
}

void push()
{
  int item;
  printf("\nEnter an Integer value : ");
  scanf("%d",&item);
  top = top + 1;

  node = (struct list *)malloc(sizeof(struct list));
  node->info = item;
  node->next = '\0';
  p = start;

  if (start == '\0')
    start = node;
  else
   {
     while(p->next != '\0')
       p = p->next;
    p->next = node;
   }

}

void pop()
{
  int item;
  q = start;
  p = start->next;
  while(p->next!='\0')
   {
    p = p->next;
    q = q->next;
   }
  item = p->info;

  if(p==start)
    start = '\0';

   q->next='\0';
  top = top -1;
  printf("\n\n\t\t%d is deleted\n",item);
}


void peep()
{
  int item,q;
  printf("\n\nEnter position : ");
  scanf("%d",&q);
  p = start;

  while(q<=top)
   {
    p = p->next;
    q++;
   }

   printf("\n\nYour selected Element is %d ",p->info);
}

void disp()
{

  p = start;
  printf("\n\nStack Contains : ");

  while(p!='\0')
   {
     printf("%d ",p->info);
     p = p->next;
   }
}

0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More