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 .