Stack/Queue與Vector/List的聯系

Vector:(順序表【數組存儲】)

1.當申請的空間不足的時候,需要再次開辟一塊更大的空間,并把值拷過去。

2.對于尾刪和尾插是比較方便的,只需要改動最后一個元素即可。不會改動原有的空間。適用于多次重復的對尾部插刪。

3.順序存儲,地址是連續的。

4.頭插和頭刪都需要移動一定的大小。時間復雜度為o(N)。而鏈表只需o(1)。

List:(鏈表)

1.需要每次都創建節點。

2.適用于頭刪尾插,但是不適用于多次重復的插刪,因為每次都得創建節點,釋放節點,消耗是比較大的。

3.非順序存儲,地址不連續。

4.由于節點之間地址是不連續的,所以會產生內存碎片問題。

如圖:


List和Vector還有一個重要的點是:

Vector的CPU緩存利用率比鏈表高。

簡單闡述一下:




那么,Vector/List與Stack/Queue有什么聯系呢?

Stack:[棧](后進先出)


對于棧來說,后進先出,所以是對尾部進行插刪操作,和Vector(尾插尾刪較方便)是類似的。

Queue:[隊列](先進先出)


對于隊列來說,是先進先出的。所以,對頭部刪除,尾部插入是比較方便的,剛好和鏈表(List)是類似的。

一般情況下,我們會用Vector來模擬實現棧;用List來模擬實現隊列。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382794.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382794.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382794.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

利用SetConsoleTextAttribute函數設置控制臺顏色

原文出處&#xff1a; https://blog.csdn.net/odaynot/article/details/7722240 混合顏色 #include <windows.h> #include <iostream> using namespace std;int main() {HANDLE hOut;hOut GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hOut,FOREG…

用棧實現后綴表達式求解問題

一、問題概述&#xff1a; 人們經常書寫的數學表達式屬于中綴表達式&#xff0c;今天要解決的是&#xff0c;后綴表達式的求解問題。 如下圖分別為舉例的中綴表達式和后綴表達式&#xff1a; 二、解決思路 我們用棧存儲后綴表達式中的數據部分&#xff0c;當遇到操作符時就取…

SetConsoleCursorPosition光標的位置控制

SetConsoleCursorPosition是一個計算機函數&#xff0c;如果用戶定義了 COORD pos&#xff0c;那么pos其實是一個結構體變量&#xff0c;其中X和Y是它的成員&#xff0c; 通過修改pos.X和pos.Y的值就可以實現光標的位置控制。 復制粘貼運行一下&#xff0c;你就明白代碼什么意…

用棧和遞歸求解迷宮問題

一、問題概述 小時候&#xff0c;我們都玩過走迷宮的游戲吧。看一下這個圖例&#xff1a; 遇到這種問題時&#xff0c;我們第一反應都會先找到迷宮的入口點&#xff0c;然后對上下左右四個方向進行尋跡&#xff0c; 檢測當前位置是否是通路&#xff0c;是否可以通過&#xff0…

exit(0) return區別

1. return是返回函數調用&#xff0c;如果返回的是main函數&#xff0c;則為退出程序。 exit是在調用處強行退出程序&#xff0c;運行一次程序就結束&#xff0c; 無論寫在那里&#xff0c;都是程序推出&#xff0c;括號里的數字0,1,-1會被寫入環境變量ERRORLEVEL&#xff0c…

electron 5.0.3版本 改動的地方

BrowserWindow.getFocusedWindow 1. BrowserWindow.getFocusedWindow getFocusedWindow 已經不是一個方法了&#xff0c; 這個簡單的問題解決了半天&#xff0c;因為我看文檔上 還是當一個方法來調用&#xff0c; 文檔沒有正確更新&#xff0c;實際上已經變成了一個屬性&#…

【c語言】棋盤游戲--三子棋

一、問題概述 大家都玩過棋盤游戲吧&#xff0c;像五子棋一樣&#xff0c;玩家或者是電腦一人下一次&#xff0c;當玩家或者是電腦的某一方先將各自的五個棋子下成一條線時&#xff0c;誰就贏&#xff0c;棋盤游戲就會結束。 當然&#xff0c;我今天要介紹的是三子棋&#xff…

【轉】淺析task_struct結構體

https://blog.csdn.net/peiyao456/article/details/54407343

electron 主進程與渲染進程 渲染進程與渲染進程 之間的通信

主進程與渲染進程之間的通信 這是渲染進程 // 渲染進程執行主進程里面的方法&#xff0c;主進程給渲染進程反饋處理結果 。 var sendreplayDomdocument.querySelector(#sendreplay); sendreplayDom.onclickfunction(){// alert(1213)//渲染進程給主進程廣播數據ipcRenderer.se…

centos升級之gcc 升級 gcc-7.3.0安裝

更新于&#xff1a;2018_7_28 安裝時間非常非常久&#xff0c;我最快一次40分鐘&#xff0c;最長一次兩個小時 cd / wget ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz tar -zxvf gcc-7.3.0.tar.gz cd gcc-7.3.0 ./contrib/download_prerequisites mkdir build cd …

[數據結構]用插入排序和選擇排序的思想實現優先級隊列

一、問題概述 優先級隊列的定義&#xff1a; 優先級隊列不同于普通的隊列&#xff0c;普通的隊列具有先進先出的原則&#xff0c;而優先級隊列是選擇優先級最高的先出隊。那么&#xff0c;如何模擬實現優先級隊列呢&#xff1f;在這里&#xff0c;我們將較大的值作為優先級較高…

node.js https 模塊設置請求頭等信息

// https://www.iqiyi.com/v_19rs789v28.html var fs require(fs); var https require(https); var option{rejectUnauthorized: false,hostname:www.iqiyi.com,path:/,headers:{Accept:*/*,Accept-Encoding:utf-8, //這里設置返回的編碼方式 設置其他的會是亂碼Accept-Lang…

centos升級之vim vim8.0安裝

YCM安裝攻略&#xff1a;https://blog.csdn.net/csdn_kou/article/details/81213935 卸載舊的vim yum remove vim* -y 一、源碼編譯安裝vim8.0 配置epel源 yum install epel-release 安裝python3,以及vim8.0編譯環境 yum install -y gcc python34 python34-devel ncurses…

[數據結構]求解迷宮最短路徑問題

一、問題概述 之前&#xff0c;我們了解了如何實現迷宮問題&#xff08;對于迷宮只有一個出口可以通的情況&#xff09;&#xff0c;事實上我們的迷宮有多個出口&#xff0c;對于每條路徑來說&#xff0c;有長有短&#xff0c;所以在這里&#xff0c;我們討論一下迷宮的最短路…

centos升級之內核kernel

yum update kernel yum update && yum upgrade # rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm # yum –disablerepo”*” –enablerepo”elrepo-kernel” list ava…

[STL]List的實現

STL&#xff08;Standard template Library&#xff09;:c的標準模板庫 STL是算法和數據結構的軟件框架&#xff0c;它包含了六大組件&#xff1a;算法、迭代器、容器、仿函數、配接器、空間配置器。 迭代器&#xff1a;我們可以把迭代器相當于智能指針&#xff0c;&#xff0…

python 獲取windows上 網絡連接信息 ip dhcp dns gateway

import socket import os import re def get_host_ip():"""查詢本機ip地址:return:"""try:s socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.connect((8.8.8.8,80))# 能提取出本機ip 通過本機ip提取出其他設置ip s.getsockname()[0]# ip地…