用栈实现进制的转换

来源:百度知道 编辑:UC知道 时间:2024/05/31 22:27:07
如果用itoa()函数的话,我可以用一条语句就实现了。不过最近在学数据结构,所以想用栈的方法,实现下。不会有点问题,每次都只能得到栈弹出的最后一个余数,不知道有没有方法可以解决,请教下哈!!(可以实现的一定再加分哈)
代码比较长,我整在这里了哈:
http://www.rupeng.com/forum/thread-1554-1-1-uid263.html
说明下哈!!这个控制台下的我已经写出来了哈!!! 想用对话框实现有点问题。。。

程序如下,运行通过:
#include <stdio.h>
#include <stdlib.h>
#define maxsize 50

typedef int elemtype;

typedef struct
{
elemtype data[50];
int top;
}sqstack; /*顺序栈类型定义*/

void initstack(sqstack *s) /*建立空栈*/
{
s=(sqstack *)malloc(sizeof(sqstack));
s->top=-1;
}

int stacklength(sqstack *s) /*求栈长*/
{
return (s->top+1);
}

elemtype gettop(sqstack *s)/*取栈顶元素*/
{
elemtype x;
if(s->top==-1) return 0;
x=s->data[s->top];
return x;
}

int push(sqstack *s,elemtype x)/*在栈顶插入新元素*/
{
s->top++;
s->data[s->top]=x;
return 1;
}

int pop(sqstack *s)/*删除栈顶元素*/
{
if(s->top==-1) return 0;
else s->top--;
return 1;
}

int stackempty(sqstack *s)/*判断栈是否为空*/
{
if(s->top==-1) return 1;
else retur