ข้อมูลเบื้องต้นเกี่ยวกับปัญหา: ฉันกำลังสร้างโปรแกรมเพื่อติดตามเส้นทางการบินของสนามบินโดยใช้รายการที่เชื่อมโยง เช่น ถ้าชุดข้อมูลเป็น
(Austin - Dallas, Dallas - Houston)
และคุณพยายามค้นหาเที่ยวบิน
(Austin - Houston)
มันจะคำนวณว่าคุณต้องใช้เส้นทางบิน:
(Austin - Dallas - Houston)
วิธีที่โซลูชันของฉันทำงาน (หากฉันสามารถทราบวิธีการทำเช่นนี้ได้) คือฉันมีรายการลิงก์ภายนอกที่ประกอบด้วย OuterNode
ซึ่งแต่ละรายการมีรายการเที่ยวบินที่ลิงก์ภายใน รายการที่เชื่อมโยงภายในประกอบด้วย InnerNode
ซึ่งมีตัวชี้ไปยังโหนดด้านนอก (หรือที่เรียกว่าปลายทางของเที่ยวบิน) ตามทฤษฎีแล้ว มันจะทำให้หลายสิ่งหลายอย่างง่ายขึ้นในการวนซ้ำโดยไม่ต้องคัดลอกข้อมูลผ่านสตริงต่อไป ในส่วนหัวของฉัน มีสิ่งต่างๆ มากมายที่ต้องพึ่งพาซึ่งกันและกัน และไม่สามารถนำไปปฏิบัติตามลำดับที่ถูกต้องได้ (ทั้งหมดนี้อยู่ในส่วนหัวของคลาสรายการภายใน)
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;
};
โดยพื้นฐานแล้ว:
OuterNode
– ความต้องการ InnerList
(ยังไม่มีคำจำกัดความ)
InnerNode
– ความต้องการ OuterNode
InnerList
– ความต้องการ InnerNode
และในปัจจุบันข้อผิดพลาดคือไม่มี InnerList
เมื่อ OuterNode
จำเป็นต้องสร้าง ฉันจะแก้ไขปัญหานี้ได้อย่างไรเพื่อให้ทุกอย่างพบสิ่งที่ต้องการ มีการใช้เทมเพลตอย่างสร้างสรรค์หรืออะไรที่ฉันสามารถใช้เพื่อแก้ไขปัญหานี้ได้หรือไม่