두 개의 링크 헤드 1 과 헤드 2 가 각각 질서 가 있 음 을 알 고 있 습 니 다. 하나의 링크 로 합 쳐 도 질서 가 있 습 니 다.

제목: 두 개의 링크 헤드 1 과 헤드 2 가 각각 질서 가 있 는 것 을 알 고 있 습 니 다. 하나의 링크 로 합 쳐 도 질서 가 있 습 니 다.(모든 노드 를 유지 하고 크기 가 같 더 라 도) 1. 순환 방법:
    :
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;
}

좋은 웹페이지 즐겨찾기