網站首頁 編程語言 正文
棧是一種后進先出(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
相關推薦
- 2022-10-08 C#中的timer與線程使用_C#教程
- 2022-12-03 Nginx部署SSL證書的過程_nginx
- 2022-07-20 C語言實例講解嵌套語句的用法_C 語言
- 2022-10-06 Python?PaddlePaddle機器學習之求解線性模型_python
- 2022-12-07 C語言數據結構中樹與森林專項詳解_C 語言
- 2022-12-23 C++類中如何使用定義的類型別名_C 語言
- 2022-05-31 python應用之如何使用Python發送通知到微信_python
- 2022-05-22 KVM?介紹及作用詳解_Kvm
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支