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

📄 blink.cpp

📁 用mfc写的图书馆信息管理系统界面
💻 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 + -