Jumat, 28 Juni 2013

Tugas STRUKTUR DATA II

SCRIPTS  DOUBLELINKLIST

#include <iostream>
#include <stdio.h>
using namespace std;

struct TNode{
    int info;
    TNode *prev;
    TNode *next;

};
TNode *counter;
TNode *baru;
TNode *head;
TNode *tail;
TNode *bantu, *bantu1, *bantu2, *n;


int main()
{

    //insert di depan (data masih kosong)
    baru=new TNode;
    baru->info=5;
    baru->next=NULL;
    baru->prev=NULL;
    cout <<baru->info <<"   <== data pertama yang ditambahkan ===> \n";

    head=baru;
    tail=baru;

    //insert di belakang ---> satu kali
    baru=new TNode;
    baru->info=6;
    baru->next=NULL;
    baru->prev=NULL;
    cout << baru->info << "\n";

    baru->prev=tail;
    tail->next=baru;
    tail=tail->next;

    //insert di belakang ---> satu lagi
    baru=new TNode;
    baru->info=7;
    baru->next=NULL;
    baru->prev=NULL;
    cout << baru->info << "\n";

    baru->prev=tail;
    tail->next=baru;
    tail=tail->next;

    //insert di depan
    baru=new TNode;
    baru->info=8;
    baru->next=NULL;
    baru->prev=NULL;
    cout << baru->info << "\n";

    baru->next=head;
    head->prev=baru;
    head=head->prev;



    //mencari data
    bantu=head;
    for (int i=0;i<2;i++){
        //cout << data ke:  "\n";
        bantu=bantu->next;
    }
    //hapus data di tengah
    bantu=head;
    for (int i=0; i<2; i++){
        bantu=bantu->next;
            }
    cout << "\n <==== SETELAH DATA AWAL DIHAPUS ====> \n \n";
    cout << bantu->info << " = Data Tengah Sudah Dihapus \n";
    bantu->next->prev=bantu->prev;
    bantu->prev->next=bantu->next;

    //hapus data di belakang
    cout << "\n <==== SETELAH DATA AKHIR DIHAPUS ====> \n \n";
    cout << tail->info << " = Tail sudah dihapus \n";
    tail=tail->prev;
    tail->next=NULL;


    cout << "\n === data terbaru === \n";
    //tampil data di depan
    bantu=head;
    while (bantu!=NULL){
        cout << bantu->info; "\n";
        bantu=bantu->next;

    }

    //tampil data di belakang
    bantu=tail;
    while (bantu!=NULL) {
        cout << bantu->info; "\n";
        bantu=bantu->prev;
    }

    //insert data di tengah
    baru=new TNode;
    baru->info=35;
    baru->next=NULL;
    baru->prev=NULL;
    cout << baru->info << "\n";

    baru->next=bantu->next;
    baru->prev=bantu;
    bantu->next=baru;
    bantu->next->prev=baru;

    cout << "\n -----data terbaru-----\n";
    //tampil data di depan
    bantu=head;
    while (bantu!=NULL){
        cout << bantu->info; "\n";
        bantu=bantu->next;

    }

    //tampil data di belakang
    bantu=tail;
    while (bantu!=NULL) {
        cout << bantu->info; "\n";
        bantu=bantu->prev;
    }


    cout << "\n";
    return 0;
}

Tidak ada komentar:

Posting Komentar