flag counter

Minggu, 16 Januari 2011

LINK LIST

    Linked list (list bertaut) adalah salah satu struktur data dasar yang sangat fundamental dalam bidang ilmu komputer. Dengan menggunakan linked list maka programmer dapat menimpan datanya kapanpun dibutuhkan. Linked list mirip dangan array, kecuali pada linked list data yang ingin disimpan dapat dialokasikan secara dinamis pada saat pengoperasian program (run-time).
    Pada array, apabila programmer ingin menyimpan data, programmer diharuskan untuk mendefinisikan besar array terlebih dahulu, seringkali programmer mengalokasikan array yang sangat besar(misal 100). Hal ini tidak efektif karena seringkali yang dipakai tidak sebesar itu. Dan apabila programmer ingin menyimpan data lebih dari seratus data, maka hal itu tidak dapat dimungkinkan karena sifat array yang besarnya statik.      Linked list adalah salah satu struktur data yang mampu menutupi kelemahan tersebut.
    Secara umum linked list tersusun atas sejumlah bagian-bagian data yang lebih kecil yang terhubung (biasanya melalui pointer). Linked list dapat divisualisasikan seperti kereta, bagian kepala linked list adalah mesin kereta, data yang disimpan adalah gerbong, dan pengait antar gerbong adalah pointer.
    implementasi kelas list selengkapnya seperti di bawah ini

#include
#include
using namespace std;
class Node{
friend class List;
friend ostream& operator<<(ostream&, const List&);
public:
Node(int& t,Node* p) : info(t), berikut(p){}
protected:
int info;
Node *berikut;
};
class List{
friend ostream& operator<<(ostream&, const List&);
public:
List() : kepala(0){}
~List();
void sisip(int t);
int hapus(char& t);
int kosong() {return (kepala == 0);}
void cetak();
protected:
Node* kepala;
Node* nodeBaru(int& t,Node* p)
{ Node* q = new Node(t,p); return q;}
};
ostream& operator<berikut)
out <
info <”;
out <berikut;
delete temp;
}
}
void List::sisip(int t)
{
cout << t <info;
Node* p = kepala;
kepala = kepala->berikut;
delete p;
return 1; //penghapusan sukses
}
void List::cetak()
{
for (Node* p = kepala; p; p=p->berikut)
cout <
info <”;
cout << "*\n";
}
int main(int argc, char *argv[])
{
List x;
char data;
x.sisip('a');
cout << x;
x.sisip('b');
cout << x;
x.sisip('c');
cout << x;
x.sisip('d');
cout << x;
for (int i=0; i<4; i++){
x.hapus(data); cout << data << " dihapus dari list :";
cout << x;
}
cout << "FERNANDYA RISKI HARTANTRI 09018173";
system("PAUSE");
return EXIT_SUCCESS;
}

Tidak ada komentar:

Posting Komentar