栈实现进制转换的Python和C语义代码怎样写
Admin 2022-11-28 群英技术资讯 920 次浏览
这篇文章主要讲解了“栈实现进制转换的Python和C语义代码怎样写”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。利用栈的数据结构实现将十进制数转换成二进制数
顺序表的存储结构实现栈
代码:
#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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
python编码要注意哪些规范?我们在学习python编码的时候,要有好的编码习惯,所有了解python编码规范很有必要。因此,下面就给大家来介绍一下关于缩进、行的最大长度、空行、命名约定、字符串引号、注释等使用的规范。
工作中偶尔会收到一大堆文件,名称各不相同,分析文件的时候发现有不少重复的文件,导致工作效率低下,那么,这里就写了一个python脚本实现文件去重功能,感兴趣的就一起来了解一下
这篇文章主要介绍了Python 操作 Excel 之 openpyxl 模块,文章基于python的相关资料展开对 openpyxl 模块的详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
这篇文章主要介绍了Python用来做Web开发的优势有哪些,Python适合从简单到复杂的各种Web项目。它广泛用于旅行,医疗保健,交通运输,金融等不同领域,用于Web开发和软件测试,脚本编写和生成。
内容介绍事件绑定方法常用事件类型Event事件对象事件处理,是GUI程序中不可或缺的重要组成部分,相比来说,控件只是组成一台机器的零部件,而事件处理则是驱动这台机器正常&rdquo
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008