commit 2025-08-17 15:25 edit ZCppMain/ZtCSortObjList.H : add ZNsExam::ZtCSortIntList

This commit is contained in:
2025-08-17 15:26:37 +09:00
parent 1dd4a87e75
commit 69b2ed8018
2 changed files with 58 additions and 7 deletions

View File

@ -4,7 +4,7 @@
#define __ZCPPMAIIN__ZTCOBJLIST_H__ #define __ZCPPMAIIN__ZTCOBJLIST_H__
#include "ZCppMain/ZtCSortObjList.H" #include "ZCppMain/ZMainHead.H"
namespace ZNsMain namespace ZNsMain
@ -1726,7 +1726,7 @@ namespace ZNsMain
myObjList.IterElement(StFunctor::ShowElement); myObjList.IterElement(StFunctor::ShowElement);
myObjList.IterElement(&VO_StFunctor2); // linux g++ 4.4.7 에서 컴파일 에러다. myObjList.IterElement(&VO_StFunctor2); // linux g++ 4.4.7 에서 컴파일 에러다.
// struct StFunctor2 정의를 main() 함수 바깥으로 빼면 컴파일된다. // struct StFunctor2 정의를 main() 함수 바깥으로 빼면 컴파일된다.
return 0; return 0;
} }

View File

@ -10,6 +10,10 @@
-- 2013-04-30 22:57:00 -- 2013-04-30 22:57:00
ZtCArray.H 와 ZtCObjList.H 가 include 한다.
-- 2025-08-17 14:37:00
////////////////////////////////////////////////////*/ ////////////////////////////////////////////////////*/
@ -443,13 +447,16 @@ namespace ZNsMain
{ {
if(pf_IsTrueValue(VP_LhsTemp->GetData(), VP_RhsHead->GetData())==true) if(pf_IsTrueValue(VP_LhsTemp->GetData(), VP_RhsHead->GetData())==true)
{ {
VP_TempLink=VP_RhsHead; VP_TempLink=VP_RhsHead ;
VP_RhsHead =VP_RhsHead->mp_NextLink; VP_RhsHead =VP_RhsHead->mp_NextLink;
ARR_AddList.JoinBefore( ARR_CutList.CutLink(VP_TempLink,1), ARR_AddList.JoinBefore ////////////////////
VP_LhsTemp, (
VL_LhsTempPos ARR_CutList.CutLink(VP_TempLink,1),
/*/////////////////*/ ); ////////////////////////////////// VP_LhsTemp,
VL_LhsTempPos
);
///////////////////////////////////////////
/* VP_LhsTemp 앞에 링크가 하나 삽입되었으므로, /* VP_LhsTemp 앞에 링크가 하나 삽입되었으므로,
VP_LhsTemp 의 위치값을 하나 증가시킨다. */ VP_LhsTemp 의 위치값을 하나 증가시킨다. */
@ -646,6 +653,50 @@ namespace ZNsMain
template<typename TTypObjList> class ZtCSortObjList */ template<typename TTypObjList> class ZtCSortObjList */
namespace ZNsExam
{
template<typename TTypeInt=int> class ZtCSortIntList
{
public:
static void ShowElemnet(int AI_Element)
{
cout<<"* Element : "<<AI_Element<<endl;
}
///////////////////////////////////////
static int Main(int AI_ArgCnt=0, const char* APP_ArgVal[]=0)
{
using namespace std;
typedef ZNsMain::ZtCObjList<TTypeInt, TTypeInt> CObjList ;
CObjList VO_CIntList; //////////////////////////
VO_CIntList.AddTail(10); VO_CIntList.AddTail(1 );
VO_CIntList.AddTail(6 ); VO_CIntList.AddTail(4 );
VO_CIntList.AddTail(7 ); VO_CIntList.AddTail(2 );
VO_CIntList.AddTail(8 ); VO_CIntList.AddTail(5 );
VO_CIntList.AddTail(9 ); VO_CIntList.AddTail(3 );
cout<<"# Sort ASC" <<endl; ZtCSortObjList<CObjList>::
QuickSort(RR(VO_CIntList), true ); VO_CIntList.IterElement(ShowElemnet);
cout<<"# Sort DESC"<<endl; ZtCSortObjList<CObjList>::
QuickSort(RR(VO_CIntList), false); VO_CIntList.IterElement(ShowElemnet);
return 0 ;
}/*
static int Main(int AI_ArgCnt=0, const char* APP_ArgVal[]=0)*/
public:
};/*
template<typename TTypeInt=int> class ZtCSortIntList*/
}/*
namespace ZNsExam*/
// 단방향 연결리스트에 대한 정렬 클래스이다. // 단방향 연결리스트에 대한 정렬 클래스이다.