Laman

Powered By Blogger

Selasa, 25 Desember 2012

Link List

Link List is a form of dynamic data structures and inter-connect - connect.
Link List is more flexible to use than arrays, because it is dynamic (no limit data), in contrast to the data array has a maximum limit. Link List can be linked to a variable of type pointer.
and below is a sample program:

#include <cstdlib>

#include <iostream>

using namespace std;

class Node{

friend class List;

friend ostream& operator<<(ostream&, const List&);

public:

 Node(char& t, Node* p) : info(t), berikut(p){}

protected:

 char info;

 Node *berikut;

 };

class List{

friend ostream& operator<<(ostream&, const List&);

public:

 List() : kepala(0){}

 ~List();

 void sisip(char t);

 int hapus(char& t);

 int kosong() {return (kepala == 0);}

 void cetak();

protected:

 Node* kepala;

 Node* nodeBaru(char& t,Node* p)

 {Node* q = new Node(t,p); return q;}

 };

ostream& operator<<(ostream& out, const List& k)

{

for(Node* p=k.kepala;p;p=p->berikut)

out << p->info <<" ->";

out << "*\n";

return out;

}

List::~List()

{

Node* temp;

for(Node* p=kepala;p;)

{

temp=p;

p=p->berikut;

delete temp;

}

}

void List::sisip(char t)

{

cout << t << "masuk list:";

Node* p=nodeBaru(t,kepala);

kepala=p;

}

int List::hapus(char& t)

{

if(kosong()) return 0;

t=kepala->info;

Node *p = kepala;

kepala=kepala->berikut;

delete p;

return 1;

}

void List::cetak()

{

for (Node* p = kepala; p; p=p->berikut)

cout << p->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<5; i++){

x.hapus(data);

cout << data << " dihapus dari list :";

cout << x;

}

system("PAUSE");

return EXIT_SUCCESS;

}

semoga bermanfaat (^_^)

Tidak ada komentar:

Posting Komentar