single linkedlist menggunakan bahasa pemrograman borland c++

Lagi-lagi hanya sebuah catatan pribadi :) dari seorang mahasiswa yang sering telat kuliah :) kali ini saya akan bikin single linkedlist secara keseluruhan (tambah data depan/belakang,hapus data depan/belakang)

Linked list atau senarai adalah struktur data berisis kumpulan data / node yang tersusun secara sequential, saling sambung menyambung dan dinamis,

Linked list ini mirip array, namun linked list ini bersifat dinamis, penambahan dan penghapusan data tidak terbatas, sequential acces, dan penghapusan data mudah,
berikut ini saya akan mencoba menuliskan linkedlist menggunakan borland c++,,

listing program:

#include
#include

//author by anggoroz
struct simpul
{
int nilai;
struct simpul *next;
};
struct simpul *baru=NULL, *akhir=NULL, *awal=NULL;
void buatbaru()
{
struct simpul *bantu = NULL;
baru = (struct simpul*)malloc(sizeof(struct simpul));
bantu = awal;
printf(“Silahkan masukan nilai = “);scanf(“%d”, &baru->nilai);
while(bantu!=NULL)
{
if(bantu->nilai==baru->nilai)
{
printf(“Data yang anda masukan sudah sama silahkan masukan nilai lagi\n”);
buatbaru();
}
bantu=bantu->next;
}
baru->next = NULL;
}
void tambahbelakang()
{
buatbaru();
if(awal==NULL)
{
awal = baru;
akhir = baru;
}
else
{
akhir->next=baru;
akhir = baru;
}
}
void tambahdepan()
{
buatbaru();
if(awal==NULL)
{
awal = baru;
akhir = baru;
}
else
{
baru->next=awal;
awal = baru;
}
}
void hapusdepan()
{
struct simpul *bantu;
if(awal==NULL)
printf(“node empty”);
else
{
bantu=awal;
awal=bantu->next;
free(bantu);
}
}
void hapusbelakang()
{
struct simpul *bantu;
if(awal==NULL)
printf(“node empty”);
else
{
bantu=awal;
while(bantu->next != NULL)
{
bantu = bantu->next;
}
akhir = bantu;
bantu = akhir->next;
akhir->next=NULL;
free(bantu);
}
}
void tampil()
{
struct simpul *bantu = NULL;
printf(“Kondisi linklist sekarang\n”);
if(awal==NULL)
printf(“Tidak ada simpul\n”);
else
{
bantu = awal;
while (bantu != NULL)
{
printf(“%d “, bantu->nilai);
bantu=bantu->next;

}
}

}
void menu()
{
clrscr();
tampil();
printf(“\n”);
printf(“\n1. Tambah Depan \n”);
printf(“2. Tambah Tengah \n”);
printf(“3. Tambah Belakang \n”);
printf(“4. Hapus Depan \n”);
printf(“5. Hapus Tengah \n”);
printf(“6. Hapus Belakang \n”);
printf(“Tekan Esc untuk keluar \n”);
printf(“Silahkan masukan pilihan Anda ?\n”);
}
void tambahtengah()
{
struct simpul *bantu =NULL;
int x = NULL, i;
bantu = awal;
buatbaru();
if(awal==NULL)
{
awal =baru;
akhir = baru;
}
else
{
printf(“Setelah pada urutan linklist ke berapa ? “);
scanf(“%d”,&x);
x=x-1;
for(i=0;inext;
}
baru->next=bantu->next;
bantu->next=baru;

}
}
void hapustengah()
{

}
main()
{
char key = 0;
clrscr();
while(key != 27)
{
menu();
switch(key)
{
case ’1′ : tambahdepan(); break;
case ’2′ : tambahtengah(); break;
case ’3′ : tambahbelakang(); break;
case ’4′ : hapusdepan(); break;
case ’5′ : hapustengah(); break;
case ’6′ : hapusbelakang(); break;
}
key=getch();
}
getch();
}



sumber

Post a Comment

0 Comments