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

📄 link.cpp

📁 实用的通讯录管理程序,是本人的小学期作业
💻 CPP
字号:
// Link.cpp: implementation of the CLink class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "addr.h"
#include "Link.h"

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

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

CLink::CLink()
{

}

CLink::~CLink()
{

}

void CLink::QueList(Link h, int link_No)
{

	Link temp1,temp2;
	int s;
    for(int y=0;y<link_No;y++) 
	{ 
       for(int x=1;x<link_No-y;x++) 
	   {   
		   temp1 = GetList(h,y);
		   temp2 = GetList(h,y+1);
		   s = strcmp(temp1->Name,temp2->Name);
           if(s>0) 
		   { 
             Insert(h,temp2->Name,temp2->AddrName,temp2->AddrDate,temp2->Rlt,y); 
             Delete(h,y+2);
		   } 
	   }
	}



}

void CLink::Delete(Link h, int i)
{
Link p,q;
	if(i==0) p=h;
	else p=GetList(h,i-1);                 //求第i-1的地址
	if(p&&p->Next)                         //若p及p->next所在的结点存在
	{
		q=p->Next;
		p->Next=q->Next;
		delete q;                          //删除// 
		Delok = TRUE;
	}                        
	else                                   //否则失败
	{
		Delok = FALSE;
	}




}

void CLink::Insert(Link h, CString name, CString addrname, CString addrdate, int rlt, int i)
{
Link p, q;
	if(i==0) p=h;
	else p=GetList(h ,i-1);   //取结点i-1的指针
	if(p==NULL) 
	{
		Inok = FALSE;
	}
	else 
	{
		q = new Node;                       //申请插入结点
		q->Name = name;
	    q->AddrName = addrname;
	    q->AddrDate = addrdate;
	    q->Rlt=rlt;

		q->Next = p->Next;                  //插入新结点    
		p->Next = q; 
		Inok = TRUE;
	}



}

void CLink::InitList()                                 //初始化结点
{
	Link h;
	h = new Node;  
	H = h;
 	H->Next = NULL;
}


Link CLink::Find(Link h, CString name)
{
    Link p=h->Next;
	while(p!=NULL&&p->AddrName!=name)
	{
		p=p->Next;
	}
	return p;
}

Link CLink::GetList(Link h, int i)
{
int j=-1;
	Link p=h;
	if (i<0) return(NULL);
	while(p->Next&&j<i)
	{
		p=p->Next;j++;
	}
	if (i==j) return(p);
	else return(NULL); 
}

Link CLink::GetLast()
{
return L;
}

Link CLink::GetHead()
{
return H;
}

⌨️ 快捷键说明

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