栈的应用 10进制的转换

栈的应用 10进制的转换

c++实现

#include<stdio.h>

using namespace std;
/* typedef struct Stack
{
SElemType *base; //栈底指针构造之前销毁之后,base=NULL
SElemType *top; //栈顶指针
int stacksize;
}Stack;*/
class Stack
{
private:
int *stack_Buffer; //空间指针
int stack_size;
int stack_top;
public :
Stack(int size)
{
stack_size=size;
stack_Buffer=new int[size];
stack_top=0;
}
~Stack()
{
delete []stack_Buffer;
stack_size=0;
}
void ClearStack()
{
stack_top=0;
}
bool EmptyStack()
{
if(0==stack_top) return true;
else return false;
}
bool FullStack()
{
if(stack_size==stack_top) return true;
else return false;
}
int StackNumber()
{
return stack_top;
}
void push(int elem)
{
if(!FullStack())
{
stack_Buffer[stack_top]=elem;
stack_top++;
}
else printf("fullstack");
}
void pop(int &elem)
{
if(!EmptyStack())
{
stack_top--;
elem=stack_Buffer[stack_top];
}
else printf("emptystack");
}
void StackTraverse() 
{
/* for(int i=0;i<stack_top;i++)     //由栈底遍历至栈顶
{
printf(" %i",stack_Buffer[i]);
*/
for(int i=stack_top-1;i>=0;i--) //由栈顶遍历至栈底
{
printf("%i",stack_Buffer[i]);

printf("\n");

};
int main()
{
int N=1348,elem=0;
Stack *stack=new Stack(10);
stack->ClearStack();
printf("10进制:%i\n",N);
printf("10进制转为8进制:");
while(N!=0)        
{

stack->push(N%8);
N=N/8;
}
stack->StackTraverse();
printf("10进制转为16进制:");
while(N!=0)        
{

stack->push(N%16);
N=N/16;
}
stack->StackTraverse();
    /* while(stack->EmptyStack()!=true)
{
stack->pop(elem);
printf("%i",elem);
}   */
delete stack;
return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值