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

📄 pointerlist.cpp

📁 基于dialogic语音卡的IVR系统源代码
💻 CPP
字号:
// PointerList.cpp: implementation of the CPointerList class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
//#include "VoiceScript.h"
#include "PointerList.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

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

CPointerList::CPointerList()
{
	ppmember = NULL;
	m_iCount = 0;
	m_iIncrement = 100;
	m_iTotalCount = 0;
}

CPointerList::~CPointerList()
{
	if(ppmember != NULL)
	{
		free(ppmember);
	}
}

int CPointerList::AddHead(void *pNewElement)
{
	if(ppmember == NULL || m_iCount == m_iTotalCount)
	{
		m_iTotalCount = m_iCount + m_iIncrement;
		ppmember = (void **)realloc(ppmember, m_iTotalCount * sizeof(void *));
	}
	
	for(int i = 0; i < m_iCount; i ++)
	{
		ppmember[m_iCount - i] = ppmember[m_iCount - i - 1];
	}
	ppmember[0] = pNewElement;
	m_iCount ++;

	return(0);
}

int CPointerList::AddTail(void *pNewElement)
{
	if(ppmember == NULL || m_iCount == m_iTotalCount)
	{
		m_iTotalCount = m_iCount + m_iIncrement;
		void **ppTemp = (void **)realloc(ppmember, m_iTotalCount * sizeof(void *));
		if(ppTemp == NULL)
			return -1;
		else
			ppmember = ppTemp;
	}

	ppmember[m_iCount] = pNewElement;
	m_iCount ++;

	return(0);
}

void * CPointerList::RemoveHead()
{
	if(m_iCount == 0)
		return(NULL);

	void *pHead = ppmember[0];
	
	/*	
	for(int i = 0; i < m_iCount; i ++)
	{
		ppmember[i] = ppmember[i + 1];
	}
	m_iCount --;
	*/
	
	//XYW modified at 2001/01/02
	m_iCount --;
	for(int i = 0; i < m_iCount; i ++)
	{
		ppmember[i] = ppmember[i + 1];
	}
	ppmember[m_iCount] = NULL;
	//XYW modified end
	
	return(pHead);
}

void * CPointerList::RemoveTail()
{
	if(m_iCount == 0)
		return(NULL);

	m_iCount --;
	return(ppmember[m_iCount]);
}

BOOL CPointerList::IsEmpty()
{
	if(m_iCount == 0)
		return(TRUE);
	else
		return(FALSE);
}

⌨️ 快捷键说明

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