LAPORAN ALGORITMA DAN STRUKTUR DATA II (2)

LAPORAN PRAKTIKUM
ALGORITMA DAN STRUKTUR DATA II
MODUL III
IMPLEMENTASI LINKED LIST PADA
STACK

Disusun Oleh :
Syukur Jaya Mendrofa
201501072
Kelas: C

Dosen Pengampu :
Oskar Ika Adi Nugroho, ST., MT

JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER “YOS SUDARSO”
PURWOKERTO
2016

BAB I
DASAR TEORI

1.

LINKED LIST (SENARAI BERANTAI)
Linked list (list bertaut) adalah salah satu struktur data dasar yang sangat fundamental

dalam bidang ilmu komputer. Dengan menggunakan linked list maka programmer dapat
menimpan datanya kapanpun dibutuhkan. Linked list mirip dangan array, kecuali pada
linked list data yang ingin disimpan dapat dialokasikan secara dinamis pada saat
pengoperasian program (run-time).

2.

STACK (TUMPUKAN)
Stack atau tumpukan merupakan bentuk khusus dari Linier List yang pemasukan dan

penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari
List

(Top).


Prinsip Stack adalah
LAST-IN-FIRST-OUT (LIFO)
OPERASI STACK
1. ISEMPTY

: Untuk memeriksa apakah stack kosong.

2. ISFULL

: Untuk memeriksa apakah stack sudah penuh.

3. PUSH

: Untuk menambahkan item pada posisi paling atas (TOP).

4. POP

: Untuk menghapus item paling atas (TOP).

5. CLEAR


: Untuk mengosongkan stack.

BAB II
TUGAS
Listing Program

#include
#include
#include
using namespace std;
typedef struct Node
{
int data;
struct Node *link;
}node;
node *head = NULL;
void Reverse();
void insert(int data, int position);
void print();

int main()
{
insert(8, 1);
insert(3, 2);
insert(5, 3);
insert(2, 4);
print();
Reverse();
printf("SETELAH DI REVERSE \n");
printf("\n");
print();
printf("____________________\n");
printf("\n");
printf("SYUKUR JAYA MENDROFA \n");
printf("201501072 \n");

printf("____________________");
printf("\n");
system("pause");
return 0;

}
void insert(int data, int position)
{
node *temp = (node*)malloc(sizeof(node));
temp->data = data;
temp->link = NULL;

if (position == 1)
{
temp->link = head;
head = temp;
return;
}
node *baru = head;

for (int i = 0; ilink;
}
temp->link = baru->link;
baru->link = temp;
}

void print()
{
node *p = head;
while (p)
{
printf(" \n %d \n", p->data);

p = p->link;
}
printf(" \n \n ");
}

void Reverse()
{
stack S;
node *newtemp = head;

while (newtemp != NULL)
{
S.push(newtemp);

newtemp = newtemp->link;
}

node *temp = S.top();
head = temp;
S.pop();
while (!S.empty())
{

temp->link = S.top();
S.pop();
temp = temp->link;
}
temp->link = NULL;
}

Hasil Output Program

BAB III
KESIMPULAN