栈实现进制转换的Python和C语义代码怎样写
Admin 2022-11-28 群英技术资讯 501 次浏览
利用栈的数据结构实现将十进制数转换成二进制数
顺序表的存储结构实现栈
代码:
#include <stdlib.h> #include <stdio.h> #define STACK_INIT_SIZE 100 //栈初始开辟空间大小 #define STACK_INCREMENT 10 //栈追加空间大小 //栈的结构体 typedef struct stack{ int *base; int *top; int size; }binStack; //栈初始化 binStack stack_init() { binStack bs; bs.base = (int *)malloc(sizeof(int)*STACK_INIT_SIZE); bs.top = bs.base; bs.size = STACK_INIT_SIZE; return bs; } //入栈 void push(binStack *bs, int e) { if(bs->top - bs->base >= bs->size) { bs->size += STACK_INCREMENT; bs->base = realloc(bs->base, bs->size); } *(bs->top++) = e; } //出栈 int pop(binStack *bs) { if(bs->top != bs->base) { bs->top--; return *bs->top; } return -1; } //主函数 void main() { int dec; binStack bs = stack_init(); printf("请输入十进制整数:\n"); scanf("%d", &dec); while(dec) { push(&bs, dec%2); dec /= 2; } printf("转换后的二进制数是:\n"); while(bs.top != bs.base) { printf("%d", pop(&bs)); } printf("\n\n"); system("date /T"); system("TIME /T"); system("pause"); exit(0); }
运行结果:
对于stack我们可以使用python内置的list实现(也可以用链表实现),因为list是属于线性数组,在末尾插入和删除一个元素所使用的时间都是O(1),这非常符合stack的要求。
代码:
import datetime //显示时间引入的库 import time // from pip._vendor.distlib.compat import raw_input //使命令窗口不立即关闭引入的库 //栈类 class BinStack: def __init__(self): self.bs = [] //入栈 def push(self, e): self.bs.append(e) //出栈 def pop(self): if self.bs: return self.bs.pop() else: raise LookupError("stack is empty!") //检查栈是否为空,是返回False,不是返回True def isEmpty(self): return bool(self.bs) if __name__ == '__main__': binStack = BinStack() dec = int(input("请输入十进制整数:\n")) print("转换后的二进制数是:") while dec != 0: binStack.push(dec%2) dec //= 2 while binStack.isEmpty() == True: print("{}".format(binStack.pop()), end="") else: print("\n") //打印时间 datetime = datetime.datetime.now() print(datetime.strftime("%Y-%m-%d\n%H:%M:%S")) //使命令窗口不立即关闭 input("Press Enter to exit…")
运行结果:
到此,关于“栈实现进制转换的Python和C语义代码怎样写”的学习就结束了,希望能够解决大家的疑惑,另外大家动手实践也很重要,对大家加深理解和学习很有帮助。如果想要学习更多的相关知识,欢迎关注群英网络,小编每天都会给大家分享实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
程序的编码风格是一个人编写程序时表现出来的特点、习惯逻辑思路等。我们在程序开发时要重视其编写规范,程序不仅应该能够在机器上正确执行,还应便于调试、维护及阅读。下面举例说明一些编程规范。
with从Python 2 5就有,需要from __future__ import with_statement。自python 2 6开始,成为默认关键字。也就是说with是一个控制流语
这篇文章主要介绍了Python数据分析之绘制ppi-cpi剪刀差图形,ppi-cp剪刀差是通过这个指标可以了解当前的经济运行状况,下文更多详细内容介绍需要的小伙伴可以参考一下
PyTorch是一个开源的Python机器学习库,很多新手在PyTorch编写代码过程中,会遇到多种问题。对此下面小编就介绍一些常见的错误提示以及解方法,希望对大家学习PyTorch有帮助。
目录1 简介2 tenacity中的常用功能2.1 tenacity的基础使用2.2 设置最大重试次数2.3 设置重试最大超时时长2.4 组合重试停止条件2.5 设置相邻重试之间的时间间隔2.6 自定义是
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008