Read in your tongue here..

Showing posts with label Queue. Show all posts
Showing posts with label Queue. Show all posts

Monday, July 8, 2013

Priority Queue...

#define size 5
struct que{
      int n,p;
}num;
void in(void), del(void), dis(void);
int list[size],front=0,rear=0;
char con;
void main()
{
      printf("\n\n\tMain Menu\n1.Insert\n2.Delete\n3.Display\n4.Exit\nEnter Choice:");
      scanf("%d",&num.n);
      clrscr();
      switch(num.n)
      {
            case 1:
                  in(); break;
            case 2:
                  del();      break;
            case 3:
                  dis();      break;
            case 4:
                  exit();
            default:
                  puts("WRONG INPUT!!!");
      }
      main();
}
void in(void)
{
      do
      {
            if(rear==size)
            {
                  puts("Queue is full!!");
                  break;
            }
            else
            {
                  printf("\nEnter number with its priority value respectively:");
                  scanf("%d %d",&num.n,&num.p);
                  rear++;
                  list[num.p-1]=num.n;
                  printf("Press y to continue:");
                  con=getche();
            }
      }while(con=='y'||con=='Y');
}
void del(void)
{
      do
      {
            if(rear==front)
            {
                  puts("Queue is empty!!!");
                  break;
            }
            else
            {
                  front++;
                  puts("Continue? [y/n]:");
                  con=getche();
            }
      }while(con=='y'||con=='Y');
}
void dis(void)
{
      if(front==rear)
            printf("Queue is empty!!!");
      else
      {
            printf("The queue is: ");
            for(num.n=front;num.n<rear;num.n++)
                  printf("%d ",list[num.n]);
      }
}

Friday, June 28, 2013

Circular Queue

#define size 5
void in(void),del(void),dis(void);
int que[size],num,n=0,front=0,rear=-1;
char con;
void main()
{
      printf("\n\n\tMain Menu\n1.Insert\n2.Delete\n3.Display\n4.Exit\nEnter choice:");
      scanf("%d",&num);
      clrscr();
      switch(num)
      {
            case 1:
                  in();
                  break;
            case 2:
                  del();
                  break;
            case 3:
                  dis();
                  break;
            case 4:
                  exit();
            default:
                  puts("\nWRONG INPUT!!!");
      }
      main();
}
void in(void)
{
       do
       {
            if(n==size)
            {
                  clrscr();
                  puts("\nQueue is full!!!");
                  break;
            }
            printf("\nEnter number:");
            scanf("%d",&num);
            rear=(rear+1)%size;
            que[rear]=num;
            n++;
            printf("Continue? [y/n]:");
            con=getche();
       }while(con=='y'||con=='Y');
}

void del(void)
{
      do
      {
            if(n==0)
            {
                  clrscr();
                  puts("Queue is empty!!!");
                  break;
            }
            front=(front+1)%size;
            n--;
            printf("Continue? [y/n]:");
            con=getche();
      }while(con=='y'||con=='Y');
}
void dis(void)
{
      int i;
      clrscr();
      if(n==0)
      {
            puts("Queue is empty!!!");
            return;
      }
      printf("The queue is: ");
      for(i=front;i!=rear;i=(i+1)%size)
            printf("%d ",que[i]);
      printf("%d",que[i]);

}