栈的应用_数值转换
来源:互联网 发布:w10系统优化加速 编辑:程序博客网 时间:2024/06/14 21:17
//
// main.cpp
// stack_数制转换
//
// Created by 王寿年 on 15/9/26.
// Copyright © 2015年王寿年. All rights reserved.
//
#include <iostream>
using namespacestd;
#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)
returntrue;
else
returnfalse;
}
bool StackEmpty(Stack &s)
{
if(s.top == s.base)
returntrue;
else
returnfalse;
}
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();
return0;
}
- 栈的应用_数值转换
- 栈的应用--数值转换
- 关于”栈“的应用:数值转换
- 数据结构_栈实现数值转换
- 【学习点滴-数据结构-栈&队列】 栈的应用之一:数值转换
- 看数据结构写代码(10)栈的应用(一) 数值转换
- 栈的应用——数值转换为任意进制
- 算法_数字转换为汉字数值_自己写了好多种_自认这是最简单的算法_
- JS的数值转换
- 数值字符串和数值之间的转换
- [Java 数值] 数值类型之间的转换
- Java_语法基础_基本数值与包装对象的转换
- 字符 和 数值的转换
- reverse_bits(二进制的数值转换)
- 含有数值字符串的转换
- 字符串和数值的转换
- C#数据类型转换-数值字符串和数值之间的转换
- 关于泛型的一点应用(数值类型间的转换)
- Mybatis的<where><foreach><set>等标签详解
- C++进阶学习——线程基类的设计(Linux)
- 排序(三)之插入排序
- Docker基础技术:Linux CGroup
- HDU 5240 Exam
- 栈的应用_数值转换
- Docker基础技术:AUFS
- Jasmine: JavaScript 单元测试框架
- 优秀的protobuf实例
- jQuery选择器总结
- 对于新手 接口的理解
- Developing Skills
- 多个输入
- EM算法小结