Program ini menggunakan C++, dimana program yang ada di SLLNC ini , antara lain, insert depan, insert tengah, insert belakang, hapus depan, hapus tengah, hapus belakang, tampil, dan hapus semuanya,
/*********************************************************************************
* Nama Program : SINGGEL LINKED LIST NON CIRCULAR
**********************************************************************************/
#include
#include
#include
#include
typedef struct TNode
{
int data;
TNode *next;
TNode *prev;
}
TNode;
TNode *head, *tail;
void init()
{
head = NULL;
tail = NULL;
}
int isEmpty()
{
if(tail == NULL) return 1;
else return 0;
}
//Insert Depan
void insertDepan (int databaru)
{
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(head==NULL)
{
head=baru;
tail=baru;
head->next = NULL;
tail->next = NULL;
}
else
{
baru->next = head;
head = baru;
}
cout<<"Data Berasil dimasukkan, Data sekaranag adalah\n";
}
//insert tengah
void insertTengah(int value) //penambahan data di tengah
{
TNode *baru, *bantu, *bantu2;
baru = new TNode; // pembentukan node baru
baru->data = value; // pemberian nilai terhadap data baru
baru->next = NULL; // data pertama harus menunjuk ke NULL
bantu = head; // bantu diletakan di head dulu
bantu2 = bantu->next; // menghubungkan ke node setelah yang dicari
baru->next = bantu2; // menghubungkan node baru
bantu->next = baru; // menghubungkan ke node sebelum yang dicari
cout<<"Data Berasil dimasukkan, Data sekarang adalah\n";
}
// Insert Belakang
void insertBelakang(int databaru)
{
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(head==NULL)
{
head=baru;
tail=baru;
head->next = NULL;
tail->next = NULL;
}
else
{
tail->next = baru;
tail = baru;
}
cout<<"Data Berasil di masukkan, Data sekarang adalah :\n";
}
// Hapus Depan
void hapusDepan()
{
TNode *hapus;
int d;
if (isEmpty()==0)
{
if(head->next != NULL)
{
hapus = head;
d = hapus->data;
head = head->next;
delete hapus;
}
else
{
d = head->data;
head = NULL;
}
cout<<"data ("<
cout<<"Data sekarang adlah :\n";
}
else cout<<"Maaf Data Masih kosong\n";
}
// Hapus Tengah
void hapusTengah()
{
TNode *hapus,*bantu,*bantu2;
int d;
if (isEmpty()==0)
{
if(head!= NULL, tail!=NULL)
{
bantu=head;
hapus=head;
{
hapus=hapus->next;
}
bantu2=hapus->next;
bantu->next=bantu2;
d=hapus->data;
delete hapus;
}
else
{
d = head->data;
head = NULL;
}
cout<<"data ("<
cout<<"Data sekarang adlah :\n";
}
else cout<<"Maaf Data Masih kosong\n";
}
// Hapus Belakang
void hapusBelakang()
{
TNode *hapus,*bantu;
int d;
if (isEmpty()==0)
{
if(head->next != NULL)
{
bantu=head;
while(bantu->next->next!=NULL)
{
bantu=bantu->next;
}
hapus = bantu->next;
d = hapus->data;
bantu->next = NULL;
delete hapus;
}
else
{
d = head->data;
head = NULL;
}
cout<<"data ("<
cout<<"Data sekarang adlah :\n";
}
else cout<<"Maaf data masih kosong\n";
}
// Tampil
void tampil()
{
TNode *bantu;
bantu = head;
if(isEmpty()==0)
{
while(bantu!=NULL)
{
cout<
bantu=bantu->next;
}
cout<
}
else cout<<"Masih kosong\n\n";
}
// Clear
void clear()
{
TNode *bantu,*hapus;
bantu = head;
while(bantu!=NULL)
{
hapus = bantu;
bantu = bantu->next;
delete hapus;
}
head = NULL;
}
void main()
{
int data;
int pil;
do
{
cout<<"[---------MENU PILIHAN-----------]\n";
cout<<"[ 1. masukkan data dari depan ]\n";
cout<<"[ 2. masukkan data dari tengah ]\n";
cout<<"[ 3. masukkan data dari Belakang ]\n";
cout<<"[ 4. Hapus Data dari Depan ]\n";
cout<<"[ 5. Hapus Data dari tengah ]\n";
cout<<"[ 6. Hapus Data dari Belakang ]\n";
cout<<"[ 7. cetak data ]\n";
cout<<"[ 8. Clear ]\n";
cout<<"[ 9. Exit ]\n";
cout<<"[--------------------------------]\n\n";
cout<<"Pilihan : ";cin>>pil;
switch(pil)
{
case 1: printf("Masukkan Data : ");scanf("%d",&data);
insertDepan(data);
tampil();
break;
case 2: printf("Masukkan Data : ");scanf("%d",&data);
insertTengah(data);
tampil();
break;
case 3: printf("Masukkan Data : ");scanf("%d",&data);
insertBelakang(data);
tampil();
break;
case 4:"%d",hapusDepan();
tampil();
break;
case 5:"%d",hapusTengah();
tampil();
break;
case 6:"%d",hapusBelakang();
tampil();
break;
case 7: tampil();
break;
case 8: clear();
printf("Semua Data Berasil Dihapus...\n");
break;
case '9': break;
printf("terimakasih.... \n");
break;
default :cout<<"Maaf Pilihan anda Salah, Silahkan Pilih Ulang\n"<
}
getch();
}
while(pil!=11);
}
1 comment:
maksih.. mas.. ok banget tu...
Post a Comment