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 3Method Forward List
| Method | Fungsi |
| 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 3Method List
| Method | Fungsi |
| 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