📄 vqueue.h
字号:
// VQueue.h: interface for the CVQueue class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_VQUEUE_H__AA0E6592_F1BA_48E8_A71B_4F5353C90015__INCLUDED_)
#define AFX_VQUEUE_H__AA0E6592_F1BA_48E8_A71B_4F5353C90015__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "VNode.h"
class CVQueue
{
public:
CVQueue()
{
m_pHead = NULL;
};
virtual ~CVQueue()
{
Clean();
};
void Add(ULONG ulKey)
{
if (m_pHead != NULL)
{
CVNode* pNode = m_pHead;
while(pNode != NULL)
{
if (pNode->m_ulKey > ulKey)
{
Insert(pNode->pPrev, pNode, ulKey);
break;
}
else if (pNode->m_ulKey == ulKey)
{
}
if (pNode == pNode->pNext)
{
AddNode(pNode, ulKey);
break;
}
pNode = pNode->pNext;
}
}
else
{
m_pHead = AddNode(NULL, ulKey);
return;
}
};
void Delete(ULONG ulKey)
{
Remove(ulKey);
};
private:
CVNode* AddNode(CVNode* pPrevNode, ULONG ulKey) //加入尾
{
if (pPrevNode == NULL)
{
CVNode* pNewNode = new CVNode;
pNewNode->m_ulKey = ulKey;
return pNewNode;
}
else
{
CVNode* pNewNode = new CVNode;
pPrevNode->pNext = pNewNode;
pNewNode->pPrev = pPrevNode;
pNewNode->m_ulKey = ulKey;
}
return NULL;
};
void Insert(CVNode* pPrevNode, CVNode* pNextNode, ULONG ulKey)
{
CVNode* pNode = new CVNode;
pNode->m_ulKey = ulKey;
pPrevNode->pNext = pNode;
pNode->pPrev = pPrevNode;
pNode->pNext = pNextNode;
pNextNode->pPrev = pNode;
};
void Remove(ULONG ulKey)
{
if (m_pHead != NULL)
{
CVNode* pNode = m_pHead;
while(pNode != NULL)
{
if (pNode == pNode->pNext)
{
break;
}
if (pNode->m_ulKey == ulKey)
{
pNode->pPrev->pNext = pNode->pNext;
pNode->pNext->pPrev = pNode->pPrev;
delete pNode;
pNode = NULL;
break;
}
pNode = pNode->pNext;
}
}
};
void Clean()
{
if (m_pHead != NULL)
{
CVNode* pNode = m_pHead;
while(pNode != NULL)
{
if (pNode == pNode->pNext)
{
break;
}
printf("%d\r\n", pNode->m_ulKey);
CVNode* pTempNode = pNode->pNext;
delete pNode;
pNode = NULL;
pNode = pTempNode;
}
printf("%d\r\n", pNode->m_ulKey);
delete pNode;
pNode = NULL;
}
};
CVNode* m_pHead;
};
#endif // !defined(AFX_VQUEUE_H__AA0E6592_F1BA_48E8_A71B_4F5353C90015__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -