Arsip

Archive for Desember, 2010

postest praktikum sdata -6

    #include <cstdlib>
    #include <iostream>

    using namespace std;
    //template <class T>
    class Node{
    friend class List;
    friend ostream& operator<<(ostream&, const List&);
    public:
    Node(int& 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(int t);
    int hapus(char& t);
    int kosong() {return (kepala == 0);}
    void cetak();
    protected:
    Node* kepala;
    Node* nodeBaru(int& 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(int t)
    {
    cout << t << ” masuk list : “;
    Node* p = nodeBaru(t,kepala);
    kepala = p;
    }
    //template <class T>
    int 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;cout << endl;
    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 << “\n dihapus dari list : “;
    cout << x;

    }
    system(“PAUSE”);
    return EXIT_SUCCESS;
    }

    }

Kategori:Uncategorized