python 堆疊與佇列

2021-06-27 00:10:33 字數 2188 閱讀 8907

昨天嘗試了python的鍊錶操作,一時意猶未盡,就連續寫了幾行python堆疊與佇列的**。當然python作為高階語言,一般都要使用到類。在抒寫**之前,首先要對堆疊和佇列兩種資料結構進行分析,提取出各自類的特徵屬性(資料和方法)。

class stack:

def __init__(self,.top.):

# top指標

def push(self,data):

#data入棧

def pop(self):

#data 出棧

return data

def isempty(self):

#堆疊判空

以上是堆疊類的簡易**,裡面的資料和方法都是堆疊的基本特徵和操作。同樣依據這一方法,給出如下的queue類的簡易**:

class stack:

def __init__(self,head.tail):

# head 節點

# tail 節點

def enqueue(self,data):

#data入對

def dequeue(self):

#data 出對

return data

def isempty(self):

#佇列判空

class mystack:

def __init__(self,top = 0):

self.top = top

self.size = 0

def push(self, data):

tmp_node = node(data, none)

if self.size == 0:

self.top = tmp_node

self.size += 1

return

tmp_node.p_next = self.top

self.top = tmp_node

self.size += 1

def pop(self):

if self.isempty():

print "the stack is already empty!"

return

tmp_value = self.top.data

self.top = self.top.p_next

self.size -= 1

return tmp_value

def isempty(self):

return self.top is none

class myqueue:

def __init__(self, head = 0, tail = 0):

self.head = head

self.tail = tail

self.size = 0

def enqueue(self,data):

tmp_node = node(data, none)

if self.isempty():

self.head = tmp_node

self.tail = tmp_node

self.head.p_next = self.tail

self.tail.p_next = none

self.size += 1

return

self.tail.p_next = tmp_node

self.tail = self.tail.p_next

self.size += 1

def dequeue(self):

if self.isempty():

print "queue is empty!"

return

tmp_data = self.head.data

self.head = self.head.p_next

self.size -= 1

return tmp_data

def isempty(self):

return self.size == 0

需要說一句的是,queue類的實現採用了和stack類一樣的模式方法,但是這不是唯一一種,用兩個stack來模仿queue也未嘗不可,僅需要queue類中例項化2個stack(s1,s2),剩下的所有操作皆可由s1、s2配合完成。**也非常簡單,就不貼出來了....

堆疊與佇列

堆疊與佇列可以用陣列實現,也可以用鍊錶實現。下文統一用鍊錶實現上述資料結構。堆疊服從先進後出原則,只對棧頭進行刪除和插入操作,即封鎖了鍊錶的一端,只對鍊錶的另一端進行操作,就形成了邏輯上的堆疊結構。節點 public class stacknode 堆疊實現 public class stackli...

佇列與堆疊

兩個線性資料結構 堆疊 stack 和佇列 queue 堆疊中元素具有後進先出lifo last in fisrt out 而佇列中的元素確實先進先出fifo fisrt in last out define maxsize 50 define false 0 define true 1 typed...

python實現堆疊 佇列

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