Double Linked List adalah ebuah linked list yang menggunakan sebuah variabel pointer saja untuk menyimpan banyak data dengan metode linked list, suatu daftar isi yang saling berhubungan.
Baiklah, Santekno akan memberikan implementasi dari Double Linked List dengan menggunakan bahasa CPP. Hal yang paling penting dalam pembuatan Double Linked List adalah kita akan membuat suatu linked yang nantinya bisa saling terhubung sehingga agar bisa saling terhubung tersebut membutuhkan beberapa fungsi yang bisa mengoperasikannya seperti, insert depan, insert belakang, insert di tengah, delete, size, dan lain-lainnya.
Linked List yang akan Santekno buat menerapkan sistem OOP (Object Oriented Programming) sehingga agar lebih mudah dipahaminya. Dalam OOP kita harus membuat suatu kelas yang akan kita namakan DLL, atau singkatan dari Double Linked List.
Code Program Kelas DLL
Setelah code program kelas tersebut maka kita akan melengkapi fungsi-fungsi yang telah dideklarasikan.Membuat Node Fungsi make()
Tambah Node di belakang push_back()
Tambah Node di depan push_front()
Tambah Node sebelum n push_before()
Mencari Node find()
Mencari Node sebelum n find_before()
Hapus Node n del()
Mencetak linked list print()
Main Program
Santekno akan lampirkan juga beberapa implementasi Single Linked List menggunakan STL list.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <list> | |
using namespace std; | |
typedef list<int> LI; | |
class DLL{ | |
LI dt; | |
public: | |
int isEmpty(){ return dt.empty();} | |
void push_back(int val); | |
void push_front(int val); | |
void push_after(int val,int after); | |
LI::iterator find(int val); | |
void del(int val); | |
void print(); | |
}; | |
void DLL::print(){ | |
LI::iterator it; | |
for(it=dt.begin();it!=dt.end();++it) | |
cout << (*it) << "->"; | |
cout << "NULL" << endl; | |
} | |
LI::iterator DLL::find(int val){ | |
LI::iterator it; | |
for(it=dt.begin();it!=dt.end();++it) | |
if((*it) == val) return it; | |
return it; | |
} | |
void DLL::push_back(int val){ | |
dt.push_back(val); | |
} | |
void DLL::push_front(int val){ | |
dt.push_front(val); | |
} | |
void DLL::push_after(int val,int after){ | |
LI::iterator it=find(after); | |
if(it!=dt.end()){ | |
++it; | |
dt.insert(it,val); | |
} | |
} | |
void DLL::del(int val){ | |
LI::iterator it=find(val); | |
if(it!=dt.end()) dt.erase(it); | |
} | |
int main(){ | |
DLL list; | |
list.push_back(10); | |
list.push_front(20); | |
list.push_front(30); | |
list.push_after(10,50); | |
list.del(20); | |
list.print(); | |
return 0; | |
} |
- Tutorial CPP - Single Linked List Menggunakan C++
- Tutorial CPP - Double Linked List Menggunakan C++
- Tutorial CPP - Implementasi Stack Menggunakan Array C++
- Tutorial CPP - Implementasi Stack Menggunakan Double Linked List C++
- Tutorial CPP - Implementasi Stack Mengunakan Standar Template Library C++
- Tutorial CPP - Queue Menggunakan Double Linked List C++
- Tutorial CPP - Binary Search Tree Menggunakan C++
- Tutorial CPP - AVL Tree Menggunakan C++
- Tutorial CPP - B-Tree Menggunakan C++
- Tutorial CPP - Graph Menggunakan C++
0 komentar:
Posting Komentar