1. 程式人生 > >棧和佇列的實現(利用順序表)

棧和佇列的實現(利用順序表)

棧的實現

class Stack(object):
    """"棧"""
def __init__(self):
        self.__list = []

    def push(self,item):
        """新增一個新的元素item到棧頂"""
self.__list.append(item)
    def pop(self):
        """彈出棧頂元素"""
return self.__list.pop()
    def peek(self):
        """返回棧頂元素"""
if self.__list:
            return 
self.__list[-1] else: return None def is_empty(self): """判斷棧是否為空""" return self.__list == [] def size(self): """返回棧的元素個數""" return len(self.__list) if __name__ == "__main__": s = Stack() s.push(1) s.push(2) s.push(3) s.push(4) s.push(5
) print(s.pop()) print(s.pop()) print(s.pop()) print(s.pop())

D:\python3\python3.exe F:/study/code/python/.idea/stack.py
5
4
3
2
程序已結束,退出程式碼0

佇列的實現

class Queue(object):
    def __init__(self):
        self.__list = []


    def enqueue(self,item):
        """往佇列中新增一個item元素"""
self.__list.append(item)\

    def 
dequeue(self): """從佇列頭部刪除一個元素""" return self.__list.pop(0) def is_empty(self): """判斷一個佇列是否為空""" return self.__list == [] def size(self): """返回佇列的大小""" return len(self.__list) if __name__ == "__main__": q = Queue() q.enqueue(1) q.enqueue(2) q.enqueue(3) q.enqueue(4) q.enqueue(5) q.enqueue(6) q.size() print(q.dequeue()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue())

執行結果:

D:\python3\python3.exe F:/study/code/python/.idea/queue.py
1
2
3
4
5


程序已結束,退出程式碼0

相關推薦

佇列實現利用順序

棧的實現class Stack(object): """"棧""" def __init__(self): self.__list = [] def push(self,item): """新增一個新的元素item到棧頂"""

python 用佇列實現二叉樹的深度優先遍歷三種廣度優先遍歷

#coding=utf-8 #自定義佇列 class pyqueue(): def __init__(self, size): self.queue = [] self.size = size self.end =

資料結構中佇列實現基於順序迴圈佇列

    在學習資料結構中,佇列也是一個重要的資料結構,我們今天來用基於順序表的佇列(Queue),在基於順序表佇列如果是不迴圈的順序表,則在出佇列時,時間複雜度是O(n),所以我們用迴圈佇列來實現,怎麼解釋基於迴圈順序表的佇列呢?我們上圖: 上圖是在不迴圈順序表中出隊。這樣不

JavaScript佇列方法Array型別

Array 是 ECMAScript 中的陣列型別,它提供了一種讓陣列的行為類似於其他資料結構的方法。 棧方法 棧是一種 LIFO(Last-In-First-Out,後進先出)的資料結構,也就是最後新增的項最先被移除。棧中項的插入(推入,push)和移除(彈出,pop)只發生在棧頂

《資料結構》實驗三:佇列實驗 實驗報告

一.實驗目的      鞏固棧和佇列資料結構,學會運用棧和佇列。 1.回顧棧和佇列的邏輯結構和受限操作特點,棧和佇列的物理儲存結構和常見操作。 2.學習運用棧和佇列的知識來解決實際問題。 3.進一步鞏固程式除錯方法。 4.進一步鞏固模板程式設計。 二.實驗內

基於佇列實現二叉樹的遍歷

一般我們遍歷二叉樹的時候用的是遞迴,用遞迴實現比較簡單,程式碼如下: C/C++ code ? 1 2 3 4 5 6 7 8 9 10 11 12 13

佇列實現迴文判斷

#include<stdio.h> #include<stdlib.h> struct node; typedef struct node *pnode; struct node {     char info;     pnode link; };

線性判別分析(LDA)python實現多分類問題

上一篇寫過線性判別分析處理二分類問題https://blog.csdn.net/z962013489/article/details/79871789,當使用LDA處理多分類問題時,通常是作為一個降維工具來使用的。若我們有一個D維的樣本集,該樣本集包含C個類別共

10個機器學習人工智能開發框架AI庫優缺點對比/貪心學院

stat 項目 高度 新的 f11 計算 深度 就是 能開 概述 通過本文我們來一起看一些用於人工智能的高質量AI庫,它們的優點和缺點,以及它們的一些特點。 人工智能(AI)已經存在很長時間了。然而,由於這一領域的巨大進步,近年來它已成為一個流行語。人工智能曾經被稱為一

切換不同的資料狀態佈局,包含載入中、空資料出錯狀態利用開源框架

implementation 'com.github.Bakumon:StatusLayoutManager:1.0.4' 將要

java資料結構演算法09雜湊

  樹的結構說得差不多了,現在我們來說說一種資料結構叫做雜湊表(hash table),雜湊表有是幹什麼用的呢?我們知道樹的操作的時間複雜度通常為O(logN),那有沒有更快的資料結構?當然有,那就是雜湊表;   1.雜湊表簡介   雜湊表(hash table)是一種資料結構,提供很快速的插

資料結構佇列順序儲存結構鏈式儲存結構的實現

一、 實驗目的1. 熟悉棧的特點(先進後出)及棧的抽象類定義;2. 掌握棧的順序儲存結構和鏈式儲存結構的實現;3. 熟悉佇列的特點(先進先出)及佇列的抽象類定義;4. 掌握棧的順序儲存結構和鏈式儲存結構的實現;二、實驗要求1. 複習課本中有關棧和佇列的知識;2. 用C++語言

資料結構---佇列結構體實現

棧(LIFO) 棧(stack)是一種只能在一端進行插入或刪除操作的線性表。 棧頂(top):允許進行插入、刪除操作的一端 棧底(bottom):另一端稱為棧底 進棧或入棧(push):插入操作 出棧或退棧(pop):棧的刪除操作 n個不同元素通過一個棧產生的出棧

佇列面試題---一個數組實現兩個

一,用一個數組實現兩個棧(先進後出),有以下幾種方法: ①陣列的奇數位置儲存一個棧的元素,偶數位置儲存另一個棧的元素; ②兩個棧分別從陣列的中間向兩頭增長; 陣列的中間位置看做兩個棧的棧底,壓棧時棧頂指標分別向兩邊移動,當任何一邊到達陣列的起始位置或是陣

利用佇列計算帶有括號的表示式純理論

可以使用將中綴表示式轉為字尾的方法。 在這裡我以一個例子來說明:先將9+(3-1)*3+10/2轉為字尾表示式9 3 1 - 3 * + 10 2 / +,再通過計算字尾表示式得到20這個結果。 在這裡簡單的介紹一下轉換原則: 1.當讀到一個運算元時,立即

順序佇列B

<center><h2>問題 B: 出棧順序(棧和佇列)</h2><span class="green">時間限制: </span>1 Se

利用容器介面卡實現佇列

利用模板實現分別實現一個順序表和連結串列,再用著兩個順序錶鏈表來實現棧和佇列的容器介面卡 stack.h #pragma once #include"Seqlist.h" #include"list.h" //使用容器介面卡實現棧 template<class

實驗三:佇列的基本操作實現及其應用——順序

一、實驗目的1、   熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2、      學會使用棧和佇列解決實際問題。二、實驗內容1、自己確定結點的具體資料型別和問題規模:分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立一個順序佇列和鏈佇列,實

佇列面試題---用兩個佇列實現一個

一:queue是一種”先進先出”的資料結構,他在對尾插入元素,在隊頭刪除元素,他既可以取到自己的隊頭元素,也可以取到自己的隊尾元素; stack是一種”先進後出”的資料結構,他對元素的插入和

實驗4:佇列的基本操作實現及其應用之《順序佇列

實驗4:棧和佇列的基本操作實現及其應用之順序佇列 一、實驗目的 1、   熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。 2、   學會使用棧和佇列解決實際問題。 二、實驗內容 1、自己確定結點的具體資料型別和問題規模: 分別建立一個順