Bismillah,
Assalamualaikum Wr.Wb.
Hello My Name Is Alif Yoga Prasetya 😉
Disini Saya Akan Membagikan Tugas Perkuliahan Dengan Mata Kuliah " Struktur Data "
Linked List atau dikenal juga dengan sebutan senarai berantai adalah struktur data yang terdiri dari urutan record data dimana setiap record memiliki field yang menyimpan alamat/referensi dari record selanjutnya (dalam urutan). Elemen data yang dihubungkan dengan link pada Linked List disebut Node. Biasanya didalam suatu linked list, terdapat istilah head dan tail.
- Head adalah elemen yang berada pada posisi pertama dalam suatu linked list
- Tail adalah elemen yang berada pada posisi terakhir dalam suatu linked list
Ada beberapa macam Linked List, yaitu :
- Single Linked List
- Double Linked List
- Circular Linked List
- Multiple Linked List
Single Linked List
Single Linked List merupakan suatu linked list yang hanya memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya field pada tail menunjuk ke NULL.
contoh :
contoh codingannya :
struct Mahasiswa{
char nama[25];
int usia;
struct Mahasiswa *next;
}*head,*tail;
Double Linked List
Double Linked List merupakan suatu linked list yang memiliki dua variabel pointer yaitu pointer yang menunjuk ke node selanjutnya dan pointer yang menunjuk ke node sebelumnya. Setiap head dan tailnya juga menunjuk ke NULL.
contoh :
contoh codingannya :
struct Mahasiwa{
char nama[25];
int usia;
struct Mahasiswa *next,*prev;
}*head,*tail;
Circular Linked List
Circular Linked List merupakan suatu linked list dimana tail (node terakhir) menunjuk ke head (node pertama). Jadi tidak ada pointer yang menunjuk NULL. Ada 2 jenis Circular Linked List, yaitu :
Circular Single Linked List
Circular Double Linked List
Multiple Linked List
Multiple Linked List merupakan suatu linked list yang memiliki lebih dar 2 buat variabel pointer.
contoh :
Contoh Program :
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
using namespace std;
int pilih; void pilihan();
struct SIMPUL{
char nim[20];
char nama [40];
char gender [20];
int info;
float nilai;
SIMPUL *prev, *next;
};
SIMPUL *data, *front=NULL, *rear=NULL,*help,*del, *q;
void BUAT_SIMPUL(int X)
{
data=(SIMPUL *)malloc(sizeof(SIMPUL));
if(data!=NULL)
data->info=X;
else
{
cout<<"Membuat simpul gagal";
exit(1);
}
}
void buat_data()//fungsi membuat data data
{
data = new(SIMPUL);
cout<<" Masukkan Nama : ";cin>>data->nama;
cout<<" Masukkan NIM : ";cin>>data->nim;
cout<<" Masukkan Gender : ";cin>>data->gender;
cout<<" Masukkan Nilai : ";cin>>data->nilai;
cout<<"\n ==========================";
cout<<"\n Data telah dimasukkan ";
getch();
data->prev=NULL;
data->next=NULL;
}
void insert_data()
{
buat_data();
if(front==NULL)
{
front=data;
rear=data;
rear->next=NULL;
}
else
{
rear->next=data;
rear=data;
rear->next=NULL;
}
cout<<endl<<endl;
}
void hapus_data()//fungsi penghapusan data
{
int hapus;
if(front==NULL)
{
cout<<" stack kosong"<<endl;
getch();
}
else
{
hapus=front->info;
cout<<" Data awal sudah dihapus";
del = front;
q = front->next;
front=q;
delete del;
getch();
}
}
void cetak_data()
{
if (rear==NULL){
cout<<" Linked List kosong!";
getch();
}
else
{
help=front;
while(help!=NULL)
{
cout<<" Nama : "<<help->nama<<endl;
cout<<" NIM : "<<help->nim<<endl;//data akan muncul dengan tampilan
cout<<" Gender : "<<help->gender<<endl;
cout<<" Nilai : "<<help->nilai<<endl;
cout<<endl;
help=help->next;
}
getch();
}
}
int main()//interface monitor
{
do
{
system("cls");
cout<<" STACK LINKED LIST WITH HEAD"<<endl;
cout<<" ============================="<<endl;
cout<<" 1. INSERT DATA"<<endl;
cout<<" 2. HAPUS DATA"<<endl;
cout<<" 3. CETAK DATA"<<endl;
cout<<" 4. EXIT"<<endl;
cout<<" ============================="<<endl;
cout<<" Pilihan : ";
cin>>pilih;
cout<<" ============================="<<endl;
cout<<endl;
pilihan();
}
while(pilih!=4);
}
void pilihan()//fungsi "pilihan" untuk pemrosesan
{
if(pilih==1){
insert_data();}
else if(pilih==2)
hapus_data();
else if(pilih==3)
cetak_data();
else
{
cout<<" Yeay Sudah Selesai, See You Again "<<endl;
}
TAMPILAN OUTPUT
INPUT DATA KE-1
INPUT DATA KE-2
INPUT DATA KE-3
CETAK DATA
HAPUS DATA
TAMPILAN DATA SETELAH DIHAPUS
EXIT
Wa'alaikumussalam Warahmatullahi Wabarakatuh 😎
Tidak ada komentar:
Posting Komentar
Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.