用python實現佇列,堆疊

2022-05-04 06:36:07 字數 2976 閱讀 2510

stack 堆疊: 後進先出

queue佇列 : 先進先出 fifo(first in first out)

putget

#

queue佇列 : 先進先出 fifo(first in first out)

#put

#get

#class queue:

#def __init__(self):

#self.l =

#def put(self,item):##

def get(self):

#return self.l.pop(0)

#q = queue()

#q.put(1)

#q.put(2)

#q.put(3)

#print(q.get())

#print(q.get())

#print(q.get())

#假設你希望乙個類的多個物件之間 的某個屬性 是各自的屬性,而不是共同的屬性

#這個時候我們要把變數儲存在物件的命名空間中,不能建立靜態變數,

#建立靜態變數是所有的物件共同使用乙個變數

#class stack:

#def __init__(self):

#self.l =

#def put(self,item):##

def get(self):

#return self.l.pop()##

s1 = stack()

#s2 = stack()

#s1.put(1)

#s2.put('a')

#s2.put('b')

#s2.put('c')

#s1.put(2)

#s1.put(3)

#print(s2.get())

#print(s1.get())

#print(s2.get())

#print(s2.get())

#print(s1.get())

#s1.put(4)

#print(s1.get())

#print(s1.get())

#方法一

#class foo:

#def __init__(self):

#self.l = ##

def put(self, item):##

##class queue(foo):

#def get(self):

#return self.l.pop(0)##

#class stack(foo):

#def get(self):

#return self.l.pop()

#方法二:

#class foo:

#def __init__(self):

#self.l = ##

def put(self,item):##

#def get(self):

#return self.l.pop() if self.index else self.l.pop(0)##

class queue(foo):

#def __init__(self):

#self.index = 0

#foo.__init__(self)##

class stack(foo):

#def __init__(self):

#self.index = 1

#foo.__init__(self)

#方法三

class

foo:

def__init__

(self):

self.l =

defput(self, item):

defget(self):

return

self.l.pop()

class

queue(foo):

defget(self):

return

self.l.pop(0)

class stack(foo): pass

class

mypickle:

pass

import

pickle

class

mypickle:

def__init__

(self, path):

self.file =path

defdump(self, obj):

with open(self.file, 'ab

') as f:

pickle.dump(obj, f)

defload(self):

with open(self.file, 'rb

') as f:

while

true:

try:

yield

pickle.load(f)

except

eoferror:

break

defrun():

pass

#def load(self):

#l =

#with open(self.file,'rb') as f:

#while true:

#try:##

except eoferror:

#break

#return l

#pic = mypickle('pickle_file')

#s1 = stack()

#s1.put('aaa')

#s1.put(123)

#s1.put(456)

#pic.dump(s1)

#s2 = stack()

#s2.put('aaa')

#s2.put(123)

#s2.put(456)

#pic.dump(s2)

#for i in pic.load():

#print(i.l)

python實現堆疊 佇列

一 利用python列表實現堆疊和佇列 堆疊 堆疊是乙個後進先出的資料結構,其工作方式就像生活中常見到的直梯,先進去的人肯定是最後出。後進先出 class stack def init self,size self.size size self.stack self.top 1 defpush se...

用堆疊模擬佇列,和用佇列模擬堆疊

最近在看 演算法導論 第十章裡面有一題是用了 兩個堆疊模擬乙個佇列,我設計的演算法如下 堆疊a和b,a用作入隊,b出隊 1 判隊滿 如果a滿且b不為空,則隊滿 2 判隊空 如果a和b都為空,則隊空 3 入隊 首先判隊滿。若隊不滿 1 棧a若不滿,則直接壓入棧a 2 若a滿,則將a中的所有元素彈出到棧...

python實現堆疊與佇列的方法

1 python實現堆疊,可先將stack類寫入檔案stack.py,在其它程式檔案中使用frwww.cppcns.comom stack import stack,然後就可以使用堆疊了。stack.py的程式 複製 如下 class stack def init self,size self.si...