#linked-list
Вопрос:
Я новичок в C , и я пытаюсь объединить два связанных списка, но потерпел неудачу. Третий связанный список остается статусом, который не был консолидирован. Кто-нибудь может помочь проверить мой код? Любое предложение будет полезно.
class Node
{
public:
int data;
Node *link;
};
void con(Node *A, Node *B, Node *C);
void print(Node *P);
int main(int argc, char *argv[]) {
//first linked list
Node *first_1 = new Node();
Node *first_2 = new Node();
first_1->data = 1;
first_1->link = first_2;
first_2->data = 2;
first_2->link = NULL;
//second linked list
Node *second_1 = new Node();
Node *second_2 = new Node();
second_1->data = 7;
second_1->link = second_2;
second_2->data = 8;
second_2->link = NULL;
//consolidate
Node *consolidation = new Node();
con(first_1,second_1,consolidation);
print(consolidation);
system("PAUSE");
return 0;
}
Функция консолидации здесь:
void con(Node *A, Node *B, Node *C){
if(A == NULL amp;amp; B == NULL)
C == NULL;
else if(A != NULL amp;amp; B == NULL)
C = A;
else if(A == NULL amp;amp; B != NULL)
C = B;
else{
Node *P = A;
while(P->link != NULL){
P = P->link;
}
P->link = B;
C = A;
}
}
Функция печати здесь:
void print(Node *P){
Node *t = P;
while(t!=NULL){
printf("address=%p, ",t);
printf("data=%d ",t->data);
printf("link=%pn",t->link);
t=t->link;
}
printf("n");
}