A와 B는리스트 (리스트 병합) 쇄 C로 병합

A와 B는리스트 (리스트 병합) 쇄 C로 병합

증가 및 B리스트 (null 이외), 두 목록을 병합 주문 알려진 두 가지의 목록 (주문 단위 포함) C 목록, 우리는 목록의 개념의 몇 가지 이해가 필요

노드에 필요한 조건 노드 사이의 관계가 사네 설정합니다.

이 질문의 초점은, 관심을 지불 할 필요가 특정 목록을 다루는, 즉 두 개의 목록이 오래하지 않을 수 있습니다 두 목록의 길이를 지정, 그렇게하지 않았다된다

동작은 나머지 부분에 직접 C들을 나열 다른 체인에 접속 될 수 있고, 완료된다.

. 1  공극 병합 (LNode * A, * B LNode, LNode의 *의 C)
 2  {
 3.      LNode * P = A-> 다음;         // P 최소 추적 노드 
4.      LNode B- * Q => 다음;         / / Q B 최소 추적 노드 
5.      LNode * & lt; 화학식                 //이 커서 C 쇄 등의 포인터를 정의한다 
(6).      C는 A =;                     // C 제 노드 점의 목록 
7.      C-> 다음 = NULL;             / / 이 필요하기 때문에 다음과 같은 두 가지를 제거 할 수있는 실행을 
8.      무료 (B);                 // 해제 B 헤드 노드 
. 9      R & LT = C;                     // 헤드 노드 C에 대한 포인터 
10      그동안(! = NULL && P Q = NULL)         // 두리스트 마지막에 도달하지 않는 경우 
(11).      {
 12 인          경우 (P-> 데이터 <Q- => 데이터)
 (13)가          {
 14              R-> 다음 = P,
 15              P P - => 다음으로,
 (16)              R & LT = R-> 다음]
 . 17          }
 18은          다른 {
 19.              R-> 다음 = Q;
 20이고              Q = Q-> 다음으로,
 21은              & LT = R-> R , 다음
 (22)가          }
 23이다      }
 24      R- > 다음 = NULL;            // 마지막 C 빈리스트의 다음 포인터 포인트 
(25)      
(26)는      IF (P! = NULL) {
 27          R-> 다음 = P,
 28      }
 29      IF (Q! = NULL)
 30          R-> 다음 = Q;
 31이다 }

 

추천

출처www.cnblogs.com/whtmomo/p/11515106.html