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

📄 data.cpp

📁 链表排序
💻 CPP
字号:
// Data.cpp: implementation of the CData class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "lt.h"
#include "Data.h"
#include <math.h>

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

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

CData::CData()
{
	m_data=0;
//	m_pBefore=NULL;
	m_pNext=NULL;
}

CData::~CData()
{

}

#ifdef _DEBUG
void CData::AssertValid() const
{
	CObject::AssertValid();
}

void CData::Dump(CDumpContext &dc) const
{
	CObject::Dump(dc);
}
#endif



CData* CData::Sequence(CData *pHead)
{
	if(!pHead) return NULL;
	CData* pHeader=pHead;

	CData *pH=NULL;
	CData* pTop=NULL;
	CData* pTemp=NULL;
	CData* p=NULL;
	int nNum=1;
	double store=0.0;

	pTemp=pHeader;
	while(pTemp->m_pNext!=NULL)
	{
		nNum++;
		pTemp=pTemp->m_pNext;
	}
	pTemp=NULL;

	for(int i=0;i<nNum;i++)
	{
		pTemp=pHeader;
		pTop=pHeader;
		for(int j=0;j<nNum-i;j++)
		{
			if(pTemp!=NULL)
			{
				if(pTop->m_data>pTemp->m_data)
					pTop=pTemp;
				pTemp=pTemp->m_pNext;
			}
		}
		pHeader=Clip(pHead,pTop);
		pHead=pHeader;
		if(p==NULL)
		{
			pH=p=pTop;
			pH->m_pNext=NULL;
		}
		else
		{
			p->m_pNext=pTop;
			p=pTop;
			p->m_pNext=NULL;
		}
	}

//	for(i=0,pTemp=pH;i<nNum;i++)
//		pTemp=pTemp->m_pNext;
//	pTemp->m_pNext=NULL;
	return pH;
}

void CData::Clear(CData *p)
{
	p->m_data=0.0;
//	p->m_pBefore=NULL;
	p->m_pNext=NULL;
}

CData* CData::Clip(CData *pHead, CData *pPart)
{
	CData *pUp=NULL;
	CData *p=NULL;

	if(!pHead) return NULL;

	pUp=pHead;
	if(Match(pUp,pPart))
	{
		pHead=pUp->m_pNext;
		return	pHead;
	}
	p=pUp->m_pNext;
	while(p!=NULL)
	{
		if(Match(p,pPart))
		{
			pUp->m_pNext=p->m_pNext;
		return pHead;
		}
	pUp=p;
	p=p->m_pNext;
	}

	return pHead;
}

BOOL CData::Match(CData *d1, CData *d2)
{
	if((d1->m_data==d2->m_data)
		&&(d1->m_pNext==d2->m_pNext))
		return TRUE;
	else
		return FALSE;
}

⌨️ 快捷键说明

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