栈的引用简化了程序设计的问题,划分了不同的关注层次,使思考范围减小了。而用数组不仅掩盖了问题的本质,还要分散精力去考虑数组下标增减等细节问题。 这也是一般数据结构的优点,使我们将更多精力关注于算法本身,即如何将具体问题抽象为特定结构的数据和操作的集合。 //栈的应用 //进制转换 //算法依赖于原理: N=(N div d)*d +N mod d; #include <iostream> using namespace std; #include "sq_stack.h" int transfor(SqStack& s,int orig,int dimens) { do { int mod=orig%dimens; Push(s,mod); orig/=dimens; }while(orig!=0); while(!StackEmpty(s)) { int mod; Pop(s,mod); cout<<mod; } cout<<endl; return 0; } int main() { int orig=1348; int n=8; SqStack s; InitStack(s); transfor(s,orig,n); system("pause"); }