Operasi Operasi Algoritma Double Linked List Dalam Bahasa C++

Contoh Pseudocode Algoritma Double Linked List dalam Struktur Data
ISALLAB.COM – Halo teman-teman, di postingan kali ini saya akan membahas seputar tentang Operasi Operasi Algoritma Double Linked List Dalam Bahasa C++. Nah sebelum kita bahas algoritma pseudocodenya kita harus mengetahui apakah itu Pseudocode, kamu bisa baca artikel tentang pseudocode di sini :
BACA JUGA : Pengertian Pseudocode Bagi Pemula Yang Ingin Belajar Algoritma
Silahkan baca sampai bawah artikel ini agar kamu lebih paham 🙂
Beberapa hal yang akan saya bahas dalam tutorial Operasi Operasi Algoritma Double Linked List Dalam Bahasa C++ yaitu :
(klik link dibawah ini agar langsung ke artikel yang kamu inginkan)
Operasi-Operasi pada Circular Linked List :
- Struck ADT
- Create List
- Alokasi
- Dealokasi
- Print Info
- Insert First
- Insert Last
- Insert After
- Insert Before
- Delete First
- Delete Last
- Delete After
- Insert Before
Algoritma Double Linked List adalah suatu struktur yang berbentuk link yang mempunya next dan prev di setiap listnya dalam Linked List. Dalam pengerjaan coding yang di gunakan dalam Mata Kuliah Struktur Data, kali ini saya akan di bahas dan di berikan Coding Double Linked List dalam bentuk PseudoCode :
1. Struct ADT
typedef int infotype;
typedef struct elmList *address;
struct elmList{
infotype info;
address next;
address prev;
};
struct doubleList{
address first;
address last;
};
BACA JUGA : Pengertian dan Contoh Pseudocode Algoritma Tree dalam Struktur Data -PART2
2. Create List
void creatList(doubleList &L) {
L.first = NULL;
L.last = NULL;
}
3. Alokasi
address alokasi(infotype info) {
address P = new elmList;
P->info = info;
P->next = NULL ;
P->prev = NULL;
return P;
}
4. Dealokasi
address dealokasi(address &P) {
delete P;
}
5. Print Info
void printInfo(doubleList L) {
if ( L.first == NULL ) {
cout << " ~~~~~~~~~~~~~~~~~~~ " << endl;
cout << " [doubleList Kosong] " << endl;
cout << " ~~~~~~~~~~~~~~~~~~~ " << endl;
cout;
}else{
address curr = L.first;
cout << " DATA SAAT INI :" << endl;
cout << " ~~~~~~~~~~~~~~~~~~~ " << endl;
while(curr){
cout << curr->info ;
if ( curr->next != NULL ){
cout << " -> ";
}
curr= curr->next;
}
cout << "\n ~~~~~~~~~~~~~~~~~~~ " << endl;
}
}
6. Insert First
void insertFirstDouble(doubleList &L, address P) {
if(( L.first != NULL )&&(L.last != NULL)){
P->next = L.first;
L.first->prev = P;
L.first = P;
}else{
L.first=P;
L.last =P;
}
}
BACA JUGA : Contoh Pseudocode Algoritma Circular Linked List dalam Struktur Data
7. Insert Last
void insertLastDouble(doubleList &L, address P) {
if(( L.first != NULL )&&(L.last != NULL)){
P->prev = L.last;
L.last->next = P;
L.last = P;
}else{
L.last =P;
L.first=P;
}
}
BACA JUGA : Contoh Pseudocode Algoritma Single Linked List dalam Struktur Data
8. Insert After
void insertAfterDouble( doubleList &L, address P, infotype prec) {
address Q = L.first;
while (( Q != NULL ) && (Q->info != prec)){
Q = Q->next;
}
P->prev = Q;
P->next = Q->next;
Q->next = P;
if (Q == L.last){
L.last = P;
}else{
P->next->prev = P;
}
}
BACA JUGA : Tutorial Pseudocode Algoritma Queue dalam Struktur Data Alternative 3
8. Insert Before
void insertBeforeDouble( doubleList &L, address P, infotype prec) {
address Q = L.first;
while (( Q != NULL ) && (Q->info != prec)){
Q = Q->next;
}
P->prev = Q->prev ;
P->next = Q;
if ( Q == L.first) {
L.first = P;
}else{
P->prev = P->prev;
P->prev->next = P;
}
}
9. Delete First
void deleteFirstDouble(doubleList &L, address P){
if ( L.first == NULL ) {
P = NULL;
cout << " ~~~~~~~~~~~~~~~~~~~ " << endl;
cout << " [doubleList Kosong] " << endl;
cout << " ~~~~~~~~~~~~~~~~~~~ " << endl; }else if (L.first->next == NULL) {
P = L.first;
L.first = NULL;
L.last = NULL;
}else{
P = L.first;
L.first = P->next ;
P->prev = NULL;
L.first->prev = NULL;
P->next = NULL;
}
}
BACA JUGA : Tutorial Pseudocode Algoritma Queue dalam Struktur Data
10. Delete Last
void deleteLastDouble(doubleList &L, address P){
if ( L.first == NULL ) {
P = NULL;
cout << " ~~~~~~~~~~~~~~~~~~~ " << endl;
cout << " [doubleList Kosong] " << endl;
cout << " ~~~~~~~~~~~~~~~~~~~ " << endl; } else if (L.first->next == NULL) {
P = L.first;
L.first = NULL;
L.last = NULL;
}else{
P = L.last;
L.last = L.last->prev;
P->prev = NULL;
P->next = NULL;
}
}
BACA JUGA : Pengertian dan Contoh Pseudocode Algoritma Tree dalam Struktur Data -PART2
11. Delete After
void deleteAfterDouble( doubleList &L,address P, infotype prec ) {
address Q = L.first;
while (( Q != NULL ) && (Q->info != prec) ){
Q = Q->next;
}
if ( (L.first != NULL && L.last != NULL )&& Q != NULL) {
P = Q->next;
Q->next = P->next;
if ( P == L.last ) {
L.last = P->prev ;
}else{
P->next->prev = Q;
}
P->next = NULL;
P->prev = NULL;
}
}
11. Delete Before
void deleteBeforeDouble( doubleList &L,address P, infotype prec ) {
address Q = L.first;
while (( Q != NULL ) && (Q->info != prec)){
Q = Q->next;
}
if ( (L.first != NULL && L.last != NULL )&& Q != NULL) {
P = Q->prev;
Q->prev = P->prev;
if ( P == L.first ) {
L.first = Q ;
}else{
P->next->prev = Q;
}
P->next = NULL;
P->prev = NULL;
}
}
Sampai disini tutorial Operasi Operasi Algoritma Double Linked List Dalam Bahasa C++ ikuti terus website ini untuk mendapatkan tutorial dan artikel menarik lainya. Semoga bermanfaat, jangan lupa berkomentar dan bagikan artikel ini jika menurut kamu berguna. 🙂