基本概念
1.棧(stacks)是一種只能通過訪問其一端來實現(xiàn)數(shù)據(jù)存儲與檢索的線性數(shù)據(jù)結(jié)構(gòu),具有后進先出(last in first out,LIFO)的特征
2.隊列(queue)是一種具有先進先出特征的線性數(shù)據(jù)結(jié)構(gòu),元素的增加只能在一端進行,元素的刪除只能在另一端進行。能夠增加元素的隊列一端稱為隊尾,可以刪除元素的隊列一端則稱為隊首。
實現(xiàn)
Stack的實現(xiàn)
```
class stack():
def __init__(self):
self.stack = []
def empty(self):
return self.stack==[]
def push(self,data):
self.stack.append(data)
def pop(self):
if self.empty():
return None;
else:
return self.stack.pop(-1)
def top(self):
if self.empty():
return None
else:
return self.stack[-1]
def length(self):
return len(self.stack)
```
隊列的實現(xiàn)
```
class queue():
def __init__(self):
self.queue = []
def empty(self):
return self.queue == []
def enqueue(self,data):
self.queue.append(data)
def dequeue(self):
if self.empty():
return None
else:
return self.queue.pop(0)
def head(self):
if self.empty():
return None
else:
return self.queue[0]
def length(self):
return len(self.queue)
```