算法导论(第三版)----C++实现.
基于C++11标准(全部实现为模板故都放在.h文件中),并给出Makefile文件(基于ubuntu(linux)).
代码实现中所有的指针均优先采用C++11新标准建议的智能指针.
--Binary_search/binarySearch.h: 二分搜索算法
--chain_hash_table/chain_hash_table.h: 链接法实现散列表
--open_addressing_hash_table/open_addressing_hash_table.h: 开放寻址法实现散列表
--perfect_hashing/perfect_hashing.h: 完全散列表
--gcd_algorithm/gcd.h: 欧几里得算法求解最大公因数
--pow_algorithm/recursionPow.h: 递归求幂运算
--circular_list/circularList.h: 带有哨兵的双向循环链表
--doubly_linked_list/doublyLinkedList.h: 双向链表
--doublyLinkedListNode/doublyLinkedListNode.h: 双向链表/循环链表的节点数据类型
--list/list.h: 单向链表
--listNode/ListNode.h: 单向链表的节点数据类型
--min_queue/min_queue.h: 最小优先队列
--queue/queue.h: 单端队列
--good_select/goodSelect.h: 最坏情况下为线性时间的选择算法
--minimum/minimum.h: 从一个集合中选择最小(最大)元素
--randomized_select/randomizedSelect.h: 随机选择算法(期望为线性时间的选择算法)
--bucket_sort/bucketSort.h: 桶排序
--counting_sort/countingSort.h: 计数排序
--heap_sort/heapSort.h: 堆排序
--insert_sort/insertSort.h: 插入排序
--merge_sort/mergeSort.h: 归并排序
--quick_sort/quickSort.h: 快速排序
--radix_sort/radixSort.h: 基数排序
--stack_algorithm/stack.h: 栈
--merge_subset_sum/mergeSubsetSum.h: 寻找最大相连子序列和的递归算法
--online_subset_sum/onlineSubsetSum.h: 寻找最大相连子序列和的在线算法
--original_subset_sum/originalSubsetSum.h: 寻找最大相连子序列和的暴力算法
--Binary_search_tree/binary_search_tree.h: 二叉搜索树
--binarytree/binarytree.h: 二叉树
--binarytreeNode/binarytreeNode.h: 二叉树的节点数据类型
--RedBlackTree/RedBlackTree.h: 红黑树
--RedBlackTreeNode/RedBlackTreeNode.h: 红黑树的节点数据类型