NOTICE: 本题代码是按照源码顺序贴上的,复制可直接运行
环境: Visual Stdio Code
题目:
对于输入的任意一个非负十进制整数,算出它的八进制。
说明:
严蔚敏版《数据结构》的第 48 页的算法有个问题:
出栈的时候必须有取地址符,不然会以一种类似于 copy 的形式出栈。
我稍微改了一下,毕竟书上写的是近似于伪码的算法(只是写个思路嘛,可以理解的)。
代码:
初始化:
#include<stdio.h>
#include<stdlib.h>
#define STACK_INIT_SIZE 10 // 初始分配量
#define STACKINCREMENT 1 // 分配增量
#define OK 1
#define ERROR 0
typedef int Status;
typedef int SElemType;
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;;
}SqStack;
Status InitStack(SqStack &S)
{ // 初始化
S.base = (SElemType *)malloc(STACK_INIT_SIZE *sizeof(SElemType));
if(!S.base) return ERROR;
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}//InitStack
销毁: