Linked List tidak lain adalah suatu struktur data yang merupakan suatu rangkaian atau daftar record berjenis sama,kemudian di hubungkan melalui bantuan pointer.Pengalokasian daftar dapat dilakukan secara dinamis sehingga isi dari daftar dapat dimanipulasi.
Program ini merupakan contoh dari double linked lisk,dimana kita dapan masukan data dari depan maupun dari belakang.
#include "stdio.h"
typedef struct Tnode
{
int value;
Tnode *next;
Tnode *back;
};
Tnode *baru, *bantu, *head, *tail;
void tambah (int value)
{
baru = new Tnode;
baru ->next = baru;
baru -> back = baru;
baru -> value = value;
}
void tambahdepan (int value) {
tambah(value);
if(head==NULL)
head = tail = baru;
else {
baru ->next = head;
head ->back = baru;
head = baru;
}
tail->next = head;
head->back = tail;
}
void tambahbelakang (int value){
tambah (value);
if (head ==NULL)
head =tail=baru;
else{
tail->next=baru;
baru->back=tail;
tail=baru;
}
tail->next=head;
head->back=tail;
}
void cetak(){
bantu = head;
do
{
printf("%d", bantu->value);
bantu = bantu->next;
}
while (bantu !=head);
}
void menu(){
int pil;
int isi;
do {
printf("menu:\n1.Masukan dari depan\n2.masukan dari belakang\n3.cetak\n4.Exit\nMasukkan pilihan anda : ");
scanf("%d",&pil);
switch(pil){
case 1 :
printf("masukan nilai : ");
scanf("%d",&isi);
tambahdepan(isi);
printf("\n\n");
break;
case 2:
printf("masukan nilai");scanf("%d",&isi);
tambahbelakang(isi);
break;
case 3 :cetak();printf("\n");
break;
case 4:
printf("***matur sembah sewu nuwun bro**\n");
break;
default:
printf("Tidak ada pilihan tersebut, masukan angka dari 1 sampai 3");
}
} while (pil!=4);
}
int main() {
menu();
return 0;
}
Comments