1、用顺序存储定义栈结构。写出这种存储方式下的算法实现,包括:初始化栈、判栈为空、出栈、入栈、求栈顶元素等运算,自己填写主函数。
2、利用顺序栈的基本操作,设计算法,实现将任意一个十进制整数转化为R进制整数
代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e5+10;
typedef struct istack{//.............顺序结构实现
int elem[MAXN];
int _top;
istack(){
_top=-1;
}
public:
void push(int val){
elem[++_top]=val;
}
void ini(){
_top=-1;
}
bool empty(){
return _top==-1?1:0;
}
bool pop(){
return _top==-1?0:_top--,1;
}
int top(){
return _top==-1?-1:elem[_top];
}
}istack;
int main()//.........................将任意一个十进制整数转化为R进制整数
{
istack a;
int n,m;
printf("请输入任意一个十进制数和要转化的R进制(简单起见十进制数在int内R小于37)\n");
scanf("%d%d",&n,&m);
a.ini();
while(n!=0){
a.push(n%m);
n/=m;
}
while(!a.empty()){
int x=a.top();
if(x>=10) printf("%c",'A'+x-10);
else printf("%d",x);
a.pop();
}
puts("");
}