C++数据结构

  1. 链表节点 Node T, Node *
  2. Stack isEmpty() peek() push() pop() getSize()
  3. Queue    enqueue() dequeuer() getSize()
  4. 迭代器,对指针进行包装,更加安全
  5. 二叉树节点 Node T Node* left Node *right
  6. 树的遍历:中序(升)先序(深度优先)后序 广度优先
  7. 中+先(后)后(先)
  8. BinaryTree    size insert() inorder() preorder() postorder() getSize()
  9. Heap 是一棵完全二叉树(除最后一层外都是满的,最后一层不满时所有节点都位于最左边),且每个节点都大于等于其任何子节点。存在数组(知道大小)或者向量中。
    1. 左2i+1,右2i+2,父(i-1)/2
    2. Heap remove() add() getSize()
  10. 优先队列: enqueuer() dequeue()getSize()可用heap实现
  11. 时间复杂度:
    1. 二分搜索:O(logn) 选择排序:O(n2) 插入排序:O(n2) 汉诺塔算法:O(2n)
    2. 冒泡排序: O(n)(最好) O(n2)(最差) 归并排序: O(nlogn) 快速排序:O(nlogn)
    3. 堆排序:O(nlogn) 堆排序的空间复杂性优于归并排序 外排序:O(nlogn)
  12. <vector> <deque> <list> <set> <multiset> <map> <multimwp> <stack> <queue>
    1. priority_queue <queue> empty() size() = 大于小于等等 iterator
    2. typedef
  13. istream_iterator ostream_iterator <iterator>
  14. vector deque 用数组实现的 list用链表实现的
  15. multiset<int, greater<int>>set1(values, values +6); 降序排列
  16. stack queue priority_queue push() pop() top() size empty() 可选vector deque list 作为基础数据结构
    1. Stack<int, vector<int>> stack2;
  17. 数值算法<numeric> 其他算法<algorithm>
  18. copy() fill() fill_n() generate() generate_n() remove() remove_if() remove_copy() remevoe_copy_if() replace() replace_if() replace_copy() replace_copy_if() find() find_if() find_end() find_first_of() search()

    search_n() adjacent_find()merge() inplace_merge() reserve() reserve_copy()

    swap() iter_swap() swap_ranges() count() count_if()max_element() min_element() random_shuffle() for_each() transform() includes() set_union()

    set_differences() set_initersection() set_symmetric_difference() accumulate() adjacent_difference() inner_product() partial_sum()

posted @ 2016-04-30 15:03  咸_鱼  Views(144)  Comments(0Edit  收藏  举报