• DS 顺序表--合并操作(C++数据结构题)


    Description

    建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为 1000
    已知两个递增序列,把两个序列的数据合并到顺序表中,并使得顺序表的数据递增
    有序

    Input

    1 行先输入 n 表示有 n 个数据,接着输入 n 个数据,表示第 1 个序列,要求数据
    递增互不等
    2 行先输入 m 表示有 m 个数据,接着输入 m 个数据,表示第 2 个序列,要求数
    据递增互不等

    Output

    顺序表内容包括顺序表的实际长度和数据,数据之间用空格隔开
    1 行输出创建后的顺序表内容

    Sample Input

    3 11 33 55

    5 22 44 66 88 99

    Sample Output

    8 11 22 33 44 55 66 88 99

    思路:

    创建两个对象,分别存储着两组数据,其中A对象通过调用add方法,传B对象,将B对象的数据存入A中,A中的list数组进行排序然后输出。

    AC代码:

    1. #include
    2. #include
    3. #include
    4. using namespace std;
    5. #define ok 0
    6. #define error -1
    7. // 顺序表类定义
    8. class SeqList
    9. {
    10. private:
    11. int* list; // 元素数组
    12. int maxsize; // 顺序表最大长度
    13. int size; // 顺序表实际长度
    14. public:
    15. SeqList(); // 构造函数
    16. ~SeqList(); // 析构函数
    17. int list_size() {
    18. return size;
    19. }; // 获取顺序表实际长度
    20. void set(int length) {
    21. this->size = length;
    22. for (int i = 0; i < length; i++) {
    23. cin >> *(list + i);
    24. }
    25. }//用于初始化数组
    26. void add(SeqList *t) {
    27. for (int i = size; i < size + t->size; i++) {
    28. *(list + i) = *(t->list + i - size);
    29. }
    30. for (int i = 0; i < size + t->size; i++) {
    31. for (int j = i; j < size + t->size; j++) {
    32. if (*(list + i) > *(list + j)) {
    33. int temp;
    34. temp = *(list + i);
    35. *(list + i) = *(list + j);
    36. *(list + j) = temp;
    37. }
    38. }
    39. }
    40. size += t->size;
    41. cout << size << " ";
    42. list_display();
    43. }
    44. void list_display() {
    45. for (int i = 0; i < size; i++) {
    46. cout << *(list + i)<<" ";
    47. }
    48. cout << endl;
    49. }; // 输出整个顺序表
    50. };
    51. SeqList::SeqList()
    52. {
    53. maxsize = 1000;
    54. size = 0;
    55. list = new int[maxsize];
    56. }
    57. SeqList::~SeqList()
    58. {
    59. delete []list;
    60. }
    61. int main() {
    62. int a, b;
    63. SeqList *q = new SeqList;
    64. SeqList *p = new SeqList;
    65. cin >> a;
    66. p->set(a);
    67. cin >> b;
    68. q->set(b);
    69. p->add(q);
    70. return 0;
    71. }

  • 相关阅读:
    vue3简易文字验证码
    深度学习中的图像增强合集
    .NET实现获取NTP服务器时间并同步(附带Windows系统启用NTP服务功能)
    postgresql-管理数据表
    【python与数据分析】Pandas统计分析基础
    LinkedList(4):多线程LinkedList 不安全情况
    MATLB|电力系统优化运行与市场化
    HIve数仓新零售项目DWD层的构建
    sqlserver不使用group by进行分组合并
    ZKP4.1 SNARKs via Interactive Proofs (Justin Thaler)
  • 原文地址:https://blog.csdn.net/weixin_73609038/article/details/132917571