struct simpul{
int data;
simpul *next;
} *awal=NULL,*akhir=NULL,*baru, *bantu, *hapus;
int data;
simpul *next;
} *awal=NULL,*akhir=NULL,*baru, *bantu, *hapus;
void hapus_awal(){
hapus = awal;
awal = awal->next;
delete hapus;
}
hapus = awal;
awal = awal->next;
delete hapus;
}
void hapus_tengah(int number){
int count=1;
bantu=awal;
while(bantu){
if(count==number-1){ //berhenti di posisi sebelum node yang akan dihapus
hapus=bantu->next; //hapus menjadi node setelah bantu
bantu->next=hapus->next; //bantu->next mengarah sama seperti hapus->next
delete hapus; //delete hapus
break;
}
count++;
bantu=bantu->next;
}
}
void hapus_akhir(){
bantu=awal;
while(bantu){
if(bantu->next==akhir){
hapus=akhir;
akhir=bantu;
akhir->next=NULL;
delete hapus;
break;
}
bantu=bantu->next;
}
}
SINGLE LINKED LIST CIRCULAR
struct simpul{
int data;
simpul *next;
} *awal=NULL,*akhir=NULL,*baru, *bantu, *hapus;
void hapus_awal(){
hapus = awal;
awal = awal->next;
akhir->next = awal;
delete hapus;
}
void hapus_tengah(int number){
int count=1;
bantu=awal;
while(bantu){
if(count==number-1){ //berhenti di posisi sebelum node yang akan dihapus
hapus=bantu->next; //hapus menjadi node setelah bantu
bantu->next=hapus->next; //bantu->next mengarah sama seperti hapus->next
delete hapus; //delete hapus
break;
}
count++;
bantu=bantu->next;
}
}
void hapus_akhir(){
bantu=awal;
while(bantu){
if(bantu->next==akhir){
hapus=akhir;
akhir=bantu;
akhir->next=awal;
delete hapus;
break;
}
bantu=bantu->next;
}
}
int data;
simpul *next;
} *awal=NULL,*akhir=NULL,*baru, *bantu, *hapus;
void hapus_awal(){
hapus = awal;
awal = awal->next;
akhir->next = awal;
delete hapus;
}
void hapus_tengah(int number){
int count=1;
bantu=awal;
while(bantu){
if(count==number-1){ //berhenti di posisi sebelum node yang akan dihapus
hapus=bantu->next; //hapus menjadi node setelah bantu
bantu->next=hapus->next; //bantu->next mengarah sama seperti hapus->next
delete hapus; //delete hapus
break;
}
count++;
bantu=bantu->next;
}
}
void hapus_akhir(){
bantu=awal;
while(bantu){
if(bantu->next==akhir){
hapus=akhir;
akhir=bantu;
akhir->next=awal;
delete hapus;
break;
}
bantu=bantu->next;
}
}
DOUBLY LINKED LIST NON-CIRCULAR
struct simpul{
int data;
simpul *next, *prev;
} *awal=NULL,*akhir=NULL,*baru, *bantu, *hapus;
int data;
simpul *next, *prev;
} *awal=NULL,*akhir=NULL,*baru, *bantu, *hapus;
void hapus_awal(){
hapus = awal;
awal = awal->next;
awal->prev = NULL;
delete hapus;
}
hapus = awal;
awal = awal->next;
awal->prev = NULL;
delete hapus;
}
void hapus_tengah(int number){
int count=1;
bantu=awal;
while(bantu){
if(count==number-1){ //berhenti di posisi sebelum node yang akan dihapus
hapus=bantu->next; //hapus menjadi node setelah bantu
hapus->next->prev=bantu; //node setelah hapus prevnya mengarah ke bantu
bantu->next=hapus->next; //bantu->next mengarah sama seperti hapus->next
delete hapus; //delete hapus
break;
}
count++;
bantu=bantu->next;
}
}
int count=1;
bantu=awal;
while(bantu){
if(count==number-1){ //berhenti di posisi sebelum node yang akan dihapus
hapus=bantu->next; //hapus menjadi node setelah bantu
hapus->next->prev=bantu; //node setelah hapus prevnya mengarah ke bantu
bantu->next=hapus->next; //bantu->next mengarah sama seperti hapus->next
delete hapus; //delete hapus
break;
}
count++;
bantu=bantu->next;
}
}
void hapus_akhir(){
hapus = akhir;
akhir = akhir->prev;
akhir->next = NULL;
delete hapus;
}
hapus = akhir;
akhir = akhir->prev;
akhir->next = NULL;
delete hapus;
}
DOUBLY LINKED LIST CIRCULAR
struct simpul{
int data;
simpul *next, *prev;
} *awal=NULL,*akhir=NULL,*baru, *bantu, *hapus;
int data;
simpul *next, *prev;
} *awal=NULL,*akhir=NULL,*baru, *bantu, *hapus;
void hapus_awal(){
hapus = awal;
awal = awal->next;
akhir->next = awal;
awal->prev = akhir;
delete hapus;
}
hapus = awal;
awal = awal->next;
akhir->next = awal;
awal->prev = akhir;
delete hapus;
}
void hapus_tengah(int number){
int count=1;
bantu=awal;
while(bantu){
if(count==number-1){ //berhenti di posisi sebelum node yang akan dihapus
hapus=bantu->next; //hapus menjadi node setelah bantu
hapus->next->prev=bantu; //node setelah hapus prevnya mengarah ke bantu
bantu->next=hapus->next; //bantu->next mengarah sama seperti hapus->next
delete hapus; //delete hapus
break;
}
count++;
bantu=bantu->next;
}
}
int count=1;
bantu=awal;
while(bantu){
if(count==number-1){ //berhenti di posisi sebelum node yang akan dihapus
hapus=bantu->next; //hapus menjadi node setelah bantu
hapus->next->prev=bantu; //node setelah hapus prevnya mengarah ke bantu
bantu->next=hapus->next; //bantu->next mengarah sama seperti hapus->next
delete hapus; //delete hapus
break;
}
count++;
bantu=bantu->next;
}
}
void hapus_akhir(){
hapus = akhir;
akhir = akhir->prev;
akhir->next = awal;
awal->prev = akhir;
delete hapus;
}
hapus = akhir;
akhir = akhir->prev;
akhir->next = awal;
awal->prev = akhir;
delete hapus;
}
0 komentar:
Posting Komentar