?? heterlist.cpp
字號:
// HeterList.cpp: implementation of the CHeterList class.
//
//////////////////////////////////////////////////////////////////////
#include "HeterList.h"
#include "iostream.h"
#include "NodeBase.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CHeterList::CHeterList()
{
m_pHead = 0;
}
CHeterList::~CHeterList()
{
while(m_pHead)
{
CNodeBase* pTemp = m_pHead->GetNext();
delete m_pHead;
m_pHead = pTemp;
}
}
void CHeterList::AddNode(CNodeBase* node)
{
if( m_pHead == 0 )
m_pHead = node;
else
{
CNodeBase* pTemp = m_pHead;
while(pTemp->GetNext() != 0 )
{
pTemp = pTemp->GetNext();
}
pTemp->SetNext(node);
}
}
bool CHeterList::FindNode(CNodeBase& node)
{
if( m_pHead == 0 )
return false;
bool isFind = false;
CNodeBase* pTemp = m_pHead;
while(pTemp !=0 )
{
if(*pTemp==&node)
{
isFind = true;
break;
}
else
{
pTemp = pTemp->GetNext();
}
}
return isFind;
}
void CHeterList::DeleteNode(CNodeBase& node)
{
if( m_pHead == 0 )
return;
if( *m_pHead==&node)
{
CNodeBase* pTemp = m_pHead->GetNext();
delete m_pHead;
m_pHead = pTemp;
}
else
{
CNodeBase* pTemp = m_pHead;
while(pTemp !=0 )
{
if( pTemp->GetNext() != 0 && *(pTemp->GetNext())==&node)
{
CNodeBase* pTemp1 = pTemp->GetNext();
pTemp->SetNext(pTemp->GetNext()->GetNext());
delete pTemp1;
pTemp1 = 0;
break;
}
else
pTemp = pTemp->GetNext();
}
}
}
void CHeterList::VisitAllNode()
{
CNodeBase* pTemp = m_pHead;
while(pTemp)
{
pTemp->Visit();
pTemp = pTemp->GetNext();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -