STL
文章平均质量分 60
liuzhanchen1987
这个作者很懒,什么都没留下…
展开
-
中缀树转后缀树
对于一个中缀表达式 a+b*c*(d-e/f) 转换成后缀是这样的形式 abc*def/-+后缀表达式是相当有用处的,转换成后缀表达式后求值会简单很多.那么该如何转换呢? 网上关于这方面的资料一搜一大把,每本数据结构的书中都会提及这个算法,在这个算法中,用到 栈 这个数据结构. 1,关键是比较运算符的优先级,谁的优先级高,谁就出现在前面上面的表达式中,有括号的时候括号优先级最高原创 2012-03-24 14:07:41 · 1771 阅读 · 0 评论 -
优先级队列几个应用详解
优先级队列区别于普通队列的一点是:优先级队列如果插入的节点是结构体类型,则要在结构体中重载比较操作符函数。示例代码如下://优先级队列的使用测试//优先级队列跟对列的使用方式的区别是优先级队列在插入元素时//在将元素插入队尾后还要根据比较值对该元素进行位置的调整#include#includeusing namespace std;struct Node{ int key;原创 2012-08-12 13:52:31 · 12715 阅读 · 2 评论 -
Map的用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2012-06-01 20:55:33 · 680 阅读 · 0 评论 -
后缀表达式实现六则运算
实现后缀表达式的类如下,该类计算的是已经处理好的后缀表达式。#include#include#includeusing namespace std;void StringDevide(string str,int &num,string st1[]){ for(int i=0;i<100;i++) st1[i][0]='\0'; int n=str.size(原创 2012-03-23 15:19:46 · 1434 阅读 · 0 评论 -
利用栈实现整型多进制转换
#include#include#includeusing namespace std;void Multioutput(int num,int b){ string numlist="0123456789ABCDEF"; stackst; while(num) { st.push(numlist[num%b]); num=num/b; }原创 2012-03-22 11:08:47 · 664 阅读 · 0 评论 -
List列表实现统计文档中单词出现的次数
WordFreq.h代码:#include#includeusing namespace std;class WordFreq{private: int m_freq; string word;public: WordFreq(const string str):word(str),m_freq(1){} void Incream() { m_原创 2012-03-22 10:39:16 · 1464 阅读 · 0 评论 -
List模板类实现回文判断
#include#include#includeusing namespace std;templatebool IsPalinedrom(const list&List){ listLi; Li=List; while(Li.size()>1) { if(Li.front()!=Li.back()) return 0; Li.pop_f原创 2012-03-21 10:55:49 · 934 阅读 · 0 评论 -
哈希表
哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。 对哈希表的使用者一一人来说,这是一瞬间的事。哈希表运算得非常快,在计算机程序中,如果需要在一秒种内查找上千条记录通常使用哈希表(例如拼写检查器)哈希表的速度明显比树快原创 2012-03-27 20:11:47 · 1647 阅读 · 2 评论 -
利用双向链表实现约瑟夫问题
输入n个数,围城一圈,输入数字m,从第一个数开始数,数到第m个数删除这个数,然后继续数,数到下一个第m个数时,删除该数,直到剩下最后一个数。输出最后一个数。利用双向循环链表实现:LinkNode.h#includeusing namespace std;templateclass LinkNode{public: Type m_data; LinkNode*m_原创 2012-03-25 14:25:49 · 3736 阅读 · 0 评论 -
什么是C++ traits
Traits技术可以用来获得一个 类型 的相关信息的。 首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型:template typename T>class myIterator{...};当我们使用myIterator时,怎样才能获知它所指向的元素的类型呢?我们可以为这个类加入一个内嵌类型,像这样:template typename T转载 2012-08-24 14:04:09 · 869 阅读 · 0 评论