इस खंड में हम सामान्यीकृत सूचियां देखेंगे। सामान्यीकृत सूची को नीचे के रूप में परिभाषित किया जा सकता है -
एक सामान्यीकृत सूची L, n तत्वों (n 0) का एक परिमित अनुक्रम है। तत्व ei या तो एक परमाणु (एकल तत्व) या कोई अन्य सामान्यीकृत सूची है। तत्व ई जो परमाणु नहीं हैं, वे एल की उप-सूची होंगे। मान लीजिए एल ((ए, बी, सी), ((डी, ई), एफ), जी है। यहां एल में तीन तत्व उप-सूची (ए, बी, सी), उप-सूची ((डी, ई), एफ), और परमाणु जी हैं। फिर से उप-सूची ((डी, ई), एफ) में दो तत्व हैं एक उप-सूची (डी, ई) और परमाणु एफ.
C++ में, हम सामान्यीकृत सूची संरचना को नीचे की तरह परिभाषित कर सकते हैं -
class GeneralizedListNode{ private: GeneralizedListNode *next; bool tag; union{ char data; GeneralizedListNode *down; }; };
तो यदि टैग सत्य है, तो नोड द्वारा दर्शाया गया तत्व एक उप-सूची है। नीचे उप-सूची में पहले नोड की ओर इशारा करता है। यदि टैग गलत है, तो तत्व परमाणु है। अगला पॉइंटर सूची में अगले तत्व की ओर इशारा करता है। सूची इस तरह दिखेगी।