1.栈具有后进先出的访问方式
栈顺序存储元素,但仅允许在序列的一端插入和删除数据项
Example:A B C D的进栈和出栈
2.栈的应用:进制转换
Example:把十进制431转换为16进制
实现代码:
string convert(int num,int base)
{
string char_num("0123456789ABCDEF"); //字符对照表
string numStr; //存储转换结果
stack<int> st;
while(num)
{
st.push(char_num[num%base]); //把结果压入栈底
num/=base;
}
while(!st.empty()) //从栈顶取元素并删除
{
numStr+=st.top();
st.pop();
}
return numStr;
}
int main(int argc, char** argv)
{
cout<<convert(431,16); //1AF
return 0;
}