Forward List

Forward list merupakan salah satu template container yang terdapat dalam STL (Standard Template Library). Forward list merepresentasikan penyimpanan dengan single linked list. Karena menggunakan linked list, kalian tidak bisa mengaksesnya dengan index. Metode penambahan dan penghapusan data yang digunakan list adalah FIFO seperti antrian / queue. Forward list menggunakan memori yang lebih kecil jika dibandingkan dengan list (yang menggunakan doubly linked list).

Untuk menggunakan forward list pada C++ kalian bisa menambahkan "#include <forward_list>". Berikut ini adalah contoh kode programnya.

#include <iostream>
#include <forward_list>
#include <iterator>

using namespace std;

int main(){
forward_list<float> listku={1, 2, 3};
forward_list<float>::iterator it;

    //Isi vektor
    listku.push_front(1.5);
    cout << "Data pertama :" << listku.front() << endl;
    
    cout << "Isi (terbalik) : ";
    
    listku.reverse();//balik urutan
    for(it=listku.begin();it!=listku.end();it++)
        cout<< *it << " ";
    
    listku.sort();//urutkan

    listku.pop_front();
        
    cout << endl << "Isi (terurut) : ";
    for(auto p=listku.begin();p!=listku.end();p++)
        cout<< *p << " ";

    listku.clear();//Bersihkan list

    return 0;
}
Output :
Data pertama :1.5
Isi (terbalik) : 3 2 1 1.5
Isi (terurut) : 1.5 2 3

Contoh kode program di atas mendeklarasikan forward list dengan tipe data int. Tipe data pada deklarasi forward list diapit dengan tanda "<" dan ">". Selain itu, isi forward list diinisiasi dengan 3 nilai awal. 

Pada kode program di atas, kita menambahkan data pada forward list dengan menggunakan function push_front. Kemudian kita mengurutkannya dengan sort sebelum menampilkannya. Selain itu, ada penghapusan data di akhir program. 

Method untuk Forward List

Beberapa method yang biasa digunakan dalam forward list adalah sebagai berikut :

  1. push_front => Menambahkan data di awal.
  2. pop_front => Menghapus data paling awal.
  3. front => Menunjukkan nilai data pada elemen pertama.
  4. empty => memastikan bahwa forward list sudah kosong.
  5. sort => urutkan isi forward list.
  6. clear => Mengosongkan isi forward list
  7. begin => Mengembalikan iterator berupa pointer yang menunjuk nilai pertama dari forward list.
  8. end => Mengembalikan iterator berupa pointer yang menunjuk akhir dari forward list