prak 6
#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[])
{
cout<<"link list\n\n";
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;
}
No comments:
Post a Comment