当前位置: 首页 > news >正文

数据结构(四)——栈的应用—数制转换

利用栈进行数制转换:

十进制转换八进制:先将十进制数除以八得到余数,余数入栈,然后将得到的商继续除以八,直到商为零

#include <stdio.h>
#include <stdlib.h>#define MAXSIZE 100//数制转换//定义链表节点结构体
typedef struct{int data[MAXSIZE];int top;
}Stack;//初始化栈
void InitStack(Stack *S){S->top = -1;  //栈为空
}//判断栈是否为空
int StackEmpty(Stack *S){return S->top == -1;
}//入栈
void Push(Stack *S,int value){if(S->top<MAXSIZE-1){S->data[++(S->top)] = value;}else{printf("Stack overflow!\n");}
}//出栈
void Pop(Stack *S,int *value){if(!StackEmpty(S)){*value = S->data[(S->top)--];}else{printf("Stack underflow!\n");}
}void conversation(){Stack S; //定义栈变量int N,e;//对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数InitStack(&S);  //构造空栈scanf("%d",&N);if(N == 0){printf("0\n");return;}//十进制转八进制while(N){Push(&S,N % 8); //余数入栈N = N / 8; }//输出八进制数while(!StackEmpty(&S)){Pop(&S,&e);printf("%d",e);}printf("\n");
} //conversationint main() {conversation();return 0;
}

相关文章:

  • Vue3中emits和emit
  • App Store支付新政重构跨境电商生态:eBay卖家的突围之道
  • ABP vNext + gRPC 实现服务间高速通信
  • 【嵌入式面试高频知识点】-wifi相关
  • [硬件电路-18]:MCU - LPC1765FBD100是恩智浦(NXP)半导体推出的一款基于ARM Cortex-M3内核的高性能32位微控制器
  • Python3 上下文管理器:优雅管理资源的艺术
  • Java复习笔记-基础
  • Python cv2特征检测与描述:从理论到实战
  • Python量化交易Backtrader技术指标的实现
  • 【嵌入式开发-CAN】
  • ProfiNet与CANopen:新能源时代的“语言翻译官”
  • MySQL事务隔离机制与并发控制策略
  • Java详解LeetCode 热题 100(13):LeetCode 53:最大子数组和(Maximum Subarray)详解
  • maven 依赖冲突异常分析
  • Java基础
  • matlab稳定求解高精度二维对流扩散方程
  • 线代第二章矩阵第五、六、七节矩阵的转置、方阵的行列式、方阵的伴随矩阵
  • 初始图形学(8)
  • 图神经网络中的虚拟节点
  • Vue3快速入门/Vue3基础速通
  • A股三大股指低收:银行股再度走强,两市成交11920亿元
  • 71岁导演詹姆斯・弗雷病逝,曾执导《纸牌屋》、麦当娜MV
  • 新疆维吾尔自治区乌鲁木齐市米东区政协原副主席朱文智被查
  • 美众议院通过法案将“墨西哥湾”更名为“美国湾”
  • OpenAI任命了一位新CEO
  • 首届上海老年学习课程展将在今年10月举办