commit 2025-10-03 17:30 add DeleteHead(TypeSize) & DeleteTail(TypeSize) in ZtCBaseList : ZCppMain/ZMainHead.H

This commit is contained in:
2025-10-03 17:30:21 +09:00
parent fee4f8aee1
commit 11f79dec3a
4 changed files with 124 additions and 43 deletions

View File

@ -5883,6 +5883,70 @@ namespace ZNsMain
void DeleteTail()*/
void DeleteHead(TTypSize AL_DelSize)
{
// AL_DelSize 개의 링크를 앞 부분에서 삭제
if(ml_LinkSize<1 || AL_DelSize<1){ return; }
if(AL_DelSize > ml_LinkSize){ AL_DelSize=ml_LinkSize; }
if(AL_DelSize==ml_LinkSize)
{
RecvFreeIn
(ml_LinkSize, mp_HeadLink, mp_TailLink);
mp_HeadLink=0 ;
mp_TailLink=0 ;
ml_LinkSize=0 ;
return;
}/*
if(AL_DelSize==ml_LinkSize)*/
ZCLink* VP_NewHead =
mp_HeadLink->GetNextPrevPtr( AL_DelSize ) ;
RecvFreeIn
(AL_DelSize, mp_HeadLink, VP_NewHead->mp_PrevLink);
mp_HeadLink = VP_NewHead ;
ml_LinkSize -= AL_DelSize ;
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
}/*
void DeleteHead(TTypSize AL_DelSize)*/
void DeleteTail(TTypSize AL_DelSize)
{
if(ml_LinkSize==0 || AL_DelSize<1){ return; }
if(AL_DelSize> ml_LinkSize){ AL_DelSize=ml_LinkSize; }
if(AL_DelSize==ml_LinkSize)
{
RecvFreeIn
(ml_LinkSize, mp_HeadLink, mp_TailLink);
mp_HeadLink=0 ;
mp_TailLink=0 ;
ml_LinkSize=0 ;
return;
}/*
if(AL_DelSize==ml_LinkSize)*/
ZCLink* VP_NewTail =
mp_TailLink->GetNextPrevPtr( -AL_DelSize ) ;
RecvFreeIn
(AL_DelSize, VP_NewTail->mp_NextLink, mp_TailLink);
mp_TailLink = VP_NewTail ;
ml_LinkSize -= AL_DelSize ;
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
}/*
void DeleteTail(TTypSize AL_DelSize)*/
ZtCBaseList& JoinAfter(ZtCBaseList& rhs, ZCLink* AP_StdLink)
{
// AP_StdLink 의 뒤에 rhs 를 삽입.