-
Notifications
You must be signed in to change notification settings - Fork 2
Labels
enhancementNew feature or requestNew feature or request
Description
π§ Forward List from Scratch β Learning Resources
Tim kita sedang membangun forward list (singly linked list) dari nol. Issue ini mengumpulkan resource belajar (konsep struktur data, implementasi C++ modern), unit testing (GoogleTest/Catch2/doctest) dengan CMake/CTest, plus tooling untuk deteksi bug memori.
π― Tujuan
- Menyamakan pemahaman konsep singly linked list /
forward_list. - Menyiapkan unit test berbasis CMake + CTest.
- Mengaktifkan detektor bug memori (ASan/Valgrind).
- Referensi Modern CMake & contoh CI.
1) Linked List & std::forward_list
- cppreference:
std::forward_list - Header & API ringkas: cppreference header
- Operasi penting:
- Stanford CS: Linked List Basics (Nick Parlante)
- Stanford CS: Linked List Problems
- Open Data Structures (bab linked list; gratis): PDF
2) Unit Testing (C++)
Pilih salah satu framework; semua bisa dipasang via CMake.
- GoogleTest:
Docs Resmi β’ Primer - Catch2:
Repo GitHub β’ Examples - doctest (ringan, single-header):
Repo GitHub
3) CMake + CTest
- CMake Tutorial (resmi):
CMake Tutorial - CTest (driver test):
ctest.1 manual β’ CTest module - Modern CMake:
Online Guide β’ PDF
4) Memory Bugs & Tools
- AddressSanitizer (Clang): Docs
- Wiki ASan (quick flags): GitHub Wiki
- Valgrind Quick Start: valgrind.org
5) Contoh CI / Project Template
β Deliverables (Checklist)
- Baca ringkas
std::forward_list(API & operasiinsert_after/erase_after). - Implementasi Node, iterator forward, dan operasi dasar:
push_front,insert_after,erase_after,clear. - Setup CMake + CTest.
- Pilih framework uji (GTest/Catch2/doctest) dan tulis test untuk setiap operasi.
- Aktifkan ASan (flag kompilasi) dan uji dengan Valgrind (opsional).
- (Opsional) Tambahkan workflow GitHub Actions untuk build & test.
π Catatan
- Prioritaskan akurasi pointer (hapus & rewiring) β uji dengan ASan/Valgrind untuk cegah use-after-free atau memory leak.
- Ikuti gaya Modern CMake saat menambah dependency test framework.
Sub-issues
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request