Menu
CoddyTech

List

Pelajaran 7 dari 23 dalam kursus C++ - Standard Template Library di Coddy.

List adalah container sequence bawaan C++ yang memungkinkan alokasi memori nonkontigu. Saat kita membicarakan list, yang dimaksud adalah doubly linked list. Ada jenis list lain yang disebut forward list, yang berarti singly linked list. 


Jadi, agar semuanya jelas. 
Struktur data vector memungkinkan alokasi memori kontigu, artinya setiap elemen berada tepat setelah elemen sebelumnya di dalam memori.
Sementara itu, struktur data linked list memiliki elemen yang terdiri dari bagian data (nilai sebenarnya) dan pointer yang berisi alamat memori elemen berikutnya dalam list.

Ada dua jenis linked list di C++:

  • doubly linked list - list
  • singly linked list - forward list

Perbedaan utama antara doubly linked list dan singly linked list adalah singly-linked list hanya dapat melakukan iterasi ke depan, artinya setiap elemen memiliki nilainya sendiri dan alamat memori elemen berikutnya. Sementara itu, elemen dalam doubly-linked list menyimpan informasi tentang cara menemukan elemen berikutnya dan sebelumnya dalam list.


Kita menggunakan list (doubly-linked list) dan forward list (singly-linked list) dengan menyertakannya di dalam file menggunakan:

#include <list>
#include <forward_list>

Atau, kita cukup menyertakan file header bits/stdc++.h.


Forward List

Sekarang, pertama-tama kita akan membahas forward list. Ada banyak method untuk forward list, kita akan membahas yang paling berguna.
Kita mendeklarasikan forward list sama persis seperti saat mendeklarasikan vector dan deque.

forward_list<int> flist = {1, 2, 3};

Kita dapat menambahkan elemen menggunakan method push_front() dan menghapus elemen dari bagian depan menggunakan pop_front().

flist.push_front(5);
for (int &x : flist) // kita menampilkan elemen-elemen menggunakan pointer yang nilainya bertambah pada setiap iterasi
	cout << x << " ";
cout << endl;

flist.pop_front();
for (int &x : flist)
	cout << x << " ";
Output:
5 1 2 3
1 2 3

Method Forward List

MethodFungsi
insert_after()Menyisipkan elemen setelah posisi yang ditentukan
remove()Menghapus elemen tertentu
assign()Digunakan untuk menetapkan nilai yang ditentukan ke list. Method ini juga dapat digunakan hanya dengan dua bilangan bulat, yang berarti menetapkan elemen yang ditentukan sebanyak n kali

List

Selanjutnya, kita akan membahas list. Ada banyak method yang digunakan dengan struktur data list, tetapi kamu akan diperkenalkan dengan yang paling berguna. 
Pertama, kamu akan mempelajari cara mendeklarasikan list setelah menyertakannya di bagian atas file .cpp. 

list<int> list1 = {1, 2, 3};

Kita dapat menambahkan elemen ke list menggunakan method push_front() atau push_back().
Demikian pula, kita dapat menghapus elemen pertama dan terakhir menggunakan method pop_front() dan pop_back(), secara berurutan.

list1.push_back(4);
list1.push_front(0);
for (int &x : list1)
	cout << x << " ";
cout << endl;

list1.pop_front();
list1.pop_back();
for (int &x : list1)
	cout << x << " ";
Output:
0 1 2 3 4
1 2 3

Method List

MethodFungsi
front()Mengembalikan nilai elemen pertama dalam list
back()Mengembalikan nilai elemen terakhir dalam list
empty()Mengembalikan apakah list kosong (1) atau tidak (0)
erase()Menghapus satu elemen atau rentang elemen dalam list
remove()Menghapus semua elemen dari list

 

Coba sendiri

Pelajaran ini tidak memiliki tantangan kode.

Semua pelajaran di C++ - Standard Template Library

Latihan sendiri: Compiler C++ online