用栈来进行数字的进制转换
来源:互联网 发布:卷皮折扣和淘宝那个好 编辑:程序博客网 时间:2024/05/21 17:29
#include<malloc.h> #include<stdio.h> #include<stdlib.h> typedef int Status; typedef int SElemType; #define STACK_INIT_SIZE 100 #define STACKINCREMENT 20#define OVERFLOW -2#define OK 1#define ERROR 0typedef struct SqStack { SElemType *base; SElemType *top; int stacksize; } SqStack; // 顺序栈 Status InitStack(SqStack &S) { // 构造一个空栈S if(!(S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)))) exit(OVERFLOW); // 存储分配失败 S.top=S.base; S.stacksize=STACK_INIT_SIZE; return OK; }int GetTop(SqStack S) { // 若栈不空,则用e返回S的栈顶元素 if(S.top>S.base) return *(S.top-1); } Status Push(SqStack &S,SElemType e) { // 插入元素e为新的栈顶元素 if(S.top-S.base>=S.stacksize) // 栈满,追加存储空间 { S.base=(SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S.base) exit(OVERFLOW); // 存储分配失败 S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; } *S.top=e;S.top++; return OK; } Status Pop(SqStack &S,SElemType &e) { // 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR if(S.top==S.base) return ERROR;//e=*--S.top;//e=*S.top; S.top--; e=*S.top;return e; } Status StackTraverse(SqStack S,Status(*visit)(SElemType)) { // 从栈底到栈顶依次对栈中每个元素调用函数visit()。 // 一旦visit()失败,则操作失败 while(S.top>S.base) visit(*S.base++); printf("\n"); return OK; } int main() {SqStack S;int x,y,e;InitStack(S);printf("输入一个十进制数:\n");scanf("%d",&x);while(x){Push(S,x%8);x=x/8;}while(S.base!=S.top){y=Pop(S,e);printf("%d",y);}return 0; }
阅读全文
0 0
- 用栈来进行数字的进制转换
- 数字转换成指定进制的数字字符串
- 数字进制转换
- javascript 各种数字进制的转换
- js 实现数字的进制转换
- java 数字的进制转换
- C++ 使用stringstream进行字符串与数字的转换
- 使用栈进行进制的转换
- sql 数字进制转换
- 进制转换,字符 <--> 数字
- 获取系统时间,指定时间的星期,进行格式转换,数字转换为带,的
- 十进制内的任意进制之间的数字转换
- as3——数字进制的转换
- 不同进制的数字字符串互相转换
- C语言入门-数字的进制转换
- 数字转换成字符串进行连接
- 字符串与数字进行转换[C#]
- C# 控制台输入输出非字符串类型数据的方法[进制数字转换为八进制数字]
- Codeforces Round #877 (Div. 2) B.
- sql语言简单应用
- SSL2837 2017年11月6日提高组T1 互质(math)
- AVL树
- VINS技术路线与代码详解
- 用栈来进行数字的进制转换
- Oracle:时间戳
- Dialvik/ARP(ANDROID)中的多线程机制(2)
- netty对http协议解析原理解析
- 【减治法】插入排序及C++代码实现
- 基础练习 完美的代价(蓝桥杯 字符串问题)
- cygwin工具安装使用
- 最少货币数问题
- 进程fork和vfork函数复习