棧和佇列的實現(利用順序表)
棧的實現
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: returnself.__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)\ defdequeue(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、自己確定結點的具體資料型別和問題規模: 分別建立一個順