| #include <cstdlib> | 
| #include <iostream> | 
|  | 
|  | 
| //template <class T> | 
| 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; | 
| }; | 
|  | 
| //template <class T> | 
| class List{ | 
| friend ostream& operator<<(ostream&,   const List&); | 
| public: | 
| List() : kepala(0){} | 
| ~List(); | 
| void sisip(char t); | 
| char hapus(char& t); | 
| char kosong() {return (kepala == 0);} | 
| void cetak(); | 
| void sisipTengah(); | 
| protected: | 
| Node* kepala; | 
| Node* nodeBaru(char& t,Node* p) | 
| { Node* q = new Node(t,p); return q;} | 
| }; | 
| //template <class T> | 
| ostream& operator<<(ostream& out, const   List& k) | 
| { | 
| for (Node* p = k.kepala; p; p=p->berikut) | 
| out << p->info << "->"; | 
| out << "*\n"; | 
| return out; | 
| } | 
| //template <class T> | 
| List::~List() | 
| { | 
| Node* temp; | 
| for (Node* p = kepala; p;) | 
| { | 
| temp = p; | 
| p = p->berikut; | 
| delete temp; | 
| } | 
| } | 
| //template <class T> | 
| void List::sisip(char t) | 
| { | 
| cout << t <<" "<<   "masuk list :"; | 
| Node* p = nodeBaru(t,kepala); | 
| kepala = p; | 
| } | 
|  | 
| void List::sisipTengah(){ | 
| char a; | 
| cout<<"Masukan list :"; | 
| cin>>a; | 
|  | 
|  | 
| } | 
| //template <class T> | 
| char List::hapus(char& t) | 
| { | 
| if (kosong()) return 0; //penghapusan gagal | 
| t = kepala->info; | 
| Node* p = kepala; | 
| kepala = kepala->berikut; | 
| delete p; | 
| return 1; //penghapusan sukses | 
| } | 
| //template <class T> | 
| void List::cetak() | 
| { | 
| for (Node* p = kepala; p; p=p->berikut) | 
| cout << p->info << "->"; | 
| cout << "*\n"; | 
| } | 
|  | 
| int main() | 
| { | 
| List x; | 
| char data; | 
| x.sisip('a'); | 
| cout << x; | 
| x.sisip('b'); | 
| cout << x; | 
| x.sisip('c'); | 
| cout << x; | 
| x.sisip('d'); | 
| cout << x; | 
| cout<<endl; | 
| cout<<"cetak list :"; | 
| x.cetak(); | 
| cout<<endl; | 
| x.sisipTengah(); | 
|  | 
| cout<<endl; | 
| for (int i=0; i<2; i++){ | 
| x.hapus(data); | 
| cout << data <<" "<<   "dihapus dari depan list :"; | 
| cout << x; | 
| cout<<endl; | 
|  | 
| } | 
| system("PAUSE"); | 
| return EXIT_SUCCESS; | 
| } | 
Minggu, 12 Desember 2010
Praktikum Struktur Data 6
Langganan:
Posting Komentar (Atom)
 
Tidak ada komentar:
Posting Komentar