Python数据结构栈实现进制转换简单示例

作者:西召 时间:2022-10-21 13:48:21 

栈是一种后进先出(LIFO)的数据结构,在实际生活和工作中也很常见。

比如,在餐厅里的一摞盘子,总是从上面先取,也就是最后放到上面的先被取走。再比如,浏览网页的时候,通过浏览器的回退按钮访问之前浏览过的网页,也是最后访问的先被获取到。这些存储结构,都可以称之为栈。

下面是通过Python的数组实现的栈结构源码:

# 数据结构:通过Python数组实现栈
class Stack:
   def __init__(self):
       self.items = []

# 检查栈是否为空。它不需要参数,且会返回一个布尔值。
   def is_empty(self):
       return self.items == []

# 将一个元素添加到栈的顶端。它需要一个参数item,且无返回值。
   def push(self, item):
       self.items.append(item)

# 将栈顶端的元素移除。它不需要参数,但会返回顶端的元素,并且修改栈的内容。
   def pop(self):
       return self.items.pop()

# 返回栈顶端的元素,但是并不移除该元素。它不需要参数,也不会修改栈的内容。
   def peek(self):
       return self.items[len(self.items) - 1]

# 返回栈中元素的数目。它不需要参数,且会返回一个整数。
   def size(self):
       return len(self.items)

我们可以通过栈结构,来做数字进制的转换。

我们通常生活中使用的是十进制,而在计算机世界,二进制才是通用的语言。

通过取余的方式,我们可以实现从十进制到二进制的转换,十进制转八进制也是同理。

下面是实现的源码:

import my_stack

# 十进制转二进制
def divide_by_2(number):
   stack = my_stack.Stack()

while number > 0:
       temp = number % 2
       stack.push(temp)
       number = number // 2

binStr = ''
   while not stack.is_empty():
       binStr = binStr + str(stack.pop())

return binStr

# 十进制:5 转为二进制是:101
print(divide_by_2(5))

来源:https://juejin.cn/post/7195156129687535677

标签:数据结构,栈,进制转换
0
投稿

猜你喜欢

  • 如何实现表单提交时提示正在发送

    2008-12-23 13:30:00
  • Python 利用argparse模块实现脚本命令行参数解析

    2022-12-01 16:11:55
  • Python数据分析之缺失值检测与处理详解

    2021-10-04 01:09:08
  • 浅谈pytorch、cuda、python的版本对齐问题

    2022-12-03 13:04:54
  • Python lambda表达式filter、map、reduce函数用法解析

    2022-03-30 03:52:31
  • MySQL去重的方法整理

    2024-01-27 07:04:42
  • 使用Keras画神经网络准确性图教程

    2021-02-17 03:20:28
  • 彻底解决ewebeditor网站后台不能上传图片的方法

    2023-07-09 04:09:01
  • asp文章干扰码实现方法

    2007-08-19 18:07:00
  • python爬虫实现爬取同一个网站的多页数据的实例讲解

    2021-04-11 13:52:09
  • 浅析JavaScript中的常用算法与函数

    2024-05-03 15:32:53
  • matplotlib基础绘图命令之imshow的使用

    2023-12-27 17:08:58
  • python中asyncore异步模块的实现

    2023-10-23 00:50:07
  • webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)

    2024-04-27 16:10:21
  • Python通过Tesseract库实现文字识别

    2023-02-28 13:29:46
  • PHP常量及变量区别原理详解

    2023-09-05 06:35:45
  • 微信小程序转化为uni-app项目的方法示例

    2024-03-23 19:34:39
  • Python 经典贪心算法之Prim算法案例详解

    2024-01-01 18:18:27
  • MySQL中对于not in和minus使用的优化

    2024-01-17 04:17:20
  • 详解PyCharm+QTDesigner+PyUIC使用教程

    2022-09-24 07:56:20
  • asp之家 网络编程 m.aspxhome.com