loading...
loading...

Wednesday, August 31, 2016

Implementasi Stack dan Code nya C++



Implementasi Stack dan Code nya C++



Sama halnya dengan data pada konsep stack di algoritma dan pemrograman. Stack (tumpukan) inilah yang menerapkan konsep yang kita kenal dengan LIFO (Last-In-First-Out) atau FCLS (First-Come-Last-Serve), artinya elemen struktur yang dimasukkan ke dalam rangkaian terakhir kali maka akan muncul pertama kali apabila ditampilkan/dikeluarkan.
Pada konsep Last-In-First-Out, yang terakhir masuk yang pertama kali keluar. Jika ada sebanyak NOEL elemen pada sebuah stack, maka elemen ke-NOEL merupakan elemen TOP.
Berikut ini adalah operator-operator atau nama method yang biasa digunakan dalam pemrograman algoritma stack.
- PUSH: penyisipan (Memasukkan elemen).
- POP: penghapusan (Mengeluarkan elemen puncak).
- IsEmpty: operator yang memeriksa apakah stack kosong.
- IsFull: operator yang memeriksa apakah stack penuh.
- Clear: operator untuk menghapus stack.
Berikut ini adalah contoh program simulasi stack menggunakan bahasa C++


header file



#include <iostream>
#include <vector>
using namespace std;

template <class T>
class Stack{

private:
vector<T> data;

public:
bool Empty(); //checks if stack is empty
void Push(T item); //adds item to stack
T Top(); //returns item at top of stack
void Pop(); //removes item at top of stack
friend ostream& operator<<(ostream&out, const Stack &s); //overloaded output operator

};

implementation file

#include <iostream>
#include <vector>
#include "Stack.h"
using namespace std;

template <class T>
bool Stack<T>::Empty() //checks if stack is empty
{
return data.empty();
}

template <class T>
void Stack<T>::Push(T item) //adds item to stack
{
data.push_back(item);

}

template <class T>
T Stack<T>::Top() //returns item at top of stack
{
if(data.back()>-1)
return data.back();

else
cerr<<"Stack is empty\n";
}

template <class T>
void Stack<T>::Pop() //removes item at top of stack
{
data.pop_back();
}

template <class T>
ostream & operator<<(ostream&out, const Stack<T> &s) //overloaded output operator
{
while(!s.Empty())
{
out<<s.Top();
s.Pop();
}return out;
}

driver file

#include <iostream>
#include <vector>
#include <string>
#include "Stack.h"
#include <fstream>
using namespace std;

int main()
{
ifstream inFile;
ofstream outFile;
inFile.open("palindrome.txt");
outFile.open("outfile.txt");

Stack<string> s;
string holdPalindrome="";
//I know the following isn't really right but I stopped here
while(inFile)
{
holdPalindrome.append(s.Top());
outFile<<holdPalindrome<<endl;
}

inFile.close();
outFile.close();

return 0;
}


sekian
semoga bermanfaat dan terima kasih.
www.ayeey.com www.resepkuekeringku.com www.desainrumahnya.com www.yayasanbabysitterku.com www.luvne.com www.cicicookies.com www.tipscantiknya.com www.mbepp.com www.kumpulanrumusnya.com www.trikcantik.net

0 comments:

Post a Comment