티스토리 뷰

공부 이야기

[C] 이중 링크드 리스트 구성

판다(panda) 2009. 1. 29. 00:01
// 이중 링크드 리스트 구성 Microsoft Visual Studio 2005
// LinkedList.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//

#include "stdafx.h"

struct DList
{
    int data;
    DList *prev;
    DList *next;
};

// 빈 노드 설정
DList root = { 0, &root, &root };            // (prev -> root <- next)

// 처음 부분에 새로운 노드 추가
void Insert(int data)    // tmp next -> root -> root next -> tmp -> tmp prev -> root -> root prev -> tmp
{
    DList *tmp = new DList;
    tmp->data = data;
    tmp->prev = &root;
    tmp->next = root.next;
    root.next->prev = tmp;
    root.next = tmp;
}
// 마지막부분에서 노드 삭제
void Remove()
{
    if ( root.next == &root )
        return;
    DList *tmp = root.prev;
    tmp->prev->next = &root;
    root.prev = tmp->prev;
    delete tmp;
}
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}