Circular queue adalah salah satu jenis queue dengan karakteristik model antrian yang kedua ujungnya terhubung. Yaitu, setelah data terakhir adalah data paling awal. Dan sebaliknya, sebelum data paling awal data yang paling belakang. Kelebihan jenis ini adalah alokasi penyimpanan data yang optimal dan dinamis. Hal ini disebabkan penambahan maupun pengurangan data/ item antrian yang baru selalu menempati pos kosong yang disediakan sistem. Berikut file contoh programnya:
- file class
- file main
Untuk bisa menjalankan:
1. Ubah ekstensi file download-an dari .java.doc menjadi .java saja.
2. Letakkan kedua file tersebut ke dalam project yang sama (lebih baik jika project baru).
3. Klik kanan pada file menu, kemudian pilih "Running".
nb: thanks to prasanti "asti" asrining puri
Showing posts with label linked list. Show all posts
Showing posts with label linked list. Show all posts
Monday, 14 January 2013
Tuesday, 5 May 2009
Contoh Program Double Linked List dalam Bahasa C
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
struct node{
struct node *previous;
int info;
struct node *next;
};
typedef struct node *simpul;
void main()
{
simpul baru, head=NULL, tail=NULL, temp;
int pilih;
do
{
printf("MENU\n");
printf("1. Insert Depan\n");
printf("2. View\n");
printf("3. Search\n");
printf("4. Delete Depan\n");
printf("PILIH: ");
scanf("%d", &pilih);
switch(pilih)
{
case 1:
int data;
printf("Data Masuk: ");
scanf("%i", &data);
baru = (simpul) malloc(sizeof (struct node));
baru->info = data;
baru->next = NULL; //tidak menuju simpul mana2
baru->previous = NULL;
if (head == NULL) //khusus simpul pertama LL
{
head = baru; //pointer head, tail, baru sama
tail = baru;
}
else //untuk simpul2 berikutnya
{
baru->next = head;
head->previous = baru;
head = baru;
}
break;
case 2:
printf("Dari HEAD\n");
temp = head; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->next; //geser temp ke belakang
}
printf("\nDari Tail\n");
temp = tail; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->previous; //geser temp ke belakang
}
printf("\n");
break;
case 3:
int cari;
printf("Cari Angka: ");
scanf("%i", &cari);
temp = head;
while((temp!=NULL)&&(temp->info!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->info == cari)
printf("Data Ditemukan");
else //if(temp == NULL)
printf("Data Tidak Ditemukan");
printf("\n");
break;
case 4://hapus depan
temp = head;
head = head->next;
if (head != NULL)
head->previous = NULL;
if (head == NULL)
tail = NULL;
free(temp);
break;
}
}while (pilih!=5);
}
#include "stdlib.h"
#include "conio.h"
struct node{
struct node *previous;
int info;
struct node *next;
};
typedef struct node *simpul;
void main()
{
simpul baru, head=NULL, tail=NULL, temp;
int pilih;
do
{
printf("MENU\n");
printf("1. Insert Depan\n");
printf("2. View\n");
printf("3. Search\n");
printf("4. Delete Depan\n");
printf("PILIH: ");
scanf("%d", &pilih);
switch(pilih)
{
case 1:
int data;
printf("Data Masuk: ");
scanf("%i", &data);
baru = (simpul) malloc(sizeof (struct node));
baru->info = data;
baru->next = NULL; //tidak menuju simpul mana2
baru->previous = NULL;
if (head == NULL) //khusus simpul pertama LL
{
head = baru; //pointer head, tail, baru sama
tail = baru;
}
else //untuk simpul2 berikutnya
{
baru->next = head;
head->previous = baru;
head = baru;
}
break;
case 2:
printf("Dari HEAD\n");
temp = head; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->next; //geser temp ke belakang
}
printf("\nDari Tail\n");
temp = tail; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->previous; //geser temp ke belakang
}
printf("\n");
break;
case 3:
int cari;
printf("Cari Angka: ");
scanf("%i", &cari);
temp = head;
while((temp!=NULL)&&(temp->info!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->info == cari)
printf("Data Ditemukan");
else //if(temp == NULL)
printf("Data Tidak Ditemukan");
printf("\n");
break;
case 4://hapus depan
temp = head;
head = head->next;
if (head != NULL)
head->previous = NULL;
if (head == NULL)
tail = NULL;
free(temp);
break;
}
}while (pilih!=5);
}
Monday, 20 April 2009
Contoh Program Linked List Sederhana dalam Bahasa C
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct simpul {
char nama[20];
float nilai;
struct simpul *next_simpul;
} simpulku;
void main()
{ simpulku *simpul1, *simpul2, *simpul3, *simpul4, *temp;
//alokasikan memorinya dulu
simpul1 = (simpulku *)malloc(sizeof(simpulku));
simpul2 = (simpulku *)malloc(sizeof(simpulku));
simpul3 = (simpulku *)malloc(sizeof(simpulku));
//isi data masing2 simpul
strcpy(simpul1->nama, "Amin");
strcpy(simpul2->nama, "Budi");
strcpy(simpul3->nama, "Citra");
simpul1->nilai=90; simpul2->nilai=20;
simpul3->nilai=100;
simpul1->next_simpul = NULL;
//sambungkan link masing2 simpul
simpul1->next_simpul = simpul2;
simpul2->next_simpul = simpul3;
simpul3->next_simpul = NULL;
//tampilkan hasilnya, mulai dr simpul 1
temp = simpul1; //cara satu per satu
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
//skenario menambahkan simpul baru
simpul4 = (simpulku *)malloc(sizeof(simpulku)); //siapkan
strcpy(simpul4->nama, "Dewi");simpul4->nilai=80; //isi
simpul2->next_simpul = simpul4; //update link
simpul4->next_simpul = simpul3;
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
//menghapus simpul budi
simpul1->next_simpul = simpul4; //update link
free(simpul2); //hapus simpul
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
}
#include "stdlib.h"
#include "string.h"
typedef struct simpul {
char nama[20];
float nilai;
struct simpul *next_simpul;
} simpulku;
void main()
{ simpulku *simpul1, *simpul2, *simpul3, *simpul4, *temp;
//alokasikan memorinya dulu
simpul1 = (simpulku *)malloc(sizeof(simpulku));
simpul2 = (simpulku *)malloc(sizeof(simpulku));
simpul3 = (simpulku *)malloc(sizeof(simpulku));
//isi data masing2 simpul
strcpy(simpul1->nama, "Amin");
strcpy(simpul2->nama, "Budi");
strcpy(simpul3->nama, "Citra");
simpul1->nilai=90; simpul2->nilai=20;
simpul3->nilai=100;
simpul1->next_simpul = NULL;
//sambungkan link masing2 simpul
simpul1->next_simpul = simpul2;
simpul2->next_simpul = simpul3;
simpul3->next_simpul = NULL;
//tampilkan hasilnya, mulai dr simpul 1
temp = simpul1; //cara satu per satu
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
//skenario menambahkan simpul baru
simpul4 = (simpulku *)malloc(sizeof(simpulku)); //siapkan
strcpy(simpul4->nama, "Dewi");simpul4->nilai=80; //isi
simpul2->next_simpul = simpul4; //update link
simpul4->next_simpul = simpul3;
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
//menghapus simpul budi
simpul1->next_simpul = simpul4; //update link
free(simpul2); //hapus simpul
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
}
Subscribe to:
Posts (Atom)