Senin, 10 Januari 2011

Prak 6 ( Responsi s"data)

#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;
    x.cetak();
}
system("PAUSE");
return EXIT_SUCCESS;
}

Tidak ada komentar:

Posting Komentar

Entri Populer