数据结构应用标准模版库STL——栈(分解栈元素)
来源:互联网 发布:腾讯何时优化吃鸡 编辑:程序博客网 时间:2024/04/30 21:23
我们开发出一种算法:uncouple(),它使用辅助栈查找和从当前栈中删除第一次出现的元素target。重复地删除栈顶部的元素,并将其推入到辅助栈中,知道找到target.使target从原来的栈中出栈,然后按次序将辅助栈中每个元素推入到原来的栈。如果发生了分解操作,函数返回true,否则返回false;
#include<iostream>#include<stack>using namespace std;template<typename T>bool uncouple(stack<T>&s,const T&target){stack<T> temStk;bool foundTarget = true;while(!s.empty()&&s.top()!=target){temStk.push(s.top());s.pop();}if(!s.empty())s.pop();else foundTarget = false;while(!temStk.empty()){s.push(temStk.top());temStk.pop();}return foundTarget;}template <typename T>void writeArray(const T& array,int & size){int i;for(i=0;i<size;i++)cout<<array[i]<<" ";cout<<endl;}int main(){int arr[]={19,14,37,43,11,12},i;int arrsize=sizeof(arr)/sizeof(int);stack<int > intStack;cout<<"Creating a stack with values(top to bottom): ";writeArray(arr,arrsize);cout<<endl;//将arr中的各项按arr[arrsize-1]...arr[0]的顺序压入intStack栈中,所以,arr[0]在栈顶for(i=arrsize-1;i>=0;i--)intStack.push(arr[i]);//尝试从intStack中删除14和17if(uncouple(intStack,14))cout<<"Uncoupled 14"<<endl;elsecout<<"14 is not on the stack"<<endl;if(uncouple(intStack ,17))cout<<"Uncoupled 17"<<endl;else cout<<"17 is not on the stack"<<endl;cout<<"Final stack(top to bottom): ";while(!intStack.empty()){cout<<intStack.top()<<' ';intStack.pop();}cout<<endl;return 0;}
- 数据结构应用标准模版库STL——栈(分解栈元素)
- 数据结构应用标准模版库STL——栈(进制转换)
- 数据结构应用标准模版库STL——堆
- 数据结构应用标准模版库STL——优先级队列(优先级队列排序)
- 数据结构应用标准模版库STL——队列的基本操作
- 数据结构应用标准模版库STL—— map的操作
- 数据结构(二)标准模版库STL
- 数据结构应用标准模版库STL——向量的操作(对排序后的子表进行排序)
- 数据结构应用标准模版库STL——表的操作(没有重复的有序表)
- 数据结构应用标准模版库——Sorting
- 标准模版库(STL)
- 标准模版库:(STL)
- STL 标准模版库
- STL标准模版库
- 标准模版库STL
- STL标准模版库字符串的用法(上)
- STL标准模版库字符串的用法(下)
- STL标准模版库---stack操作大全
- 使用 hibernate 存取大对象数据类型(clob和blob)
- java socket通信
- uva 122 Trees on the level
- 【写博分享是矢志不渝的使命】关于2013年度IT博客大赛
- [JAVA]Hibernate3.6应用实例详解
- 数据结构应用标准模版库STL——栈(分解栈元素)
- 关于android:configChanges的属性
- java学习之路----项目经验----关于TOMCAT中文乱码问题的总结
- SOM自组织神经网络
- Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.解决方法
- 批处理关机命令
- mysql 实现远程访问,phpmyadmin实现远程连接mysql
- [TED] 在用户空间Debug kernel
- [java]Struts2防止用户重新登陆的实现