/* °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ±â¸» °í»ç (02¹Ý) Çйø : ¼º¸í : ´ÙÀ½ ÇÁ·Î±×·¥µéÀÇ Ãâ·ÂÀ» ½á¶ó. ÁÖÀÇ »çÇ× : ¹®Á¦µéÀ» Ç® ¶§ ÇÁ·Î±×·¥¿¡ ÀÖ´Â key º¯¼öÀÇ °ªÀ» ¾Æ·¡ °ªÀ¸·Î ´ëÄ¡ÇÑ ÈÄ¿¡ ¹®Á¦¸¦ Ç®°Í. int key[5] = { , , , , }; */ #include #define NIL (0) class DoublyLinkedListNode { public : // member functions int _data; DoublyLinkedListNode* _prev; DoublyLinkedListNode* _succ; DoublyLinkedListNode(int data = 0); void insert(DoublyLinkedListNode* node); }; DoublyLinkedListNode::DoublyLinkedListNode(int data) { _data = data; _prev = this; _succ = this; } void DoublyLinkedListNode::insert(DoublyLinkedListNode* node) { _prev = node; _succ = node->_prev; node->_prev = node; node->_prev->_succ = this; } class DoublyLinkedList { DoublyLinkedListNode* _head; public : // member functions DoublyLinkedList(); void insert(int data); void print(); }; DoublyLinkedList::DoublyLinkedList() { _head = NIL; } void DoublyLinkedList::insert(int data) { DoublyLinkedListNode *node = new DoublyLinkedListNode(data); if (_head == NIL) { _head = node; return; } node->insert(_head); } void DoublyLinkedList::print() { DoublyLinkedListNode *node = _head; for(int i = 0; i < 10; i++) { printf("%d\n",node->_data); node = node->_succ; } } void main() { DoublyLinkedList aList; int key[5] = { 0, 1, 2, 3, 4 }; // key °ª ´ëÄ¡ for(int i = 0; i < 5; i++) { aList.insert(key[i]); } aList.print(); }