欢迎光临
我们一直在努力

【C++】梦的起点2024_5

C++14种常见的算法与数据结构:

  • 数组(Array):依据分配内存的方式。数组属于狭义的顺序表,可分为静态数组、动态数组。
  • 链表(Linked List):单链表、双向链表、循环链表等。常见的有带头结点的单链表、带头结点的双向循环链表。
  • 栈(Stack):顺序栈(共享栈等),链式栈。
  • 队列(Queue):顺序队列(循环队列……)、链式队列(双端队列……)。
  • 树(Tree):满二叉树、完全二叉树、线索二叉树、二叉搜索树(Binary Search Tree)、平衡二叉树(AVL Tree)、红黑树(Red-Black Tree)、哈夫曼树等。
  • 堆(Heap):大根堆、小根堆等(用于堆排序)。
  • 图(Graph):图的遍历、最短路径、最小生成树等。
  • 哈希表(Hash Table):哈希函数、哈希冲突解决(开放地址处理法等)等。
  • 字符串(String):字符串匹配、字符串压缩等。
  • 向量(Vector)
  • 字典(Dictionary)
  • 排序算法:如冒泡排序、插入排序、选择排序、快速排序、归并排序等。
  • 搜索算法:如线性搜索、二分搜索等。
  • 这些算法和数据结构在不同的应用场景中都有广泛的应用。例如,数组和链表常用于存储和操作线性数据,栈和队列常用于实现函数调用和任务调度,树和图常用于表示和处理关系型数据,哈希表常用于快速查找和插入数据,字符串常用于处理文本数据,向量常用于动态数组的操作,字典常用于存储键值对数据。

    纠正:

    · 数组 & 向量:本质一回事。向量就是动态扩容的数组,属于顺序表。
    · 哈希表 & 字典:完全等价。字典就是哈希表(Map)的别名。
    · 栈 & 队列:属于操作受限的线性表,底层既可用数组实现(顺序),也可用链表实现(链式)。

    岗位JD编写不严谨。ADT(abstract data type)应该是6大类,才更为主流。

    break与continue的用法

    在 C++ 中,break 和 continue 是用于控制循环结构的关键字。

    break

    break 关键字用于立即退出循环结构,程序将继续执行循环后面的语句。它可以用于 for、while 和 do-while 循环。

    例如:

    for (int i = 0; i < 10; i++) {
    if (i == 5) {
    break;
    }
    std::cout << i << " ";
    }

    在上述例子中,当 i 的值等于 5 时,break 语句被执行,循环立即终止,输出结果为:0 1 2 3 4 。

    continue

    continue 关键字用于跳过本次循环的剩余部分,直接开始下一次循环。它也可以用于 for、while 和 do-while 循环。

    例如:

    for (int i = 0; i < 10; i++) {
    if (i == 5) {
    continue;
    }
    std::cout << i << " ";
    }

    在上述例子中,当 i 的值等于 5 时,continue 语句被执行,本次循环的剩余部分(即 std::cout << i << " " 语句)被跳过,直接开始下一次循环,输出结果为:0 1 2 3 4 6 7 8 9 。

     

    赞(0)
    未经允许不得转载:171主机测评 » 【C++】梦的起点2024_5
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址