이 섹션에서는 일반화된 목록을 볼 수 있습니다. 일반화된 목록은 다음과 같이 정의할 수 있습니다. -
일반화된 목록 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; }; };
따라서 태그가 true이면 노드가 나타내는 요소는 하위 목록입니다. 아래쪽은 하위 목록의 첫 번째 노드를 가리킵니다. tag가 false이면 요소는 atom입니다. 다음 포인터는 목록의 다음 요소를 가리킵니다. 목록은 다음과 같습니다.