lalu ini source code programnya plus penjelasnnya :
#include
#include
using std::cout; //memakai standar cout pada file iostream
typedef int typeinfo; //deklarasi struktur
typedef struct typenode *typeptr; //deklarasi struktur
typedef struct typenode{typeinfo info;
typeptr next;
}; //deklarasi struktur
typeptr awal,akhir; //pointer awal dan akhir
void buatlistbaru(); //deklarasi perintah program buat list
void sisipdepan(typeinfo IB); //deklarasi perintah program sisipdepan
void sisipbelakang(typeinfo IB); //deklarasi perintah program
sisipbelakang
void sisiptengah(typeinfo IB); //deklarasi perintah program sisip
tengah
void hapuslist(typeinfo IB); //deklarasi perintah program hapus list
void cetaklist();//deklarasi perintah program setak list
int main()//fungsi ini menjadi awal dan akhir eksekusi bertipe integer
{ //awal eksekusi program
buatlistbaru(); //pembuatan list baru
sisipdepan(10); //penyisipan node di depan 10
sisipbelakang(25);//penyisipan node di belakang 25
sisipbelakang(100); //penyisipan node di belakang 100
sisiptengah(50); //penyisipan node di tengah 50
cetaklist(); //mencetak list
hapuslist(50); //menghapus list 50
cetaklist(); //mencetak list
return 0; //pengembalian nilai 0
}
void buatlistbaru() //deklarasi variabel
{
typeptr list;
list=(typenode *) malloc(sizeof(typenode));
list=NULL;
awal=list;
akhir=list;
}
void sisipdepan(typeinfo IB) //deklarasi variabel
{
typeptr NB;
NB=(typenode *) malloc(sizeof(typenode));
NB->info=IB;
if (awal==NULL)
{ awal=NB;
akhir=NB; }
else
{ NB->next=awal; }
awal=NB;
}
void sisipbelakang (typeinfo IB) //deklarasi variabel
{
typeptr NB;
NB=(typenode *) malloc(sizeof(typenode));
NB->info=IB;
if (awal==NULL)
{ awal=NB;
akhir=NB; }
else
{ akhir->next=NB;}
akhir=NB;
akhir->next=NULL;
}
void sisiptengah(typeinfo IB)//deklarasi variabel
{
typeptr NB, bantu;
NB=(typenode *) malloc(sizeof(typenode));
NB->info=IB;
NB->next=NULL;
if (awal==NULL)
{ awal=NB;
akhir=NB;
}
else
{ bantu=awal;
while ((IB > bantu->next->info) && (bantu->next!=NULL))
bantu=bantu->next;
NB->next=bantu->next;
bantu->next=NB;
}
}
void hapuslist(typeinfo IH)//deklarasian variabel
{
typeptr hapus, bantu;
if (awal==NULL)
{
cout << "List masih kosong!\n";
}
else
{ if (awal->info==IH)
{ hapus=awal;
awal=hapus->next;
free(hapus); }
else
{ bantu=awal;
while ((bantu->next->info!=IH) && (bantu->next!=NULL))
{ bantu=bantu->next; }
hapus=bantu->next;
if (hapus==NULL)
{ cout << "List tidak ditemukan\n";
}
else
{ if (hapus==akhir)
{ akhir=bantu;
akhir->next=NULL; }
else
{ bantu->next=hapus->next; }
free(hapus); }
}
}
}
void cetaklist() //deklarasian variabel
{ typeptr bantu;
bantu=awal;
while (bantu!=NULL)
{ cout << " " <<>info;
cout << " ";
bantu=bantu->next; }
}
Tidak ada komentar:
Posting Komentar