source code praktikum 8#include <cstdlib> #include <iostream> #define maks 5 using namespace std; class Queue{ friend ostream& operator<<(ostream&, const Queue&); public : Queue(); int penuh(int); int kosong(int); void cetak(); void enqueue(char); char dequeue(); private : char A[maks]; int banyak; }; ostream& operator<<(ostream& out, const Queue& s) { cout<<"\nIsi Queue : "; for(int i=0; i<s.banyak;i++) out<<s.A[i]<<" "; } Queue::Queue(){ banyak=0; for(int i=0;i<maks-1;i++) A[i]='0'; } int Queue::penuh(int s) {return s==maks-1 ? 1:0;} int Queue::kosong(int s) {return s==0 ? 1:0;} void Queue::cetak() {cout<<"\nIsi Queue : "; for(int i=0; i<banyak; i++) cout<<A[i]<<" "; } void Queue::enqueue(char x) { cout<<"\nElemen :"<<x<<" masuk antrian"; if(penuh(banyak))cout<<"\nQueue penuh...tidak bisa di-enqueue elemen baru"; else if(A[0]=='0'){ A[0]=x; banyak++; } else{ for(int i=banyak; i>=0; i--) A[i+1]=A[i]; A[0]=x; banyak++; } } char Queue::dequeue() { char temp=A[--banyak]; cout<<"\nDequeue elemen --> "<<temp; A[banyak]='0'; return temp; } int main(int argc, char *argv[]) { Queue q; char c; cout<<"masukkan nilai : "; cin>>c; q.enqueue(c); cout<<q; cout<<"masukkan nilai : "; cin>>c; q.enqueue(c); cout<<q; cout<<"masukkan nilai : "; cin>>c; q.enqueue(c); cout<<q; cout<<"masukkan nilai : "; cin>>c; q.enqueue(c); cout<<q; cout<<"masukkan nilai : "; cin>>c; q.enqueue(c); cout<<q; cout<<"yang dihapus : "; cin>>c; char p=q.dequeue(); q.cetak(); cout<<"masukkan nilai : "; cin>>c; q.enqueue(c); cout<<q; /*for(char c='A'; c<'E'; c++){ q.enqueue(c); cout<<q; } for(char c='E'; c<'F'; c++){ q.enqueue(c); cout<<q; } char p=q.dequeue(); q.cetak(); /*for(char c='A'; c<'A'; c++){ q.dequeue(); q.cetak();} for(char c='E'; c<='E'; c++){ q.enqueue(c); cout<<q; }*/ cout<<"\n\nCetak pakai everloading : "<<q; system("PAUSE"); return EXIT_SUCCESS; }
Arsip
All posts for the month Desember, 2010
source code practicum 8
#include <cstdlib> #include <iostream> #define maks 5 using namespace std; class Queue{ friend ostream& operator<<(ostream&, const Queue&); public: Queue(); int penuh(int); int kosong(int); void cetak(); void enqueue(char); char dequeue(); private: char A[maks]; int banyak; }; ostream& operator<<(ostream& out, const Queue& s){ out << "\nIsi Queue : "; for(int i=0; i<s.banyak; i++){ out << s.A[i] << " "; } } Queue::Queue(){ banyak=0; for(int i=0; i<maks; i++){ A[i]='O'; } } int Queue::penuh(int s){ return s==maks?1:0; } int Queue::kosong(int s){ return s==0?1:0; } void Queue::cetak(){ cout << "\nIsi queue : "; for(int i=0; i<banyak; i++){ cout << A[i] << " "; } } void Queue::enqueue(char x){ cout << "\nElemen : " << x << " masuk antrian"; if(penuh(banyak)){ cout << "Antrian Penuh"; } else if(A[0]==0){ A[0]=x; banyak++; } else{ for(int i=banyak; i>=0; i--) A[i+1]=A[i]; A[0]=x; banyak++; } } char Queue::dequeue(){ char temp=A[--banyak]; cout << "\nDequeue elemen --> " << temp; A[banyak]='O'; return temp; } int main(int argc, char *argv[]) { Queue q; for(char c='a'; c<'d'; c++){ q.enqueue(c); cout << q; } char p=q.dequeue(); cout << endl; q.cetak(); cout << endl; cout << "Cetak pakai overloading : " << q; system("PAUSE"); return EXIT_SUCCESS; }
output dari program di atas adalah :
source code praktikum 7#include <cstdlib> #include <iostream> #define maks 5 </pre> using namespace std; class Stack{ friend ostream& operator<<(ostream&, const Stack&); public: Stack(); int penuh(int); int kosong(int); void cetak(); void push(char); char pop(); private: char A[maks]; int banyak; }; ostream& operator<<(ostream& out, const Stack& s) { cout << "\nIsi stack : "; for (int i=0;i< s.banyak;i++) out << s.A[i] << " "; } Stack::Stack(){ banyak = 0; for (int i=0; i<maks; i++) A[i] = '0'; } int Stack::penuh(int s) { return s == maks ? 1 : 0; } int Stack::kosong(int s) { return s == 0 ? 1 : 0; } void Stack::cetak() { cout << "\nIsi stack :"; for (int i=0;i< banyak;i++) cout << A[i] << " "; } void Stack::push(char x) { cout << "\nElemen masuk :" <<x; cout<<"\n"; if (penuh(banyak)) cout << "Stack penuh"; else if (A[0]=='0'){ A[0] = x; banyak++; } else { for (int i=banyak; i>=0; i--) A[i+1] = A[i]; A[0] = x; banyak++; } } char Stack::pop() { cout <<"\nPop stack, elemen yang di-pop :" << A[0]; char temp=A[0]; for (int i=0;i<banyak; i++) A[i] = A[i+1]; A[banyak]= '0'; banyak--; return temp; } int main(int argc, char *argv[]) { Stack stack; // for (char c='a'; c<'d'; c++){ stack.push(')'); stack.push('a'); stack.push('+'); stack.push('b'); stack.push('('); stack.push('('); stack.cetak(); char p = stack.pop(); stack.cetak(); cout << "\n\nCetak pakai overloading : " <<stack; cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }<p
TDA Double link list :
Instans :
Kumpulan informasi biasanya berupa karakter huruf kecil
Operation :
disini perintahnya disuruh membuat_node(char x) : membuat node baru dengan informasi karakter x
Tambah_elemen_didepan() : menambah elemen paling depan (pointernya menunjuk elemen pertama link list dan ditunjuk oleh elemen pertama link list)
Tambah_elemen_dibelakang() : menambah elemen paling belakang (pointer elemen terakhir link list menunjuk elemen baru dan elemen terakhir link list ditunjuk oleh elemen baru)
Tampilkan() : menelusuri elemen demi elemen dan menampilkan informasinya
Kelas Double link list diatas diasumsikan sebagai berikut :
Class Node{
…
private :
char info;
Node *berikut; // untuk menunjuk ke node berikutnya
Node *sebelum; // untuk menunjuk ke node sebelumnya
};
Menambahkan elemen baru di depan dengan informasi ‘p’ :
Node *baru;
baru->info = ’p’;
baru->berikut = firstNode;
firstNode<-sebelum = baru;
baru<-sebelum=NULL;
firstNode = baru;
Menambahkan elemen baru di belakang dengan informasi ‘w’ :
Baru->info = ‘w’;
lastNode->berikut = baru;
baru->berikut = NULL;
baru<-sebelum = lastNode;
lastNode = baru;