📄 linknode.cpp
字号:
/* Class:ClinkNode CPP
/ CopyRight CSKSOFT 2004
/ By Csk
/
/
*/
#include "linknode.h"
#include ".\linknode.h"
CLinkNode::CLinkNode(void)
: pcur_node(NULL),pFirst(NULL),pEnd(NULL)
{
}
CLinkNode::~CLinkNode(void)
{
Clear();
}
void CLinkNode::Clear(void)
{
GotoEnd();
while(DeleteNode());
}
long CLinkNode::DeleteNode(void)
{
Node *tmpNode;
if (pcur_node){
if (pcur_node->nextNode==NULL){ //end of the node?
tmpNode=(Node *)pcur_node->formerNode; //current will be the prev.
if (tmpNode) {
tmpNode->nextNode=NULL;
}else
{
pFirst=NULL;
}
pEnd=tmpNode;
}else
{
tmpNode=(Node *)pcur_node->nextNode; //current will be the next.
tmpNode->formerNode=pcur_node->formerNode;
if (tmpNode->formerNode){
((Node *)tmpNode->formerNode)->nextNode=tmpNode;
}else //first node
{
pFirst=tmpNode;
}
}
delete pcur_node;
pcur_node=tmpNode;
return 1;
}else
{
return 0;
}
}
long CLinkNode::AddNode(void * pnodeData)
{
Node *tmpNode;
tmpNode=new Node;
if (pcur_node){
tmpNode->formerNode=pcur_node;
if (pcur_node->nextNode){ //if it's not the end of the node, addining it
tmpNode->nextNode=pcur_node->nextNode;
}else
{
tmpNode->nextNode=NULL;
pEnd=tmpNode;
}
pcur_node->nextNode=tmpNode;
tmpNode->formerNode=pcur_node;
}else
{
tmpNode->formerNode=NULL;
tmpNode->nextNode=NULL;
pEnd=pFirst=tmpNode;
}
pcur_node=tmpNode;
pcur_node->pdata=NULL;
if (pnodeData) ModifyNode(pnodeData);
return 1;
}
long CLinkNode::GotoFirst(void)
{
pcur_node=pFirst;
return (pcur_node!=0);
}
long CLinkNode::GotoEnd(void)
{
pcur_node=pEnd;
return (pcur_node!=0);
}
void * CLinkNode::ReadNode(void)
{
if (pcur_node){
return pcur_node->pdata;
}
return 0;
}
long CLinkNode::GotoNext(void)
{
if (pcur_node){
if (pcur_node->nextNode){
pcur_node=(Node *)pcur_node->nextNode;
return 1;
}
}
return 0;
}
long CLinkNode::GotoPrev(void)
{
if (pcur_node){
if (pcur_node->formerNode){
pcur_node=(Node *)pcur_node->formerNode;
return 1;
}
}
return 0;
}
void *CLinkNode::ModifyNode(void * pNodeData)
{
if (pcur_node){
pcur_node->pdata=pNodeData;
}
return 0;
}
bool CLinkNode::IsEndNode(void)
{
return (pcur_node==pEnd);
}
bool CLinkNode::IsFirstNode(void)
{
return (pcur_node==pFirst);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -