链栈的多进制应用
2011-08-02 20:22
253 查看
此程序应用上个程序改造编写的。
结果图:
总结:刚刚开始写的时候,我在push函数写进制转换,感觉很奇怪;
然后参考一些程序,进制函数要独立写的,我想起一个函数的内聚度,
就是一个函数完成一个功能,这样函数利用率大,结构分明。
原来求进制这么简单。只需三行就可以。
#include <iostream> using namespace std; #include <stdlib.h> #define ERROR 0 #define OK 1 typedef struct Nlink { //栈的链式结构 int data; //数据域 Nlink *top; //出栈 Nlink *base; //进栈 }Nlink,*linklist; bool init_link(linklist &L) { //栈的初始化 L = (linklist)malloc(sizeof(Nlink)); if(!L) return ERROR; L ->base = NULL; //栈顶和栈底指向NULL值 L ->top = L ->base; return OK; } bool push_link(linklist &L,int elem) { //入栈函数 linklist T; T = (linklist)malloc(sizeof(Nlink)); //运用逆向建表方式,进行压栈 if(!T) return ERROR; T ->data = elem; T ->top = L; L = T; return OK; } void pop_link(linklist L) { //出栈函数 while (L ->top != L->base) { cout << L ->data; L = L ->top; } } bool base_output(linklist &L) { int num,base; cout << "input num and base :" <<endl; cin >> num >> base; do { push_link(L,num % base); num /= base; }while(num !=0); return OK; } bool main() { linklist P; init_link(P); base_output(P); pop_link(P); free(P); while(OK); return OK; }
结果图:
总结:刚刚开始写的时候,我在push函数写进制转换,感觉很奇怪;
然后参考一些程序,进制函数要独立写的,我想起一个函数的内聚度,
就是一个函数完成一个功能,这样函数利用率大,结构分明。
原来求进制这么简单。只需三行就可以。
相关文章推荐
- 使用链栈来对十进制数进行任意进制的转换
- 数据结构的应用——使用栈实现十进制到其他(2、8、16)进制的转换
- 数据结构栈应用之进制转换
- 数据结构-C语言 栈的简单应用——10进制以内的数制转换
- 栈的应用之进制转换
- 字符串拷贝与进制转换的简单应用
- 数据结构的应用——使用栈实现十进制到其他(2、8、16)进制的转换
- 实验4:栈和队列的基本操作实现及其应用——链栈
- 栈的应用一:JavaScript实现数字进制间的相互转换
- 数制转换,将10进制转换为8进制 C语言 栈的应用
- shell脚本编程应用:进制转化,bc中的ibase与obase
- java 堆栈应用一 十进制转M进制
- 栈的应用 10进制的转换
- 再回首,数据结构——链栈的其它一些操作和应用
- 第12周 数据结构和算法 线性表-5 栈-栈完成进制转换及应用
- 栈的应用——数值转换为任意进制
- 链栈的应用
- 栈的应用----10进制转换为其他进制
- 栈的应用之进制转化
- 整数N进制以及其应用