Jumat, 28 Juni 2013

Tugas STRUKTUR DATA II ( LINKLIST IV )

SCRIPT LINKLIST IV


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

struct tnode {
  int info;
  tnode *next;
};
tnode *head;
tnode *baru;
tnode *bantu;
tnode *hapus;
tnode *cari;
tnode *pencacah;

int main(){
  //1. deklarasi
  int databaru;

  //Insert Kosong --> maka head baru
  databaru =10;
  baru = new tnode;
  baru->info = databaru;
  baru->next=NULL;

  head=baru;
  head->next = NULL;


  //Insert di awal head
  databaru = 9;
  baru = new tnode;
  baru->info = databaru;
  baru->next = NULL;

  baru->next = head;
  head=baru;

  //Insert di awal head
  databaru = 2;
  baru = new tnode;
  baru->info = databaru;
  baru->next = NULL;

  baru->next = head;
  head=baru;

  //Insert di awal head
  databaru = 23;
  baru = new tnode;
  baru->info = databaru;
  baru->next = NULL;

  baru->next = head;
  head = baru;

  //Insert di akhir
  databaru = 7;
  baru = new tnode;
  baru->info = databaru;
  baru->next = NULL;

  bantu = head;
  while (bantu->next != NULL ){
      bantu = bantu->next;
  }
  bantu->next = baru;

  //Insert di akhir
  databaru = 3;
  baru = new tnode;
  baru->info = databaru;
  baru->next = NULL;

  bantu = head;
  while (bantu->next != NULL ){
      bantu = bantu->next;
  }
  bantu->next = baru;



  //Menampilkan
  cout << "\n (=======Keadaan awal==========) \n";
  bantu = head;
  while (bantu != NULL) {
      cout << bantu->info << "\n";
      bantu = bantu->next;
  }

  //Hapus Depan
  hapus = head;
  head = head->next;
  delete hapus; //Menghapus dari memory

  //Hapus Belakang --> tidak bisa melihat sebelumnya
  bantu  = head;
  hapus = bantu;
  while (bantu->next != NULL) {
    bantu = bantu->next;
    hapus = bantu;
  }
  hapus->next= NULL;

  //Menampilkan
  cout << "\n (========Setelah data awal dihapus=========) \n";
  bantu = head;
  while (bantu != NULL) {
      cout << bantu->info << "\n";
      bantu = bantu->next;

  }
  // Cari Data
 bantu = head;
 int pencacah =0;
 int cari = 8;
     while (bantu !=NULL){
         if (cari ==( bantu->info )) {
         break;
}
         else{
         cout << pencacah;
         cout << bantu->info << "\n";
         bantu = bantu->next;
         pencacah +=1;
        }}

        cout << "data terakhir pada " <<pencacah;

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

Tugas STRUKTUR DATA II ( INSERTION )

SCRIPTS INSERTION

#include <stdio.h>
#include <iostream>

using namespace std;

void tampilData(int data[], int max);
void insertionSort(int data[], int max);
int main(){
    int data []= {7,4,10,9,6};
    int max = sizeof(data)/sizeof(int);
    int urut [max];

   insertionSort(data, max);

    return 0;
}
void insertionSort(int data[], int max) {
    tampilData(data, max);

    int temp;
    int j;
/*

    for (int i=1;i<max;i++) {
        temp = data[i];
        for (int j=i-1; j>=0; j++){
            if (temp>data[j]) {
                break;
            } else {
                 data[j+1] = data[j];
            }
        }
        cout << "\n";


            }
*/
    int cari = 4;
    int i;
    for (i=0; i<max; i++){
        if (data[i]==cari) {
            break;
        }
    }
    cout << "Data yang di cari ada pada Array nomor =  "  <<i<< "\n";

    for (int i=1;i<max;i++) {
        temp = data[i];
        for (int j=i-1; j>=0; j++){
            if (temp>data[j]) {
                break;
            } else {
                 data[j+1] = data[j];
            }
        }
        temp = data[i];//Data yang sesuai penunjuk dimasukkin ke temp
        tampilData(data,max);
        cout << "\n";
    }


    tampilData(data,max);
}

void tampilData(int data[], int max){
    cout << "\n";
    for (int i=0;i<max; i++) {
        cout << "\t" << data[i];
    }
       cout << "\n";

}



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;
}