두 개의 링크 헤드 1 과 헤드 2 가 각각 질서 가 있 음 을 알 고 있 습 니 다. 하나의 링크 로 합 쳐 도 질서 가 있 습 니 다.
:
pNode Combine(pNode p,pNode node1, pNode node2) //node1 node2 ; ,
{
pNode p1 = node1;
pNode p2 = node2;
while (NULL != p1 && NULL != p2) //
{
if (p1->Element < p2->Element)
{
InsertEnd(p, p1->Element);
p1 = p1->Next;
}
// Combine(p, p1, p2);
else if (p1->Element > p2->Element)
{
InsertEnd(p, p2->Element);
p2 = p2->Next;
// Combine(p,p1, p2);
}
else
{
InsertEnd(p, p1->Element);
InsertEnd(p, p2->Element);
p1 = p1->Next;
p2 = p2->Next;
// Combine(p,p1, p2);
}
}
while (NULL != p1 && NULL == p2) //
{
InsertEnd(p, p1->Element);
p1 = p1->Next;
}
while (NULL == p1 && NULL != p2)
{
InsertEnd(p, p2->Element);
p2 = p2->Next;
}
Display(p);
return p;
}
2. 재 귀적 방법
:
pNode Combine(pNode p,pNode node1, pNode node2)
{
pNode p1 = node1;
pNode p2 = node2;
if (NULL != p1 && NULL != p2)
{
if (p1->Element < p2->Element)
{
InsertEnd(p, p1->Element);
p1 = p1->Next;
Combine(p, p1, p2);
}
else if (p1->Element > p2->Element)
{
InsertEnd(p, p2->Element);
p2 = p2->Next;
Combine(p, p1, p2);
}
else
{
InsertEnd(p, p1->Element);
InsertEnd(p, p2->Element);
p1 = p1->Next;
p2 = p2->Next;
Combine(p, p1, p2);
}
}
else if (NULL != p1 && NULL == p2)
{
InsertEnd(p, p1->Element);
p1 = p1->Next;
Combine(p, p1, p2);
}
else if (NULL == p1 && NULL != p2)
{
InsertEnd(p, p2->Element);
p2 = p2->Next;
Combine(p, p1, p2);
}
// Display(p);
return p;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.