⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objlist.cpp

📁 是银行atm机的基本功能实现
💻 CPP
字号:
// ObjList.cpp: implementation of the ObjList class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ObjList.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ObjList::ObjList()
{
	m_pHeadNode = NULL;
	m_pTailNode = NULL;
	m_iCount = 0;
}

ObjList::~ObjList()
{
	
}

void ObjList::AddHead(void *pData)
{
	ObjNode *pNode = new ObjNode();		//新建节点以容纳pData
	pNode->m_pData = pData;
	pNode->m_pPrev = NULL;			//前面肯定是NULL
	pNode->m_pNext = m_pHeadNode;		//ObjNode为头,原来的头后移
	if(m_pHeadNode!=NULL){
		m_pHeadNode->m_pPrev = pNode;
	}
	m_pHeadNode = pNode;				//更新头指针
	IncreaseCount();
	if(m_iCount==1){
		m_pTailNode=pNode;
	}
}

void ObjList::AddTail(void *pData)
{
	ObjNode *pNode = new ObjNode();		//新建节点以容纳pData
	pNode->m_pData = pData;			
	pNode->m_pPrev = m_pTailNode;		//原来的尾部变成倒数第二个
	pNode->m_pNext = NULL;			//尾部的后面应为NULL
	if(m_pTailNode!=NULL){
		m_pTailNode->m_pNext = pNode;
	}
	m_pTailNode = pNode;				//更新尾指针
	IncreaseCount();
	if(m_iCount==1){
		m_pHeadNode = pNode;
	}
}


void * ObjList::RemoveHead()
{
	ObjNode *pNode = m_pHeadNode;
	m_pHeadNode = m_pHeadNode->m_pNext;
	if(m_pHeadNode!=NULL){
		m_pHeadNode->m_pPrev = NULL;
	}
	void *pRet = pNode->m_pData;
	delete pNode;
	DecreaseCount();
	return pRet;
}

void * ObjList::RemoveTail()
{
	ObjNode *pNode = m_pTailNode;
	m_pTailNode = m_pTailNode->m_pPrev;
	if(m_pTailNode!=NULL){
		m_pTailNode->m_pNext = NULL;
	}
	void *pRet =  pNode->m_pData;
	delete pNode;
	DecreaseCount();
	return pRet;
}

int ObjList::GetCount()
{
	return m_iCount;
}


void * ObjList::FindIndex(int iIndex)
{
	if( iIndex >= m_iCount ){
		return NULL;
	}
	ObjNode *pNode = m_pHeadNode;
	for(int i=0; i<iIndex; i++){
		pNode = pNode->m_pNext;
	}
	return pNode->m_pData;
}

void ObjList::IncreaseCount()
{
	m_iCount++;
}

void ObjList::DecreaseCount()
{
	m_iCount--;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -