数制转换(c语言)
2012-10-31 19:41
106 查看
以下是用链式栈模拟数制转换的例子,只是用来练一练手感。
#include <stdio.h> #include <stdlib.h> #define true 1 #define false 0 typedef struct Node { int data; struct Node *pNext; }NODE, *PNODE; typedef struct Stack { PNODE pTop; PNODE pBottom; }STACK, *PSTACK; void init(PSTACK pS); void push(PSTACK pS, int val); int pop(PSTACK pS); int empty(PSTACK pS); int main () { STACK s; int val; int e; int i; init(&s); printf("please input a data: "); scanf("%d",&val); while (val) { push(&s,val % 8); val /= 8; } while (!empty(&s)) { e = pop(&s); printf("%d",e); } return 0; } void init(PSTACK pS) { pS->pTop = (PNODE)malloc(sizeof(NODE)); if (NULL == pS->pTop) { printf("malloc error!\n"); exit(-1); } else { pS->pBottom = pS->pTop; pS->pTop->pNext = NULL; } } void push(PSTACK pS, int val) { PNODE pNew = (PNODE)malloc(sizeof(NODE)); pNew->data = val; pNew->pNext = pS->pTop; pS->pTop = pNew; } int empty(PSTACK pS) { if (pS->pTop == pS->pBottom) { return true; } else return false; } int pop(PSTACK pS) { int e; if (empty(pS)) return false; else { PNODE r = pS->pTop; e = r->data; pS->pTop = r->pNext; free(r); r = NULL; } return e; }
相关文章推荐
- C语言实现数制转换
- C语言实现数制转换
- 数制转换(C语言实现)
- 数据结构---C语言数据结构3.2.1数制转换
- 数制转换,将10进制转换为8进制 C语言 栈的应用
- OpenJudge百炼-2798-2进制化为16进制-C语言-数制转换
- C语言数据结构中数制转换实例代码
- 百炼-2973-Skew数-C语言-数制转换
- 数据结构-C语言 栈的简单应用——10进制以内的数制转换
- C语言与Java实现:数制转换
- c语言下载者问题
- C语言中的数组越界
- Linux之C语言中如何抛出异常或将异常写入日志文件中
- 全排列---递归实现与分析(C语言)
- C语言实现的一个简单的HTTP程序
- C语言实现 计算个人所得税务2种方法
- C语言字符串库函数的实现
- C语言-运算符
- C语言中函数作为参数的问题
- C语言流程控制之循环笔记