📄 rlink.cpp
字号:
// RLink.cpp: implementation of the CRLink class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "LibMgr.h"
#include "RLink.h"
#include "string.h"
#include "LibMgrDlg.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern RLink Head;
extern linkNo;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CRLink::CRLink()
{
}
CRLink::~CRLink()
{
}
RLink CRLink::GetHead()
{
return H;
}
RLink CRLink::Find(RLink h, CString num)//在链表中寻找指定节点.头节点不存储数据
{
RLink P=h->Next;
while( P&&P->Num != num)
{
P=P->Next;
}
return P;
}
void CRLink::InitList() //初始化
{
RLink h;
h = new RNode;
H = h;
H->Next = NULL;
}
RLink CRLink::GetList(RLink h, int i) //得到第i个结点
{
int j=-1; //开始存储数据的第一个节点为第0个节点
RLink P=h;
if (i<0) return(NULL);
while(P->Next&&j<i)
{
P=P->Next;j++;
}
if (i==j) return(P);
else return(NULL); //查找失败,即i>表长//
}
void CRLink::Insert(RLink h,CString Num,CString Name,CString Unit,int id,int i)
{
RLink p1, p2;
if(i==0) p1=h;
else p1=GetList(h,i-1); //取结点i-1的指针
if(p1==NULL)
{
Inok = FALSE;
}
else
{
p2=new RNode;
p2->Num=Num;
p2->Name=Name;
p2->Name=Name;
p2->Unit=Unit;
p2->id=id;
p2->sum=0;
p2->Next = p1->Next; //插入新结点
p1->Next = p2;
}
}
void CRLink::Delete(RLink h,int i) //删除第i个结点,h为链表头结点
{
RLink p1,p2;
if(i==0)
{
p1=h;
}
else
{
p1=GetList(h,i-1);
}
if(p1&&p1->Next) //若p1及p1->next所在的结点存在
{
p2=p1->Next;
p1->Next=p2->Next;
delete p2; //删除
Delok = TRUE;
}
else //否则失败
{
Delok = FALSE;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -