赞
踩
#include <iostream> using namespace std; int* setArray(int n); //创建数组 void min_Heap(int *a,int n); //调成最小堆 void swap(int *a, int *b); //交换两数 int pop(int *a, int n); //删除第一个元素并返回第一个元素且重新调整成最小堆 int main(int argc, char *argv[]) { int n, m; cin >> n; int *a = setArray(n); min_Heap(a, n); cin >> m; int *b = setArray(m); min_Heap(b, m); int tmp = a[0]-1; while (n>0 && m>0) { if (a[0] < b[0]) { if (a[0] != tmp) { cout << a[0]<<" "; } tmp = pop(a, n); n--; } else if (a[0] > b[0]) { if (b[0] != tmp ) { cout << b[0]<<" "; } tmp = pop(b, m); m--; } else { tmp = pop(a, n); pop(b, m); n--; m--; } } while (n > 0) { if (a[0] != tmp) { cout << a[0]; tmp = pop(a, n); } n--; if (n != 0) cout << " "; } while (m > 0) { if (b[0] !&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。