Nama : Fanny Riskawanti
NRP : 6311255
Alamat : Bandung
Kelas : 1 TI-7
Matakuliah : Struktur Data
Dosen : Dadan Nurdin Bagenda
Kampus : PKN & STIMIK LPKIA
MATERI STRUKTUR DATA
Kamis, 19 Juli 2012
Binary Tree
Binary Tree adalah struktur data yang hampir mirip juga dengan Linked List untuk
menyimpan koleksi dari data.
contoh :
Tree
- Tree adalah struktur data yang non cilcular yang memiliki sifat khusus.
dan tree juga merupakan salah satu bentuk implementasi banyak linked list yang biasanya digunakan untuk menggambarkan hubungan yang hirarkis antara elemen-elemen yang ada.
contoh algoritma dari Tree:
contoh :
#include "iostream.h"
#include "string.h"
#include "conio.h"
struct simpulpohon
{
simpulpohon *induk;
simpulpohon *kiri;
simpulpohon *kanan;
char data;
};
class pohonbiner
{
private:
simpulpohon *akar;
int tambah(simpulpohon *orangtua, simpulpohon *baru);
void tampil(simpulpohon *simpul);
public:
pohonbiner();
int tambah(char data);
void tampil();
};
void main()
{
clrscr();
char data[] = "CARKDUPBENXZS";
pohonbiner pohon;
for (int i = 0; i < strlen(data); i++)
pohon.tambah(data[i]);
cout<<"Data ke Pohon Biner : "<<endl;
for (int x = 0; x < strlen(data); x++)
cout<<data[x];
cout<<endl;
cout<<endl;
cout<<"Hasil Pohon Biner :"<<endl;
pohon.tampil();
getch();
}
pohonbiner::pohonbiner()
{
akar = NULL;
}
int pohonbiner::tambah(char data)
{
simpulpohon *simpul;
simpul= new simpulpohon;
simpul->kiri = NULL;
simpul->kanan = NULL;
simpul->induk = NULL;
simpul->data = data;
if (akar == NULL)
{
akar = simpul;
return(1);
}
else
return(tambah(akar,simpul));
}
int pohonbiner::tambah(simpulpohon *orangtua, simpulpohon *baru)
{
if (baru->data ==orangtua->data)
{
delete baru;
return(0);
}
else if (baru->data < orangtua->data)
{
if (!orangtua->kiri)
{
orangtua->kiri = baru;
baru->induk = orangtua;
}
else
return(tambah(orangtua->kiri,baru));
}
else
{
if (!orangtua->kanan)
{
orangtua->kanan = baru;
baru->induk = orangtua;
}
else
return(tambah(orangtua->kanan,baru));
}
return(1);
}
void pohonbiner::tampil()
{
tampil(akar);
cout<<endl;
}
void pohonbiner::tampil(simpulpohon *simpul)
{
if (simpul)
{
if (simpul->kiri) tampil(simpul->kiri);
cout<<simpul->data;
if (simpul->kanan) tampil(simpul->kanan);
}
}
Double LinkedList Non-Circular
Definisi dari Double linked list yang non circular
Double Linked List Non Circular adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya dan 1 field menunjuk pointer sebelumnya serta sebuah field yang berisi data untuk node tersebut.
Double LinkedList Circular
Double Linked List Circula
• Double: artinya field pointer-nya terdiri dari dua buah dan dua arah, yaitu prev dan next
• Linked List: artinya node-node tersebut saling terhubung satu sama lain.
• Circular: artinya pointer next dan prev-nya menunjuk ke dirinya sendiri
• Setiap node pada linked list mempunyai field yang berisi data dan pointer ke node
berikutnya & ke node sebelumnya
• Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke
dirinya sendiri
• Jika sudah lebih dari satu node, maka pointer prev akan menunjuk ke node
sebelumnya, dan pointer next akan menunjuk ke node sesudahnya.
Deklarasi node
Dibuat dari struct berikut ini:
typedef struct TNode{
int data;
TNode *next;
Tnode *prev;
};
Pembentukan node baru
• Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta
alokasi memorinya.
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = baru;
baru->prev = baru;
· Penambahan data di depan
Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada head nya.
Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan. Untuk menghubungkan node terakhir dengan node terdepan dibutuhkan pointer bantu.
Single LinkedList Non-Circular
single linked list non circular
Linked List
• Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun
secara sekuensial, saling sambung-menyambung, dinamis dan terbatas.
• Linked List sering disebut juga Senarai Berantai
• Linked List saling terhubung dengan bantuan variabel pointer
• Masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field.
Bentuk Node Single Linked List non Circular
Pengertian:
• Single : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node,
pointernya menunjuk NULL
• Linked List : artinya node-node tersebut saling terhubung satu sama lain.
• Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga
memiliki field yang berisi data.
• Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada
saat pembacaan isi linked list.
Deklarasi Node
typedef struct TNode{
int data;
TNode *next;
};
Penjelasan:
• Pembuatan struct bernama TNode yang berisi 2 field, yaitu field data bertipe integer dan field next yang bertipe pointer dari TNode
• Setelah pembuatan struct, buat variabel head yang bertipe pointer dari TNode yang berguna sebagai kepala linked list.
Langganan:
Postingan (Atom)