class linklist{
public:
linklist();
void tambah(int);
void tambahdepan(int);
void tambahbelakang(int);
void tampil();
void hapus(int);
void sisip(int,int);
private:
int data;
linklist *berikut,*p;
};
linklist::linklist(){
p=NULL;
}
void linklist::tambah(int info){
linklist *q,*t;
if(p==NULL){
p=new linklist;
p->data=info;
p->berikut=NULL;
}else{
q=p;
while(q->berikut != NULL)
q=q->berikut;
t=new linklist;
t->data=info;
t->berikut=NULL;
q->berikut=t;
}
}
void linklist::tambahdepan(int nilai){
linklist *q;
q = new linklist;
q->data = nilai;
q->berikut = p;
p = q;
}
void linklist::tambahbelakang(int nilai){
linklist *q,*t;
if( p == NULL )
{
p = new linklist;
p->data = nilai;
p->berikut = NULL;
}
else
{
q = p;
while( q->berikut != NULL )
q = q->berikut;
t = new linklist;
t->data = nilai;
t->berikut = NULL;
q->berikut = t;
}
}
void linklist::tampil(){
linklist *i;
for(i=p;i!=NULL;i=i->berikut){
cout<<i->data<<" "<<"-> ";
}cout<<" NULL\n";
}
void linklist::hapus(int target){
linklist *q,*r;
q=p;
if(q->data==target){
p=q->berikut;
delete q;
return;
}
r=q;
while(q!=NULL){
if(q->data==target){
r->berikut=q->berikut;
delete q;
return;
}
r=q;
q=q->berikut;
}
cout<<"\nElemen "<<target<<" tidak ada.\n";
}
void linklist::sisip(int posisi,int nilai){
linklist *q,*t;
int i;
for(i=1,q=p;i<=posisi-1;i++){
q=q->berikut;
if(q==NULL){
cout<<"\nElemen lebih kecil dari "<<posisi<<"\n ";
return;
}
}
t=new linklist;
t->data=nilai;
t->berikut=q->berikut;
q->berikut=t;
}
0 komentar:
Posting Komentar