关于数据结构中栈的问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:07:15
使用一个栈将一个n进制数变为一个n进制数,例如把一个十进制数变为一个8进制数,用c语言实现,、。使用《数据结构》严蔚敏版的相关栈的知识解决(我没有分了,望高手不吝赐教)
能够运行。用完整的c格式书写

首先你得先实现一个栈的数据结构,主要包括函数InitStack()、Push()、Pop()、StackEmpty()。例如:

#include <stdio.h>
// 函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
// Status是函数的类型,其值是函数结果状态代码
typedef int Status;
typedef int SElemType;

// = = = = = ADT Stack的表示和实现 = = = = =

// - - - - - 栈的顺序存储表示 - - - - -

#define STACK_INIT_SIZE 100 // 存储空间初始分配量
#define STACKINCREMENT 10 // 存储空间分配增量
typedef struct{
SElemType *base; // 在栈构造之前和销毁之后,base的值为NULL
SElemType *top; // 栈顶指针
int stacksize; // 当前已分配的存储空间,以元素为单位
}SqStack;

// - - - - - 基本操作的算法描述(部分) - - - - -
Status InitStack(SqStack &S){
// 构造一个空栈S
S.base = (SElemType*)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!S.base) exit(OVERFLOW); // 存储分配失败
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}//