任意十进制非负整数转化为八进制

本文介绍了如何将任意非负十进制整数转化为八进制,指出严蔚敏版《数据结构》书中算法的一个问题,并提供了一个修改后的C语言实现。代码包括初始化、入栈、出栈等关键操作,最终展示运行结果。
摘要由CSDN通过智能技术生成

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

销毁:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值