Dalam proses pengorganisasian dan pemrosesan data dalam jumlah banyak dapat menggunakan suatu array.
Masalah yang kita jumpai dalam menggunakan array :
1. Besar dari array adalah terbatas
2. Array tidak terurut (Unsorted array) mencari menggunakan sebuah nilai cenderung lambat.
3. Akan tetapi, bila array yang urut, untuk menambah dan menghapus cenderung lambat.
Linked List : Sebuah list dari item, dimana urutan dari node (item) itu sendiri di atur oleh memory address dalam komputer kita, yang dinamakan Link.
Perhatikan gambar di bawah ini:
Satu node merupakan data dan sebuah link. Data berisikan suatu variable/angka dan link sendiri berisikan suatu alamat / address yang menunjuk address yang lain.
Perhatikan gambar di atas dengan cermat. Lalu bayangkan bagaimana bila terdapat lebih dari satu node. Maka akan menjadi di bawah ini:

Pada di atas perhatikan arah panah dari ujung kiri yaitu bagian ‘head / kepala’ sampai dengan paling pojok kanan. Pada bagian pojok kanan arah panah menunjuk ke bawah, itu berarti link yang berada di item/node terakhir itu menunjuk ke alamat NULL / tidak terisi dengan alamat address/ yang lebih mudah lagi tidak menunjuk ke alamat address yang lain lagi.

Andaikata node pertama pada lokasi memory 1200 dan node kedua pada lokasi memori 1575.
Karena dalam tiap node itu terdapat dua komponen (data dan link). Oleh karena itu, kita perlu sebuah struct or class.
struct nodeType {
int info;
nodeType * link;
};
Penjelasan kode diatas:
Kita membuat satu nodeType yang didalamnya berisi data info dan pointer link.
Info bertipe integer. nodeType * link menunjuk address struct nodeType selanjutnya.
Okay, Let’s take some practice… Okay, mari kita berlatih dahulu..
Warna kuning adalah alamat address / link itu sendiri yang bertipe pointer.
Warna biru adalah info yang bertipe integer.
head
head -> link
head -> info
head -> link -> info
head -> link -> link -> info
head -> link -> link -> link
head -> link -> link -> link -> link