Tampilkan postingan dengan label materi kuliah. Tampilkan semua postingan
Tampilkan postingan dengan label materi kuliah. Tampilkan semua postingan

Rabu, 29 Juni 2011

stack

#include<stdio.h>
#include<stdlib.h>
#define stack_max 5

struct STACK
{
int data[stack_max];
int atas;
};
struct STACK tumpuk;
int penuh();
void push(data);
void tampil();
main()
{
int pilih,data,angka;
tumpuk.atas=-1;
do{
printf("MENU OPERASI STACK\n");
printf("==================\n");
printf("1.Push Data\n");
printf("2.Pop Data\n");
printf("3.Print Data\n");
printf("4.keluar program\n");
printf("pilihan anda ?[1-4] : ");scanf ("%d",&pilih);
switch(pilih){
case 1 :printf("masukan data yang ingin di push : ");scanf("%d",&angka);
       push(data);
break;
    case 2 ://pop
    if(tumpuk.atas==-1){
    printf("tumpukan kosong...!\n");}
else {printf("tumpukan yang di pop %d.\n",tumpuk.data[tumpuk.atas]);
tumpuk.atas--;}
       break;
      case 3 :tampil();
       break;
case 4 :printf ("keluar aplikasi.....!\n");
break;
        default:printf ("masukan pilihan dari 1-4 !!!\n");break;
}
}while(pilih>0 && pilih<=4);
return 0;
}
void push(int nilai)
{
if(tumpuk.atas==(stack_max-1))
{
printf("stack penuh....!\n");
}
else{
tumpuk.atas++;
tumpuk.data[tumpuk.atas]=nilai;
}
}
void tampil()
{
int i;
if(tumpuk.atas==-1)
    {
    printf("stack kosong !!\n");
}
else
{
printf("Data : \n");
for (i=tumpuk.atas;i>=0;i--)
{
printf("%d \n",tumpuk.data[i]);
}
}
printf("\n");
}

queue

#include<stdio.h>
#include<stdlib.h>
#define mak 5

struct ANTRIAN {
int data[mak];
int depan;
int belakang;
};

struct ANTRIAN antri ;
void enqueue(int nilai);
void dequeue();
int main(){
int x,pilih;
int i;
antri.depan=antri.belakang=-1;
do{
printf("Menu Operasi Queue\n");
printf ("==================\n");
printf ("1. enqueue.\n");
printf ("2. dequeue.\n");
printf ("3. tampil.\n");
printf ("4. keluar.\n");
printf ("Pilihan anda ? [1-4] : ");scanf("%d",&pilih);
switch (pilih){
case 1: printf("data yang akan diantrikan : ");scanf("%d",&x);
       enqueue(x);


break;
case 2: dequeue();

break;
case 3://tampil
if(antri.belakang==-1){
printf("data antrian masih kosong..!!!\n");
}
else{
printf("\ndata antrian : \n");
for(i=antri.depan;i<=antri.belakang;i++){
printf("%d  ",antri.data[i]);
}
printf("\n");
}
break;
case 4:exit(0);break;
}
}while(pilih>0 && pilih<=4);

return 0;

}

void enqueue(int nilai)
{
if (antri.belakang==(mak-1)){
printf("antrian penuh....!!\n");
}
else if (antri.belakang==-1){
antri.depan=antri.belakang=0;
antri.data[antri.belakang]=nilai;
printf("data %d berhasil dimasukkan.\n",nilai);
}
else{
antri.belakang++;
antri.data[antri.belakang]=nilai;
printf("data %d berhasil dimasukkan.\n",nilai);
}
}
void dequeue()
{
if(antri.belakang==-1){
printf("data antrian masih kosong..!!!\n");
}
else{
printf("data yang dikeluarkan dari antrian : %d\n",antri.data[antri.depan]);
for(int i=antri.depan;i<=antri.belakang;i++){
antri.data[i]=antri.data[i+1];
}
antri.belakang--;
}
}

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates