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

📄 studlist.cpp

📁 双向连表的演示程序 1、创建连表 2、在头部增加节点 3、在尾部增加节点 4、插入节点 5、删除节点 6、遍历连表
💻 CPP
字号:
// StuDList.cpp: implementation of the CStuDList class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DouList.h"
#include "StuDList.h"

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

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

CStuDList::CStuDList()
{
    m_pFirstNode = NULL;
	m_pLastNode = NULL;
	m_pCurNode = NULL;
}

CStuDList::~CStuDList()
{

}
//Create Double List
void CStuDList::CreateDList(CStu* pNode)
{

	if(m_pFirstNode == NULL && m_pLastNode == NULL)
	{
	   m_pFirstNode = new CStu;
       m_pFirstNode = pNode;
	   m_pLastNode = m_pFirstNode;
	   m_pCurNode = m_pFirstNode;
	}
}
//Add Tail Node
void CStuDList::AddTailNode(CStu* pNode)
{
   m_pLastNode->m_pNext = pNode;
   pNode->m_pPre = m_pLastNode;
   m_pLastNode = pNode;
   m_pCurNode = m_pLastNode;
}
//Add Head Node
void CStuDList::AddHeadNode(CStu* pStu)
{
	m_pFirstNode->m_pPre = pStu;
	pStu->m_pNext = m_pFirstNode;
	m_pFirstNode = pStu;
	m_pCurNode = pStu;
}
//
CStu* CStuDList::GetNextNode()
{
	if(m_pCurNode->m_pNext == NULL)
	{
		MessageBox(NULL,"list tail!","Warning",MB_OK);
		return NULL;
	}
	CStu* Temp = m_pCurNode->m_pNext;
	m_pCurNode = Temp;
	return Temp;
}
//
CStu* CStuDList::GetPreNode()
{
   if(m_pCurNode->m_pPre == NULL)
   {
	   MessageBox(NULL,"list Pre!","Warning",MB_OK);
	   return NULL;
   }
   CStu* Temp = m_pCurNode->m_pPre;
   m_pCurNode = Temp;
   return Temp;
}
//
void CStuDList::InsertNode(CStu* pStu)
{
	if(m_pCurNode->m_pNext == NULL)
	{
		MessageBox(NULL,"CurNode is LastNode","Warning",MB_OK);
		return ;
	}
	CStu* Temp = m_pCurNode->m_pNext;
	m_pCurNode->m_pNext = pStu;
	pStu->m_pPre = m_pCurNode;
	pStu->m_pNext = Temp;
	Temp->m_pPre = pStu;
	m_pCurNode = pStu;
}
//
void CStuDList::DelCurNode()
{
	if(m_pCurNode == m_pFirstNode)
	{
		CStu* Temp = m_pFirstNode->m_pNext;
		Temp->m_pPre = NULL;
		m_pFirstNode = Temp;
		m_pCurNode = m_pFirstNode;
		return ;
	}
	if(m_pCurNode ==m_pLastNode)
	{
		CStu* Temp = m_pLastNode->m_pPre;
		Temp->m_pNext = NULL;
		m_pLastNode = Temp;
		m_pCurNode = m_pLastNode;
		return ;
	}
	CStu* fNode = m_pCurNode->m_pPre;
	CStu* eNode = m_pCurNode->m_pNext;
	fNode->m_pNext = eNode;
	eNode->m_pPre = fNode;
	m_pCurNode = fNode;
}

⌨️ 快捷键说明

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