Selasa, 03 Januari 2012

Nah lo nahh lhoo .. tau kah kalian malam ini aku lagi agak pusing .. cz besog responsi Struktur data n aku ga begitu ngertii ;( . Sebenernya cuma buat main funtionn jj sh, tapi walaupun seperti itu kan harus belajar dulu ya ga ya ga hehehehe #sog sog an aku nee :) ...
Nah barusan aku belajar tentang pembuatan main function pada Link List . Pertama pengetian dulu apa sih Link List itu... Link List adalah suatu struktur data yang tersusun atas paling tidak dua elemen yaitu info dan link yang gunanya untuk merangkai elemen berikutnya.
Nah itu tadi pengertiannya. Kita langsung aja yuk ke programnya


#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;
char h;

cout<<"masukkan data :";
cin>>h;
x.sisip(h);

cout << x;

cout<<"Msukkan data :";
cin>>h;
x.sisip(h);

cout << x;

cout<<"Msukkan data :";
cin>>h;
x.sisip(h);

cout << x;

cout<<"Msukkan data :";
cin>>h;
x.sisip(h);

cout << x;

cout<<"Msukkan data :";
cin>>h;
x.sisip(h);

cout << x;

for(int i=0; i<5; i++){

x.hapus(data);

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

cout << x;

}

system("PAUSE");

return EXIT_SUCCESS;

}

nah bagian yang aku beri warna lain itu adalah main functionnya .