1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | #include <stdio.h> #include <stdlib.h> #include <time.h> typedef int element; typedef struct ListNode { element data; struct ListNode *link; } ListNode; void display(ListNode *head){ ListNode *p = head; while (p != NULL) { printf("%d->", p->data); p = p->link; } printf("\n"); } ListNode* merge(ListNode* head1, ListNode*head2) { ListNode *p1, *p2, *np; ListNode *newhead; newhead = NULL; np = NULL; p1 = head1; p2 = head2; while (p1 != NULL && p2 != NULL) { if (newhead == NULL) { if (p1->data < p2->data) { newhead = p1; np = newhead; p1 = p1->link; } else if (p1->data > p2->data) { newhead = p2; np = newhead; p2 = p2->link; } } else { if (p1->data < p2->data) { np->link = p1; np = p1; p1 = p1->link; } else if (p1->data > p2->data) { np->link = p2; np = p2; p2 = p2->link; } } np->link = NULL; display(newhead); } if (p1 != NULL) { np->link = p1; } else if (p2 != NULL) { np->link = p2; } return newhead; } void main() { ListNode *head1, *head2; head1 = NULL; head2 = NULL; ListNode *p1; p1 = (ListNode *)malloc(sizeof(ListNode)); p1->data = 1; p1->link = NULL; head1 = p1; ListNode *p2; p2 = (ListNode *)malloc(sizeof(ListNode)); p2->data = 3; p2->link = NULL; p1->link = p2; ListNode *p3; p3 = (ListNode *)malloc(sizeof(ListNode)); p3->data = 4; p3->link = NULL; p2->link = p3; ListNode *p4; p4 = (ListNode *)malloc(sizeof(ListNode)); p4->data = 2; p4->link = NULL; head2 = p4; ListNode *p5; p5 = (ListNode *)malloc(sizeof(ListNode)); p5->data = 5; p5->link = NULL; p4->link = p5; display(head1); //출력하는 함수 display(head2); //출력하는 함수 display(merge(head1, head2)); } | cs |
'공부 > 자료구조' 카테고리의 다른 글
큐~ (0) | 2019.05.31 |
---|---|
스택 괄호검사 (0) | 2019.05.24 |
더블링크드 리스트 c 언어 (0) | 2019.05.17 |
C로 리스트 구현하기~ (0) | 2019.05.03 |