📄 blink.cpp
字号:
// BLink.cpp: implementation of the CBLink class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "LibMgr.h"
#include "BLink.h"
#include "string.h"
#include "LibMgrDlg.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern BLink BHead;
extern linkN;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CBLink::CBLink()
{
}
CBLink::~CBLink()
{
}
BLink CBLink::GetHead()
{
return H;
}
int CBLink::GetI()
{
return i;
}
BLink CBLink::Find(BLink h, CString num)//在链表中寻找指定节点.头节点不存储数据
{
BLink P=h->Next;
i=0;
while( P&&P->Num != num)
{
P=P->Next;
i++; //找到的节点是链表中的第i个节点
}
return P;
}
void CBLink::InitList() //初始化
{
BLink h;
h = new BNode;
H = h;
H->Next = NULL;
}
BLink CBLink::GetList(BLink h, int i) //得到第i个结点
{
int j=-1; //开始存储数据的第一个节点为第0个节点
BLink 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 CBLink::Insert(BLink h,CString Num,CString Lable,CString Name,CString Author,CString Pub,CString Date,CString Price,int i)
{
BLink p1, p2;
if(i==0) p1=h;
else p1=GetList(h,i-1); //取结点i-1的指针
if(p1==NULL)
{
Inok = FALSE;
}
else
{
p2=new BNode;
p2->Num=Num;
p2->Lable=Lable;
p2->Name=Name;
p2->Author=Author;
p2->Pub=Pub;
p2->Date=Date;
p2->Price=Price;
p2->tag=0;
p2->onshelf=0;
p2->RNum="空";
p2->Next = p1->Next; //插入新结点
p1->Next = p2;
}
}
void CBLink::Delete(BLink h,int i) //删除第i个结点,h为链表头结点
{
BLink 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 + -