#include <cstdlib>
#include <iostream>
using namespace std;
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;
}
int main(int argc, char *argv[])
linklist post;
cout << "isi data"<<endl;
post.tambah(9);
post.tambah(7);
post.tambah(2);
post.tambah(6);
post.tambah(13);
post.tambah(19);
post.tambah(1);
post.tambah(17);
post.tambah(15);
post.tambah(11);
post.tambah(5);
post.tambah(31);
post.tampil();
cout << "hapus data 13"<<endl;
post.hapus(13);
post.tampil();
cout << "\nhapus data 11"<<endl;
post.hapus(11);
post.tampil();
cout << "\nhapus data 2"<<endl;
post.hapus(2);
post.tampil();
cout << "\nhapus data 19"<<endl;
post.hapus(19);
post.tampil();
cout << "\nsisip data 99 pada posisi ke 5"<<endl;
post.sisip(4,99);
post.tampil();
cout << "\nsisip data 35 pada posisi ke 3"<<endl;
post.sisip(2,35);
post.tampil();
cout << "\nsisip data 73 pada posisi ke 7"<<endl;
post.sisip(6,73);
post.tampil();
cout << "\ntambah data 23 di depan"<<endl;
post.tambahdepan(23);
post.tampil();
cout << "\ntambah data 89 di belakang"<<endl;
post.tambahbelakang(89);
post.tampil();
{
system("PAUSE");
return EXIT_SUCCESS;
}
0 komentar:
Posting Komentar