Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung menyambung, dinamis dan terbatas. Sedangkan Single Linked List adalah sebuah 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 Single Linked List dengan menggunakan bahasa C++. Hal yang paling penting dalam pembuatan Single 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 SSL, atau singkatan dari Single Linked List.
Fungsi-fungsi yang akan dibuat
- Membuat Node Fungsi 
make() - Tambah Node di belakang 
push_back() - Tambah Node di depan 
push_front() - Tambah Node setelah n 
push_after() - Mencari Node 
find() - Mencari Node sebelum n 
find_before() - Hapus Node n 
del() - Mencetak linked list 
print() - Main Program
 
Code Program Kelas SLL
#include <utility>
#include <iostream>
#include <forward_list>
#include <string>
using namespace std;
typedef par<string, float> P;
typedef forward_list<P> SLLP;
class SLL{
    SLLP dt;
    void push_front(string nim,float ipk);
    void push_back(string nim, float ipk);
    void push_after(string nim,float ipk, string after);
    void del(string nim);
    SLLP::iterator find(string nim);
    void print();
};
void SLL::print(){
    SLLP::iterator it;
    for(it=dt.begin();it!=dt.end();++it){
        cout << "(" << it->first << "," << it->second << ")->";
    }
    cout << "NULL"<< endl;
}
void SLL::push_front(string nim, float ipk){
    P t=make_pair(nim,ipk);
    dt.push_front(t);
}
void SLL::push_back(string nim,float ipk){
    P t=make_pair(nim,ipk);
    if(dt.empty())
        dt.push_front(t);
    else{
        SLLP::iterator before=dt.begin();
        SLLP::iterator it=dt.begin();
        for(;it!=dt.end();before=it,++it);
        dt.insert_after(before,t);
    }
}
int main(){
    SLL list;
    list.make();
    list.push_back(100); list.push_back(50);
    list.push_front(75); list.print();
    list.push_after(35,100); list.print();
    list.del(50); list.print();
    return 0;
}
Output