ในส่วนนี้ เราจะเห็นรายการทั่วไป รายการทั่วไปสามารถกำหนดได้ดังนี้ -
รายการทั่วไป L คือลำดับจำกัดขององค์ประกอบ n (n ≥ 0) องค์ประกอบ ei เป็นอะตอม (องค์ประกอบเดียว) หรือรายการทั่วไปอื่น ธาตุ ei ที่ไม่ใช่อะตอมก็จะเป็นรายการย่อยของ L สมมุติว่า L คือ ((A, B, C), ((D, E), F), G) ที่นี่ L มีรายการย่อยสามองค์ประกอบ (A, B, C), รายการย่อย ((D, E), F) และอะตอม G. รายการย่อยอีกครั้ง ((D, E), F) มีสององค์ประกอบหนึ่ง รายการย่อย (D, E) และอะตอม F.
ใน C++ เราสามารถกำหนดโครงสร้างรายการทั่วไปได้ดังนี้ -
class GeneralizedListNode{
private:
GeneralizedListNode *next;
bool tag;
union{
char data;
GeneralizedListNode *down;
};
}; ดังนั้นหากแท็กเป็นจริง องค์ประกอบที่แสดงโดยโหนดจะเป็นรายการย่อย ลงชี้ไปที่โหนดแรกในรายการย่อย หากแท็กเป็นเท็จ แสดงว่าองค์ประกอบนั้นเป็นอะตอม ตัวชี้ถัดไปจะชี้ไปที่องค์ประกอบถัดไปในรายการ รายชื่อก็จะประมาณนี้
