
▷--○ STL
文章平均质量分 81
yss28
这个作者很懒,什么都没留下…
展开
-
(容器配接器)堆栈应用:判断表达式中的括号是否匹配
堆栈是项的有限序列,满足:1)序列中被删除、检索和修改的项只能是最近插入序列的项(栈顶)。堆栈中的项是反时间排序存储的:后入,先出。简称LIFO。stack类的部分方法接口(少于10个):// vector、deque和list都可以作为stack的基础容器类。// 堆栈的顶部是基础容器类的尾部。template > class stack { public: t原创 2013-10-31 23:58:00 · 830 阅读 · 0 评论 -
(顺序容器类)链表应用:一个行编辑器
(list模板类的方法接口:)list(); // 构造器:链表为空list(const list& x); // 拷贝构造器void push_front(const T& x); // 将 x 插入到这个链表的开头void push_back(const T& x); // 在这个链表尾部插入 x// 将 x 插入到调用前position所在位置的项的前面。返回位于 x 位原创 2013-10-28 21:24:13 · 791 阅读 · 0 评论 -
(容器配接器)队列应用:洗车仿真
队列是项的有限序列,满1)插入只允许从尾部进行; 2)删除、检索和修改只允许从头部进行。队列中的项是按照时间排序的:先入,先出。简称FIFO。queue类的部分方法接口(少于10个):// deque和list可以作为queue的基础容器类,// vector类没有pop_front()方法,不满足基础类的要求。template > class queue { p原创 2013-10-31 23:27:21 · 1416 阅读 · 0 评论 -
(折半查找树)BinSearchTree模板类
二叉树递归定义:二叉树 t 要么为空,要么由一项(称作根项)和两个不相交的二叉树 (称作 t 的左子树和右子树)组成。1)植物学术语:根——根项(50); 树枝——从根到子树的线; 树叶——相关左子树和右子树均为空的项(15、28、36、59、68)。2)家族术语:父亲——(25 是 15 的父亲); 子女——(30 是 25 的右子女);兄弟——(30 是 15 的兄弟)。原创 2013-11-02 21:19:41 · 1379 阅读 · 0 评论 -
(关联容器)set 和 multiset
标准模板库的关联容器类的惠普实现是基于红黑树类(rb_tree)的。在一个关联容器中,项通过和其他项的比较确定它在容器中的位置。因此没有push_back()、pop_back()、push_front() 和 pop_front()方法。红黑树(rb_tree):红黑树是一个折半查找树,它或者为空,或者根项着黑色,而其他的每个项着红色或黑色。并满足下面的属性:1)红色规则原创 2013-11-12 13:17:49 · 653 阅读 · 0 评论 -
string 动态双向链表的创建、排序,反转等
/*--------------------------------------------------写一个string双向链表模块. 通过建立一一个程序设计语言名字的表来演习这个模块. 为这个表提供一个sort()函数, 并提供一个函数去反转表中字符串的顺序.--------------------------------------------------*/#include #原创 2013-09-23 23:00:42 · 1360 阅读 · 0 评论 -
递归3: 汉诺塔的递归与迭代实现
递归实现与main():/*------------------------------------------------------汉诺塔主要是有三个塔座X,Y,Z,要求将从小到大编号为 1,2.....n 的圆盘从X移动到塔座Z上,要求 (1):每次只能移动一个圆盘 (2):圆盘可以插到X,Y,Z中任一塔座上 (3):任何时候不能将一个较大的圆盘压在较小的圆盘之上 初始:所有原创 2013-10-18 11:23:38 · 3833 阅读 · 2 评论 -
递归2: 十进制转换成二进制的递归与迭代实现
#include using namespace std;// 前置条件: n >= 0// 后置条件: 输出n的二进制等值数// (递归版本--优于迭代版本)// worstTime(n) 是 O(log n).void writebinary1(int n){ if (n == 0 || n == 1) cout << n; else{ writebinary1(n/原创 2013-10-18 11:11:21 · 1945 阅读 · 0 评论 -
递归4: 折半查找的递归实现
#include #include // 注意不是 或者using namespace std;// 折半查找数组// worstTime(n) 是 O(log n).template bool binary_search(T first[], T last[], const T& value){ if (first >= last) // 终止条件(未找到与value值相等的原创 2013-10-20 23:35:02 · 681 阅读 · 0 评论 -
(顺序容器类)向量应用:一个非常长的整数类
vector模板类的方法接口:vector(); // 构造器vector(const vector& x); // 拷贝构造器void push_back(const T& x); // 在向量尾部插入 X 的拷贝(可看成insert()方法的特例)iterator insert(iterator position, const T& x); // 在position原创 2013-10-22 20:49:57 · 827 阅读 · 0 评论 -
递归5: 生成置换的递归与STL算法实现
#include #include #include // sort()、next_permutation()using namespace std;// (递归算法 -- 生成置换)(开发困难)// worstTime(n) 是 O(n!)void rec_permute(string s, unsigned k){ if (k == s.length() -1) cout原创 2013-10-20 23:42:59 · 703 阅读 · 0 评论