单向链栈实现进制转换(十进制转换成N进制数【正数】)
来源:互联网 发布:淘宝开店有什么要求 编辑:程序博客网 时间:2024/05/22 14:29
#include <stdio.h>#include <stdlib.h>#include <malloc.h>//数据节点结构体定义typedef struct numNode{int data;struct numNode *next;}numNode;//栈结构定义typedef struct{int length;numNode *end;}numStack;numStack * initNumStack();//创建并初始化栈void push(numStack *stack, int num);//入栈操作numNode * pop(numStack *stack);//出栈操作void destroy(numStack *stack);//栈的销毁void display(numStack *stack);//栈的打印char num_to_char(const int num);//数字转换成字符numStack * convert(int num, const int radix);//十进制数num转换成radix进制数//创建并初始化空栈numStack * initNumStack(){numStack *stack = (numStack *)malloc(sizeof(numStack));if (NULL == stack)exit(-1);stack->length = 0;stack->end = NULL;return stack;}//压栈操作void push(numStack *stack, int num){if (NULL == stack)exit(-1);numNode *num_node = (numNode *)malloc(sizeof(numNode));num_node->data = num;if (NULL == num_node)exit(-1);num_node->next = stack->end;stack->end = num_node;++stack->length;}//出栈操作numNode * pop(numStack *stack){numNode *node_tmp = NULL;if (NULL == stack || 0 == stack->length)return NULL;node_tmp = stack->end;stack->end = node_tmp->next;--stack->length;return node_tmp;}//销毁栈void destroy(numStack *stack){numNode * tmp = NULL;while(NULL != (tmp = pop(stack)))free(tmp);if(stack)free(stack);}//打印栈数据void display(numStack *stack){numNode * tmp = NULL;if (stack){tmp = stack->end;while(tmp){printf("%c ", num_to_char(tmp->data));tmp = tmp->next;}printf("\n");}}//数字转换成字符char num_to_char(const int num){if(num < 10)return '0'+num;elsereturn 'A'+num-10;}//十进制转换成n进制的实现函数numStack * convert(int num, const int radix){numStack *stack = initNumStack();while (num){push(stack, num%radix);num /= radix;}return stack;}int main(){numStack * resoult = convert(128, 7);display(resoult);destroy(resoult);return 0;}
0 0
- 单向链栈实现进制转换(十进制转换成N进制数【正数】)
- 进制转换(十进制转换N进制)的实现
- 数制转换:如何将十进制数N转换为x进制数?(用栈实现)
- 递归实现十进制到n[2, 10]进制转换
- 递归实现十进制到n[2, 10]进制转换
- 进制转换(十进制数m转换成n进制)
- 十进制数转换成N进制数
- n进制数转换成十进制数
- 进制转换(十进制转n进制)
- 十进制到n进制的转换
- n进制转换为十进制
- 十进制转换为N进制问题
- n进制转换为十进制
- n进制转换为十进制
- 输入一个十进制数N,将它转换成R进制数输出(运用递归实现)
- 进制转换-----十进制转换成二进制
- 利用栈实现进制转换1,常用进制转换成十进制
- 【seuoj】90: 进制转换(正数)
- ASP.NET Web API详解
- extract indecies 源码 为什么reader读不进去pcd文件呢?我想是否因为配置问题?
- 数字图像处理—像素间联系-连接-连通
- C++由于指针对象释放,造成Std::__non_rtti_Object例外发生
- smarty模板引擎之if, elseif else
- 单向链栈实现进制转换(十进制转换成N进制数【正数】)
- PHP中die()与exit()的区别
- win8.1 VMware9 安装(仅供同学参考)
- Remove Duplicates from Sorted List - LeetCode
- log4net
- 图像分类属于哪种形状
- 深入了解scanf/getchar/gets/cin等函数
- OC之基本控件四
- HDU 2602 1203 2955