Pengantar masalah: Saya membuat program untuk melacak jalur penerbangan bandara menggunakan daftar tertaut. Misalnya jika kumpulan datanya adalah
(Austin - Dallas, Dallas - Houston)
dan Anda mencoba mencari penerbangan
(Austin - Houston)
itu akan menghitung bahwa Anda perlu mengambil jalur penerbangan:
(Austin - Dallas - Houston)
Cara kerja solusi saya (jika saya tahu cara melakukan ini) adalah saya memiliki daftar tertaut luar yang terdiri dari OuterNode
yang masing-masing berisi daftar penerbangan tertaut dalam. Daftar tertaut bagian dalam terdiri dari InnerNode
yang berisi penunjuk ke node luar (alias tujuan penerbangan). Secara teori, ini akan membuat banyak hal lebih mudah untuk diulangi tanpa harus terus menyalin data melalui string. Di header saya, terlalu banyak hal yang memerlukan satu sama lain dan implementasinya tidak dapat dilakukan dalam urutan yang benar. (ini semua ada di header kelas innerlist)
struct OuterNode {
InnerList flights;
int name;
OuterNode* next;
};
struct InnerNode {
OuterNode* dest;
int price;
InnerNode* next;
};
class InnerList
{
public:
InnerList();
~InnerList();
void add(InnerNode*);
private:
InnerNode* innerhead;
};
Jadi pada dasarnya:
OuterNode
– membutuhkan InnerList
(belum ada definisi)
InnerNode
– kebutuhan OuterNode
InnerList
– kebutuhan InnerNode
Dan saat ini kesalahannya adalah InnerList
tidak ada padahal OuterNode
perlu membuatnya. Bagaimana cara memperbaikinya sehingga semuanya sesuai kebutuhan? Apakah ada penggunaan templat secara kreatif atau sesuatu yang dapat saya gunakan untuk memperbaikinya?