CONTOH PROGRAM & SOURCE CODE
"LINKED LIST" DI C++
1.Program Linked List 1
#include<stdio.h>//deklarasi file header c
#include<stdlib.h>
#include<malloc.h>
#include<conio.h>// deklarasi file header untuk tampilan pada c++
typedef struct nod
//definisi type adalah struct nod
{
int data;
struct nod *next;
//deklarasi variable bertipe integer dan struct
}
NOD, *NODPTR;
void CreateSenarai (NODPTR *s)
//deklarasi untuk membuat Seranai kosong yang baru
{
*s = NULL;
//mendeklarasikan bahwa Seranai baru masih kosong
}
NODPTR NodBaru(int m)
//membuat Nod baru bertipe integer dengan variabel m.
{
NODPTR n;
n= (NODPTR) malloc(sizeof(NOD));
if (n !=NULL)
/*kondisi jika n tidak sama dengan NULL
maka program akan menjalankan pernyataan pada kurung kurawal dibawah ini*/
{
n-> data = m;
n-> next = NULL;
}
return n;
//mendeklarasikan program untuk kembali ke n.
}
void InsertSenarai (NODPTR *s, NODPTR t, NODPTR p)
//deklarasi untuk menyisipkan data kedalam seranai
{
if (p==NULL)
/*kondisi jika p sama dengan NULL
maka pernyataan dalam kurung kurawal diawah ini akan dijalankan,
jika lainnya maka pernyataan dalam kurung kurawal dibawah else
yang akan dijalankan.*/
{
t -> next = *s;
*s = t;
}
else
{
t -> next = p -> next;
p -> next = t;
}
}
void DisplaySenarai(NODPTR s)
//deklarasi untuk menampilkan Seranai
{
NODPTR ps;
for (ps = s; ps != NULL; ps = ps -> next)
printf("%d --> ",ps -> data);
printf("NULL\n");
getch();
/*deklarasi untuk ps=s; ps!=NULL; ps=ps-> next
kemudian program akan menampilkan nilai ps data diikuti NULL pada akhir data*/
}
int main()
{
//deklarasi menghapus layar
NODPTR pel;
NODPTR n;
int i,k, nilai;
//deklarasi variabel bertipe integer
CreateSenarai(&pel);
printf("=================================\n");
printf("====== Program Linked List ======\n");
printf("=================================\n");
printf(" Masukan banyak data Seranai : ");
scanf ("%d", &k);
//deklarasi untuk menginput data seranai
printf("\n=================================\n\n");
for(i=1;i<=k;i++)
//deklarasi untuk i=1; i lebih kecil sama dengan k; kemudian i melakukan penambahan 1
{
printf ("Masukan data senarai ke- %d : ",i);
scanf ("%d", &nilai);
//deklarasi untuk menginput data seranai
n = NodBaru (nilai);
InsertSenarai (&pel, n, NULL);
//deklarasi untuk menyisipkan sebuah seranai
}
printf("=================================\n");
DisplaySenarai (pel);
//deklarasi untuk mencetak seranai yang telah dibuat tadi
return 0;
//deklarasi untuk kembali pada fungsi 0.
}
2.Program Linked List 2
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
//#include <alloc.h>
using namespace std;
int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void tampil();
struct simpul
{
char nim[8], nama [20];
int umur;
struct simpul *next;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;
void clrscr()
{
system("cls");
}
int main()
{
do
{
clrscr();
cout<<"MENU SINGLE LINKEDLIST"<<endl;
cout<<"1. Tambah Depan"<<endl;
cout<<"2. Tambah Belakang"<<endl;
cout<<"3. Hapus Depan"<<endl;
cout<<"4. Hapus Belakang"<<endl;
cout<<"5. Tampilkan"<<endl;
cout<<"6. Selesai"<<endl;
cout<<"Pilihan Anda : ";
cin>>pil;
pilih();
} while(pil!=6);
return 0;
}
void pilih()
{
if(pil==1)
tambah_depan();
else if(pil==2)
tambah_belakang();
else if(pil==3)
hapus_depan();
else if(pil==4)
hapus_belakang();
else if(pil==5)
tampil();
else
cout<<"selesai";
}
void buat_baru()
{
baru=(simpul*)malloc(sizeof(struct simpul));
cout<<"input nim : ";cin>>baru->nim;
cout<<"input nama : ";cin>>baru->nama;
cout<<"input umur : ";cin>>baru->umur;
baru->next=NULL;
}
void tambah_belakang()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
}
else
{
akhir->next=baru;
}
akhir=baru;
akhir->next=NULL;
cout<<endl<<endl;
tampil();
}
void tambah_depan()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
akhir->next=NULL;
}
else
{
baru->next=awal;
awal=baru;
}
cout<<endl<<endl;
tampil();
}
void hapus_depan()
{
if (awal==NULL)
cout<<"Kosong";
else
{
hapus=awal;
awal=awal->next;
free(hapus);
}
cout<<endl<<endl;
tampil();
}
void hapus_belakang()
{
if (awal==NULL)
cout<<"Kosong";
else if(awal==akhir)
{
hapus=awal;
awal=awal->next;
free(hapus);
}
else
{
hapus=awal;
while(hapus->next!=akhir)
hapus=hapus->next;
akhir=hapus;
hapus=akhir->next;
akhir->next=NULL;
free(hapus);
}
cout<<endl<<endl;
tampil();
}
void tampil()
{
if (awal==NULL)
cout<<"Kosong";
else
{
bantu=awal;
while(bantu!=NULL)
{
cout<<"nim : "<<bantu->nim;
cout<<" nama : "<<bantu->nama;
cout<<" umur : "<<bantu->umur<<endl;
bantu=bantu->next;
}
}
getch();
}
makasih om ngebantu juga nih hehe
BalasHapusmakasih gan sangat membatu ini ane lagi ujian lab... kebetualan open google....
BalasHapusthansk
makasi gan, ane juga lagi ujian wkwkw :v
BalasHapussip gan membantu pas ujian gan
BalasHapusminta penjelasan program linked kist yang kedua dong...
BalasHapusles privat lah gan hehehe
Hapusmakasih gan sangat membantu :)
BalasHapusXCODEPLUS - The Best Resource to Learn to Code
BalasHapusC++ & C# Tutorials and more...
http://www.xcodeplus.net/
Website Seputar Programing Indonesia
makasih bang,sangat membantu sekali
BalasHapus