栈的应用_数值转换
2015-09-29 18:29
253 查看
//
// main.cpp
// stack_数制转换
//
// Created by 王寿年 on 15/9/26.
// Copyright © 2015年
王寿年. All rights reserved.
//
#include <iostream>
using namespace
std;
#define stack_init_size 100
typedef struct {
int *top;
int *base;
int stacksize;
}Stack;
void StackInit(Stack &s)
{
s.base =
new int[stack_init_size];
s.top = s.base;
s.stacksize = stack_init_size;
}
bool StackFull(Stack &s)
{
if((int)(s.top - s.base) >= s.stacksize)
return
true;
else
return
false;
}
bool StackEmpty(Stack &s)
{
if(s.top == s.base)
return
true;
else
return
false;
}
void push(Stack &s,int e)
{
if(StackFull(s) ==
true)
{
cout <<
"栈已经满了" << endl;
exit(-2);
}
*s.top++ = e;
}
void pop(Stack &s,int &e)
{
if(StackEmpty(s) ==
true)
{
cout <<
"栈已经空了" << endl;
exit(-2);
}
e = *--s.top;
}
int StackLength(Stack &s)
{
return (int)(s.top - s.base);
}
void StackDestory(Stack &s)
{
if(s.base)
{
delete []s.base;
s.top = s.base =
NULL;
s.stacksize =
0;
}
}
void StackClear(Stack &s)
{
s.top = s.base;
}
void conversion()
{
Stack s;
StackInit(s);
int n;
cin >> n;
int m;
cin >> m;
while(n)
{
push(s,n % m);
n /= m;
}
while(!StackEmpty(s))
{
int e;
pop(s,e);
cout << e;
}
cout <<
endl;
StackDestory(s);
}
void GetTop(Stack &s,int &e)
{
if(StackEmpty(s) ==
true)
{
cout <<
"栈已经空了" <<
endl;
exit(-2);
}
e = *(s.top -
1);
}
int main()
{
conversion();
return
0;
}
// main.cpp
// stack_数制转换
//
// Created by 王寿年 on 15/9/26.
// Copyright © 2015年
王寿年. All rights reserved.
//
#include <iostream>
using namespace
std;
#define stack_init_size 100
typedef struct {
int *top;
int *base;
int stacksize;
}Stack;
void StackInit(Stack &s)
{
s.base =
new int[stack_init_size];
s.top = s.base;
s.stacksize = stack_init_size;
}
bool StackFull(Stack &s)
{
if((int)(s.top - s.base) >= s.stacksize)
return
true;
else
return
false;
}
bool StackEmpty(Stack &s)
{
if(s.top == s.base)
return
true;
else
return
false;
}
void push(Stack &s,int e)
{
if(StackFull(s) ==
true)
{
cout <<
"栈已经满了" << endl;
exit(-2);
}
*s.top++ = e;
}
void pop(Stack &s,int &e)
{
if(StackEmpty(s) ==
true)
{
cout <<
"栈已经空了" << endl;
exit(-2);
}
e = *--s.top;
}
int StackLength(Stack &s)
{
return (int)(s.top - s.base);
}
void StackDestory(Stack &s)
{
if(s.base)
{
delete []s.base;
s.top = s.base =
NULL;
s.stacksize =
0;
}
}
void StackClear(Stack &s)
{
s.top = s.base;
}
void conversion()
{
Stack s;
StackInit(s);
int n;
cin >> n;
int m;
cin >> m;
while(n)
{
push(s,n % m);
n /= m;
}
while(!StackEmpty(s))
{
int e;
pop(s,e);
cout << e;
}
cout <<
endl;
StackDestory(s);
}
void GetTop(Stack &s,int &e)
{
if(StackEmpty(s) ==
true)
{
cout <<
"栈已经空了" <<
endl;
exit(-2);
}
e = *(s.top -
1);
}
int main()
{
conversion();
return
0;
}
相关文章推荐
- Docker基础技术:AUFS
- 基于nginx和uWSGI在Ubuntu上部署Django
- HDU 5240 Exam
- Docker基础技术:Linux CGroup
- Mybatis的<where><foreach><set>等标签详解
- cadence allegro pcb模块设计复用 (转载)
- [HDOJ2048]神、上帝以及老天爷
- HDU5437 - Alisha’s Party (优先队列 模拟)
- compatMode
- 【码之初】的一道有意思的数学题
- BZOJ 3545 [ONTAK2010]Peaks Treap启发式合并
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON(),$.getScript(),$.load()的用法总结【转】
- iOS系列译文:自定义Collection View布局
- iOS视频录制,裁剪(输出指定大小)
- 当幸福来敲门观后感
- 计算机三级网络技术DHCP
- 简易四则计算器
- HTTP请求报文和HTTP响应报文
- 第八章 非规范化数据
- 长按移动cell