Pemrograman

Cara Menggunakan Single Linked List Menggunakan C++

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

comments powered by Disqus