Python數(shù)據(jù)結(jié)構(gòu)棧實現(xiàn)進(jìn)制轉(zhuǎn)換簡單示例
棧是一種后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),在實際生活和工作中也很常見。
比如,在餐廳里的一摞盤子,總是從上面先取,也就是最后放到上面的先被取走。再比如,瀏覽網(wǎng)頁的時候,通過瀏覽器的回退按鈕訪問之前瀏覽過的網(wǎng)頁,也是最后訪問的先被獲取到。這些存儲結(jié)構(gòu),都可以稱之為棧。
下面是通過Python的數(shù)組實現(xiàn)的棧結(jié)構(gòu)源碼:
# 數(shù)據(jù)結(jié)構(gòu):通過Python數(shù)組實現(xiàn)棧
class Stack:
def __init__(self):
self.items = []
# 檢查棧是否為空。它不需要參數(shù),且會返回一個布爾值。
def is_empty(self):
return self.items == []
# 將一個元素添加到棧的頂端。它需要一個參數(shù)item,且無返回值。
def push(self, item):
self.items.append(item)
# 將棧頂端的元素移除。它不需要參數(shù),但會返回頂端的元素,并且修改棧的內(nèi)容。
def pop(self):
return self.items.pop()
# 返回棧頂端的元素,但是并不移除該元素。它不需要參數(shù),也不會修改棧的內(nèi)容。
def peek(self):
return self.items[len(self.items) - 1]
# 返回棧中元素的數(shù)目。它不需要參數(shù),且會返回一個整數(shù)。
def size(self):
return len(self.items)我們可以通過棧結(jié)構(gòu),來做數(shù)字進(jìn)制的轉(zhuǎn)換。
我們通常生活中使用的是十進(jìn)制,而在計算機世界,二進(jìn)制才是通用的語言。
通過取余的方式,我們可以實現(xiàn)從十進(jìn)制到二進(jìn)制的轉(zhuǎn)換,十進(jìn)制轉(zhuǎn)八進(jìn)制也是同理。
下面是實現(xiàn)的源碼:
import my_stack
# 十進(jìn)制轉(zhuǎn)二進(jìn)制
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
# 十進(jìn)制:5 轉(zhuǎn)為二進(jìn)制是:101
print(divide_by_2(5))總結(jié)
到此這篇關(guān)于Python數(shù)據(jù)結(jié)構(gòu)棧實現(xiàn)進(jìn)制轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)結(jié)構(gòu)棧進(jìn)制轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
tensorflow2.10使用BERT實現(xiàn)Semantic Similarity過程解析
這篇文章主要為大家介紹了tensorflow2.10使用BERT實現(xiàn)Semantic Similarity過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
wxpython中自定義事件的實現(xiàn)與使用方法分析
這篇文章主要介紹了wxpython中自定義事件的實現(xiàn)與使用方法,結(jié)合實例形式詳細(xì)分析了wxpython中自定義事件的創(chuàng)建步驟與使用方法,需要的朋友可以參考下2016-07-07
Pandas之使用drop_duplicates:去除重復(fù)項
這篇文章主要介紹了Pandas之使用drop_duplicates:去除重復(fù)項方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Python實現(xiàn)將Sheet頁拆分成單獨的Excel文件
這篇文章主要為大家詳細(xì)介紹了如何使用 Python 將一個 Excel 文件中的每個工作表(Sheet)保存成單獨的 Excel 文件,有需要的小伙伴可以了解下2025-02-02
Python圖像識別+KNN求解數(shù)獨的實現(xiàn)
這篇文章主要介紹了Python圖像識別+KNN求解數(shù)獨的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python進(jìn)程間通信multiprocess代碼實例
這篇文章主要介紹了Python進(jìn)程間通信multiprocess代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03

