DASAR PEMROGRAMAN
Modul 11 – Implementasi Stack
WINARSIH, S.Si., MMSI
2022
Universitas Nasional
Stack Dengan Link List
Implementasi Aplikasi Linked List untuk membuat tumpukan (Stack)
#pragma hdrstop
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
class SimpulTumpukan
{
public:
char data;
SimpulTumpukan* berikut;
// Konstruktor
SimpulTumpukan(char data);
};
class ListTumpukan
{
private:
SimpulTumpukan* puncak;
public:
ListTumpukan();
virtual ~ListTumpukan();
void push(char data);
bool empty();
char pop();
};
// Konstruktor
SimpulTumpukan::SimpulTumpukan(char data)
{
SimpulTumpukan::data = data;
SimpulTumpukan::berikut = NULL;
}
ListTumpukan::ListTumpukan()
{
ListTumpukan::puncak = NULL;
}
bool ListTumpukan::empty()
{
return puncak == NULL;
}
SimpulTumpukan* ptrData;
char data;
getch();
}
Hasil running :
Double Linked List adalah jenis linked list yang memiliki 2 buah pointer. Pointer
class SimpulGanda
{
public:
char data;
SimpulGanda* berikut;
SimpulGanda* sebelum;
// Konstruktor
SimpulGanda(char data);
};
class ListGanda
{
private:
SimpulGanda* pertama;
SimpulGanda* terakhir;
public:
ListGanda();
virtual ~ListGanda();
void insertFirst(char data);
void insertLast(char data);
bool insertAfter(char kunci, char data);
bool empty();
char removeFirst();
char removeLast();
bool removeKey(char data);
void displayForward();
void displayBackward();
};
// Konstruktor
SimpulGanda::SimpulGanda(char data)
{
// Konstruktor
SimpulGanda::data = data;
SimpulGanda::berikut = NULL;
terakhir = terakhir->sebelum;
delete ptrData;
return data;
}
senarai.removeKey('C');
cout << "Setelah C diambil:" << endl;
senarai.displayForward();
karakter = senarai.removeLast();
cout << "Karakter terkanan yang diambil: " << endl;
senarai.displayForward();
getch();
}