python實(shí)現(xiàn)堆棧與隊(duì)列的方法

字號(hào):


    本文實(shí)例講述了python實(shí)現(xiàn)堆棧與隊(duì)列的方法。分享給大家供大家參考。具體分析如下:
    1、python實(shí)現(xiàn)堆棧,可先將Stack類寫入文件stack.py,在其它程序文件中使用from stack import Stack,然后就可以使用堆棧了。
    stack.py的程序:
    復(fù)制代碼 代碼如下:class Stack():
    def __init__(self,size):
    self.size=size;
    self.stack=[];
    self.top=-1;
    def push(self,ele): #入棧之前檢查棧是否已滿
    if self.isfull():
    raise exception("out of range");
    else:
    self.stack.append(ele);
    self.top=self.top+1;
    def pop(self): # 出棧之前檢查棧是否為空
    if self.isempty():
    raise exception("stack is empty");
    else:
    self.top=self.top-1;
    return self.stack.pop();
    def isfull(self):
    return self.top+1==self.size;
    def isempty(self):
    return self.top==-1;
    再寫一個(gè)程序文件,stacktest.py,使用棧,內(nèi)容如下:
    復(fù)制代碼 代碼如下:#!/usr/bin/python
    from stack import Stack
    s=Stack(20);
    for i in range(3):
    s.push(i);
    s.pop()
    print s.isempty();
    2、python 實(shí)現(xiàn)隊(duì)列:
    復(fù)制代碼 代碼如下:class Queue():
    def __init__(self,size):
    self.size=size;
    self.front=-1;
    self.rear=-1;
    self.queue=[];
    def enqueue(self,ele): #入隊(duì)操作
    if self.isfull():
    raise exception("queue is full");
    else:
    self.queue.append(ele);
    self.rear=self.rear+1;
    def dequeue(self): #出隊(duì)操作
    if self.isempty():
    raise exception("queue is empty");
    else:
    self.front=self.front+1;
    return self.queue[self.front];
    def isfull(self):
    return self.rear-self.front+1==self.size;
    def isempty(self):
    return self.front==self.rear;
    q=Queue(10);
    for i in range(3):
    q.enqueue(i);
    print q.dequeue();
    print q.isempty();
    希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。