menunavigasihorisontal

Blognya Muhamad Ischaq

Translate

Minggu, 03 Januari 2016

program c antrian

#include<stdio.h>
#define MAX 10
int queue[MAX],front=-1,rear=-1;
void insert_element();
void delete_element();
void display_queue();


int main()
{
  int option;
  printf("program antrian (queue)");
  do
  {
   printf("\n\n 1.masukkan element");
   printf("\n 2.hapus element");
   printf("\n 3.tampilkan antrian(queue)");
   printf("\n 4.keluar");
   printf("\n tentukan pilihan anda: ");
   scanf("%d",&option);
   switch(option)
   {
     case 1: insert_element();
              break;
     case 2: delete_element();
             break;
     case 3: display_queue();
             break;
     case 4: return 0;
   }

  }while(option!=4);
}
void insert_element()
{
  int num;
  printf("\n tulis nomor yang ingin anda masukkan: ");
  scanf("%d",&num);
  if(front==0 && rear==MAX-1)
    printf("\nantrian(queue)meluap\n");
  else if(front==-1&&rear==-1)
  {
      front=rear=0;
      queue[rear]=num;

  }
  else if(rear==MAX-1 && front!=0)
  {
    rear=0;
    queue[rear]=num;
  }
  else
  {
      rear++;
      queue[rear]=num;
  }
}
void delete_element()
{
  int element;
  if(front==-1)
  {
      printf("\n antrian (queue) kosong\n");
  }
  element=queue[front];
  if(front==rear)
     front=rear=-1;
  else
  {
    if(front==MAX-1)
      front=0;
    else
      front++;
       printf("\n elemen yang dihapus adalah: %d",element);
  }

}
void display_queue()
{
    int i;
    if(front==-1)
      printf("\n tidak ada elemen untuk ditampilkan\n");
    else
    {
      printf("\n elemen antrian adalah:\n ");
      for(i=front;i<=rear;i++)
      {
          printf("\t %d",queue[i]);
      }
    }
}

1 komentar:

  1. /*stack using pointers*/

    #include
    #include

    #define MAX 50
    int size;

    // Defining the stack structure
    struct stack {
    int arr[MAX];
    int top;
    };

    // Initializing the stack(i.e., top=-1)
    void init_stk(struct stack *st) {
    st->top = -1;
    }

    // Entering the elements into stack
    void push(struct stack *st, int num) {
    if (st->top == size - 1) {
    printf("\nStack overflow(i.e., stack full).");
    return;
    }
    st->top++;
    st->arr[st->top] = num;
    }

    //Deleting an element from the stack.
    int pop(struct stack *st) {
    int num;
    if (st->top == -1) {
    printf("\nStack underflow(i.e., stack empty).");
    return;
    }
    num = st->arr[st->top];
    st->top--;
    return num;
    }

    //Display the stack.
    void display(struct stack *st) {
    int i;
    for (i = st->top; i >= 0; i--)
    printf("\n%d", st->arr[i]);
    }

    int main() {
    int element, opt, val;
    struct stack ptr;
    init_stk(&ptr);
    printf("\nEnter Stack Size :");
    scanf("%d", &size);
    while (1) {
    printf("\n\ntSTACK PRIMITIVE OPERATIONS");
    printf("\n1.PUSH");
    printf("\n2.POP");
    printf("\n3.DISPLAY");
    printf("\n4.QUIT");
    printf("\n");
    printf("\nEnter your option : ");
    scanf("%d", &opt);
    switch (opt) {
    case 1:
    printf("\nEnter the element into stack:");
    scanf("%d", &val);
    push(&ptr, val);
    break;
    case 2:
    element = pop(&ptr);
    printf("\nThe element popped from stack is : %d", element);
    break;
    case 3:
    printf("\nThe current stack elements are:");
    display(&ptr);
    break;
    case 4:
    exit(0);
    default:
    printf("\nEnter correct option!Try again.");
    }
    }
    return (0);
    }

    BalasHapus