📄 edgeliststack.cpp
字号:
// EdgeListStack.cpp: implementation of the CEdgeListStack class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "magicscissors.h"
#include "EdgeListStack.h"
#include "EdgeList.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CEdgeListStack::CEdgeListStack()
{
m_pRoot = NULL;
m_pLast = NULL;
}
CEdgeListStack::~CEdgeListStack()
{
Clear();
}
void CEdgeListStack::Clear()
{
CEdgeList* pCur;
CEdgeList* pNext;
if( m_pRoot )
{
pCur = m_pRoot;
while( pCur )
{
pNext = pCur->m_pNext;
delete pCur;
pCur = pNext;
}
m_pRoot = m_pLast = NULL;
}
}
BOOL CEdgeListStack::Push(CEdgeList* pList)
{
if( !m_pRoot )
{
m_pRoot = new CEdgeList;
*m_pRoot = *pList;
m_pLast = m_pRoot;
}
else
{
CEdgeList* pData = new CEdgeList;
*pData = *pList;
m_pLast->m_pNext = pData;
pData->m_pPrev = m_pLast;
m_pLast = pData;
}
return TRUE;
}
CEdgeList* CEdgeListStack::Pop()
{
if( !m_pLast ) return NULL;
CEdgeList* pLast = m_pLast;
m_pLast = m_pLast->m_pPrev;
if( !m_pLast)
{
m_pRoot = m_pLast = NULL;
}
else
{
m_pLast->m_pNext = NULL;
}
return pLast;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -