Sabtu, 20 April 2013

                                                            insert tengah:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void BUAT_SIMPUL(int X);
void AWAL();
void CETAK();
void InsertKanan();
void GeserQ(int I);
void InsertTengah();
struct Node{
    int INFO;
    struct Node *LINK;
};
typedef struct Node Simpul;
Simpul *P, *FIRST, *LAST, *Q;
int X;

int main()
{
    int A[7]={25,12,17,10,15,5,14};
    int I;
    FIRST=NULL;
    X=A[0];
    BUAT_SIMPUL(X);
    AWAL();
   
    for(I=1;I<=6;I++)
    {
        X=A[I];
        BUAT_SIMPUL(X);
        InsertKanan();
    }
    printf("\n Isi sebelum insert tengah: ");
    CETAK();
    I=6;
    GeserQ(I);
   
    X=100;
    BUAT_SIMPUL(X);
    InsertTengah();
   
    printf("\n isi sesudah inseert tengah: ");
    CETAK();
}
void BUAT_SIMPUL(int X)
{
    P=(Simpul*)malloc(sizeof(Simpul));
    if(P !=NULL)
    {
        P->INFO=X;}
    else
    {
        printf("pembuatan simpul gagal");
        getch();
        exit(1);}
}
void AWAL()
{
    FIRST=P;
    LAST=P;
    P->LINK=NULL;
}
void InsertKanan()
{
    LAST->LINK=P;
    LAST=P;
    P->LINK=NULL;
}
void GeserQ(int J);
{
    int I;
    P = FIRST;
    for(I=1; I<=J; J++)
    {
        P = Q->LINK;
    }
}
void InsertTengah()
{
    P->LINK = Q->LINK;
    Q->LINK = P;
}
void CETAK(void)
{
    int X;
    Q=FIRST;
    while(Q !=NULL)
    {
        X=Q->INFO;
        printf("%4i",X);
        Q = Q->LINK;}
}



""INSERT KIRI""
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void BUAT_SIMPUL(int X);
void AWAL();
void CETAK(void);
void InsertKanan();
void InsertKiri();
struct Node{
    int INFO;
    struct Node *LINK;
};
typedef struct Node Simpul;
Simpul *P, *FIRST, *LAST, *Q;
int X;

int main()
{
    int A[7]={25,12,17,10,15,5,14};
    int I;
    FIRST=NULL;
    I=0;
    X=A[I];
    BUAT_SIMPUL(X);
    AWAL();
   
    for(I=1;I<=6;I++)
    {
        X=A[I];
        BUAT_SIMPUL(X);
        InsertKanan();
    }
    printf("\n Isi sebelum insert kiri: ");
    CETAK();
    X=100;
    BUAT_SIMPUL(X);
    InsertKiri();
    printf("\n isi sesudah insert kiri: ");
    CETAK();
}
void BUAT_SIMPUL(int X)
{
    P=(Simpul*)malloc(sizeof(Simpul));
    if(P !=NULL)
    {
        P->INFO=X;}
    else
    {
        printf("pembuatan simpul gagal");
        getch();
        exit(1);}
}
void AWAL()
{
    FIRST=P;
    LAST=P;
    P->LINK=NULL;
}
void InsertKanan()
{
    LAST->LINK=P;
    LAST=P;
    P->LINK=NULL;
}
void InsertKiri()
{
    P->LINK=FIRST;
    FIRST = P;
}
void CETAK(void)
{
    int X;
    Q=FIRST;
    while(Q !=NULL)
    {
        X=Q->INFO;
        printf("%4i",X);
        Q=Q->LINK;}
}

""INSERT KANAN""
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void BUAT_SIMPUL(int X);
void AWAL();
void CETAK();
void InsertKanan();
struct Node{
    int INFO;
    struct Node *LINK;
};
typedef struct Node Simpul;
Simpul *P, *FIRST, *LAST, *Q;
int X;

int main()
{
    int A[7]={25,12,17,10,15,5,14};
    int I;
    FIRST=NULL;
    I=0;
    X=A[I];
    BUAT_SIMPUL(X);
    AWAL();
   
    for(I=1;I<=6;I++)
    {
        X=A[I];
        BUAT_SIMPUL(X);
        InsertKanan();
    }
    printf("\n Isi sebelum insert kanan: ");
    CETAK();
    X=100;
    BUAT_SIMPUL(X);
    InsertKanan();

    printf("\n isi sesudah insert kanan: ");
    CETAK();
}
void BUAT_SIMPUL(int X)
{
    P=(Simpul*)malloc(sizeof(Simpul));
    if(P !=NULL)
    {
        P->INFO=X;}
    else
    {
        printf("pembuatan simpul gagal");
        getch();
        exit(1);}
}
void AWAL()
{
    FIRST=P;
    LAST=P;
    P->LINK=NULL;
}
void InsertKanan()
{
    LAST->LINK=P;
    LAST=P;
    P->LINK=NULL;
}
void CETAK(void)
{
    int X;
    Q=FIRST;
    while(Q !=NULL)
    {
        X=Q->INFO;
        printf("%4i",X);
        Q=Q->LINK;}
}

""PRAKTIKUM QUEUE""
#include<stdio.h>
#include<conio.h>
#define MAX 5
typedef struct
{
    int elm[MAX];
    int head;
    int tail;
}
tElmList;
//menginisialisasi queue
void Initial(tElmList* IsiQueue);
//Memasukan sebuah elemen ke Queue
void Insert(tElmList* IsiQueue);
//mengeluarkan sebuah elemen dari Queue
void Delete(tElmList* IsiQueue);
//mengecek apakah queue kosong
int isEmpty(tElmList IsiQueue);
//mengecek apakah queue penuh
int isFull(tElmList IsiQueue);
//menampilkan isi queue
void Display(tElmList IsiQueue);
int main()
{
    tElmList queueList;
    int answer;
    char jawab;
    Initial(&queueList);
    do{
        printf("QUEUE\n\tMenu Utama : \n\t1.Untuk mereset ulang,");
        printf("\n\t2.Untuk memasukan Data baru,");
        printf("\n\t3.Untuk mengeluarkan data,");
        printf("\n\t4.Untuk menampilkan semua data,");
        printf("\n\tSilahkan Masukan Pilihan Anda: ");
        scanf("%d",&answer);
        if(answer==1)
        {
            Initial(&queueList);
        }
        if(answer==2)
        {
            do{
                Insert(&queueList);
                do{
                    printf("Masih ingin menambah data(Y/N: ");
                    jawab=getch();
                    printf("\n");
                }
                while((jawab!='N')&&(jawab!='Y')&&(jawab!='y'));
            }while((jawab=='Y')||(jawab=='y'));
        }
        if(answer==3)
        {
            printf("data Sebelum Di hapus: ");
            Display(queueList);
            Delete(&queueList);
            printf("\n\nData Setelah Di hapus: ");
            Display(queueList);
        }
        if(answer==4)
        {
            Display(queueList);
        }
        do{
            printf("\nKembali ke menu utama(Y/N): ");
            jawab=getch();
        }while((jawab!='N')&&(jawab!='n')&&(jawab!='Y')&&(jawab!='y'));
    }while((jawab=='Y')||(jawab=='y'));
        return 0;
}
//menginisialisasi queue
void Initial(tElmList*IsiQueue)
{
    (*IsiQueue).head=0;
    (*IsiQueue).tail=-1;
}
//memasukan sebuah elemen ke stack
void Insert(tElmList*IsiQueue)
{
    int nilai;
    if(isFull((*IsiQueue))==0)
    {
        printf("Maaf tidak bisa di isi Lagi.\n");
    }
    else
    {
        (*IsiQueue).tail=((*IsiQueue).tail+1)%MAX;
        printf("\nMasukan Nilai: ");
        scanf("%d",&nilai);
        (*IsiQueue).elm[(*IsiQueue).tail]=nilai;
    }
}
//mengeluarkan sebuah elemen dari queue
void Delete(tElmList*IsiQueue)
{
    if(isEmpty((*IsiQueue))==0)
    {
        printf("\n\nmaaf tidak ada Yang bisa di delete. ");
    }
    else if((*IsiQueue).head==(*IsiQueue).tail)
    {
        Initial(&(*IsiQueue));
    }
    else
    {
        (*IsiQueue).head=((*IsiQueue).head+1)%MAX;
    }
}
//mengecek apakah queue kosong
int isEmpty(tElmList IsiQueue)
{
    if(IsiQueue.tail==-1)
    {
        return (0);
    }
    return (1);
}
//mengecek apakah queue penuh
int isFull(tElmList IsiQueue)
{
    if(((IsiQueue.tail+1)%MAX==IsiQueue.head)&&(IsiQueue.tail!=-1))
    {
        return (0);
    }
    return (1);
}
//menampilkan isi Queue
void Display(tElmList IsiQueue)
{
    int i;
    if(isEmpty(IsiQueue)==0)
    {
        printf("\ntelah Kosong.");
    }
    else if(IsiQueue.head>IsiQueue.tail)
    {
        printf("\nhead<<");
        for(i=IsiQueue.head;i<=(IsiQueue.tail+MAX);i++)
        {
            printf("%2d",IsiQueue.elm[i%MAX]);
            //printf("%2d,%d",IsiQueue.elm[i%MAX],i%MAX);
        }
        printf(">>tail");
    }
    else
    {
        printf("\nhead<<");
        for(IsiQueue.head;i<=IsiQueue.tail;i++)
        {
            printf("%2d",IsiQueue.elm[i]);
        }
        printf(">>tail");
    }
}

   

Tidak ada komentar:

Posting Komentar