검색어 입력폼

c++ AVL Tree!!

저작시기 2007.01 |등록일 2007.05.31 파일확장자C언어 (cpp) | 가격 1,500원

소개글

c++을 이용한 AVL Tree 입니다.

void * 를 사용하여, 일반화 과정까지 진행 하였습니다.

class Node
{
private:
friend class DoubleLinkedList;
Node()
{
m_pNext = NULL;
m_pPre = NULL;
}
void * m_pData;
Node * m_pNext;
Node * m_pPre;
};

class DoubleLinkedList
{
public:
DoubleLinkedList()
{
m_iNodeCount = 0;
m_pTop = NULL;
m_pBottom = NULL;
m_pBuffer = NULL;
}
void Add(void * pData)
{
InsertBefore(NULL,pData);
}

void InsertTop(void * pData)
{
Node * pNode = GetHead();
InsertBefore(pNode,pData);
}

void InsertBefore(Node * pNextNode,void * pData)
{
Node * pNode = GetNode();
pNode->m_pData = pData;

if (m_pTop == NULL)
{
m_pBottom = m_pTop = pNode;
}
else if (pNextNode == m_pTop)
{
pNode->m_pNext = m_pTop;
m_pTop->m_pPre = pNode;
m_pTop = pNode;
}
else if (pNextNode == NULL)
{
m_pBottom->m_pNext = pNode;
pNode->m_pPre = m_pBottom;
m_pBottom = pNode;
}
else
{
pNode->m_pPre = pNextNode->m_pPre;
pNode->m_pNext = pNextNode;
pNextNode->m_pPre->m_pNext = pNode;
pNextNode->m_pPre = pNode;
}
}

컴파일 실행환경

Visual C++ 6.0 으로 코딩함.

참고 자료

c++ 자료구조
다운로드 맨위로