데이터 구조 학습 - 질서 있 는 링크 의 통합
12143 단어 데이터 구조
약간 정렬 된 병합 부분 같 죠?
vs 로 만 든 프로젝트 이기 때문에 주 함 수 는tmain。
1 // .cpp : 。
2 //
3
4 #include "stdafx.h"
5
6
7 typedef struct Node {
8 int data;
9 struct Node *next;
10
11 } LinkList;
12
13
14 // : :
15 LinkList * combie(LinkList *l1, LinkList * l2) {
16
17 LinkList * p=NULL;
18
19 if (l1==NULL && l2==NULL)
20 {
21 p = NULL;
22 }
23 if (l1==NULL&&l2!=NULL)
24 {
25 p = (LinkList *)malloc(sizeof(LinkList));
26 p->data = l2->data;
27 p->next = combie(NULL, l2->next);
28
29 }
30
31 if (l2 == NULL&&l1 != NULL)
32 {
33 p = (LinkList *)malloc(sizeof(LinkList));
34 p->data = l1->data;
35 p->next = combie(l1->next,NULL);
36
37 }
38 if (l1!=NULL && l2!=NULL)
39 {
40 p = (LinkList *)malloc(sizeof(LinkList));
41
42 p->data = l1->data <= l2->data ? l1->data : l2->data;
43 p->next = combie(l1->data <= l2->data ? l1->next : l1, l1->data <= l2->data ? l2 : l2->next);
44
45 }
46 return p;
47 }
48
49
50
51 //
52 LinkList * create(int a[], int n) {
53 LinkList *h = NULL, *p, *pre = NULL;
54 for (int i = 0; i < n; i++)
55 {
56 p=(LinkList *)malloc(sizeof(LinkList));
57 p->data = a[i];
58 if (pre) pre->next = p;
59 pre = p;
60 if (i == 0) h = p;
61 if (i == n - 1) p->next = NULL;
62
63 }
64 return h;
65
66
67 }
68
69
70 //
71 void display(LinkList *list) {
72 LinkList *p = list;
73 while (p != NULL)
74 {
75 cout << p->data << " ";
76 p = p->next;
77 }
78 cout << endl;
79
80 }
81
82 int _tmain(int argc, _TCHAR* argv[])
83 {
84 int a []= { 1, 2, 10, 80,500 };
85 LinkList *l1 = create(a,5);
86 display(l1);
87 int b[] = { 0,4, 5, 100, 177,250 };
88 LinkList *l2 = create(b, 6);
89 display(l2);
90 LinkList * p = combie(l1, l2);
91 display(p);
92 system("pause");
93 return 0;
94 }
stdafx. h 의 내용 은 매우 간단 하 다.
// stdafx.h : ,
//
//
//
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// TODO:
#include <iostream>
#include <cstdlib>
using namespace std;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.