栈:只在表尾进行插入删除的线性表。
class
Stack():
def
__init__(self):
self.stack = []
def
empty(self):
return
self.stack == []
def
top(self):
if
self.empty():
return
None
else
:
return
self.stack[-
1
]
def
pop(self):
if
self.empty():
return
None
else
:
return
self.stack.pop(-
1
)
def
push(self,obj):
self.stack.append(obj)
def
length(self):
return
len( self.stack)
队列:在一端进行插入另一端进行删除的线性表。
class
Queue():
def
__init__(self):
self.data = []
def
empty(self):
return
self.data == []
def
length(self):
return
len( self.data)
def
head(self):
if
not
self.empty():
return
self.data[
0
]
else
:
return
None
def
enQueue(self,element):
self.data.append(element)
def
deQueue(self):
if
not
self.empty():
return
self.data.pop(
0
)
else
:
return
None
def
__str__(self):
return
str( self.data)