• Tidak ada hasil yang ditemukan

LAPORAN ALGORITMA DAN STRUKTUR DATA II (2)

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN ALGORITMA DAN STRUKTUR DATA II (2)"

Copied!
7
0
0

Teks penuh

(1)

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

(2)

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).

(3)

BAB II

TUGAS

Listing Program

#include<iostream>

#include<stdlib.h>

#include<stack>

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");

(4)

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; i<position - 2; i++)

{

baru = baru->link;

}

temp->link = baru->link;

baru->link = temp; }

void print()

{

node *p = head;

while (p)

{

(5)

p = p->link; }

printf(" \n \n ");

}

void Reverse()

{

stack<node*> 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;

(6)
(7)

Referensi

Dokumen terkait

Kondisi linked list masih kosong atau posisi penyisipan kurang dari atau sama dengan 1 Jika kondisi ini terjadi, maka langkah yang dilakukan adalah sangat mudah yaitu dengan

Sedangkan penghapusan elemen dilakukan di ujung yang berbeda, yaitu pada posisi elemen yang masuk paling awal atau elemen terdepan.. Sifat yang demikian dikenal

Dengan  circular  array,  meskipun  posisi  terakhir  telah  terpakai,  elemen  baru  tetap  dapat  ditambahkan  pada  posisi  pertama  jika  posisi  pertama 

Fungsi-fungsi stack yang digunakan adalah struct STACK yaitu untuk membuat jenis data abstrak stack, bool isfull() yaitu fungsi untuk mengetahui apakah stack dalam

terlebih dahulu setiap kali ada penambahan elemen stack, asalkan stack masih belum penuh, kemudian isikan nilai baru ke stack berdasarkan indeks top of stack setelah

lain, waktu konstan per operasi, tidak bergantung berapa banyak item yang tersimpan dalam stack).... Jadi, stack

 Baca code beserta panduan proses yang terjadi, pahami, lalu gambarkan ilustrasi proses terjadinya penghapusan di belakang.. Misalkan saja data pada Linked List

Untuk menyisipkan sebuah elemen baru ke dalam sebuah linked list pada posisi tertentu kita harus menemukan terlebih dahulu alamat memori dari elemen yang akan disisipi..