數據結構基礎:線性表學習筆記

? ? ? ?? ? ? ?

1、線性表定義

線性表是指n個元素的有限序列(n>=0),通常用(a1,a2,a3...,an),來表示。

2、線性表特點

1、存在唯一的一個首元素

2、存在唯一一個尾元素

3、除第首元素外,每個元素只有一個直接前驅。

4、除尾元素外,每個元素只有一個直接后繼。

3、線性表的存儲結構

3.1 線性表的順序存儲

定義:線性表的順序存儲是指用一組連續的存儲單元依次存儲線性表中的數據元素,從而使得邏輯上相鄰的兩個元素在物理存儲位置上也相鄰。這種存儲方式無需占用額外的存儲空間來存儲。

優點:可以隨機讀取 表中的元素。按照序號檢索元素比較快。

缺點:插入、刪除元素都需要移動元素。

3.2 線性表的鏈式存儲

3.2.1 線性表的概念

定義:是節點來存儲數據元素,元素節點的地址可以連續,也可以不連續。因此節點之間的元素的存儲必須有邏輯關系。

元素節點:包含數據域、指針域(存儲該元素的直接前驅、直接后繼的位置信息)

優點:插入和刪除操作不需要移動元素。、

缺點:只能順序的讀取元素,不能隨機讀取。

3.2.2 線性鏈表的分類

單鏈表:最后一個節點指針域為null

循環鏈表:最后一個指針域為指向第一個節點。因此循環鏈表可以從任意節點開始遍歷整個鏈表。

雙向鏈表:每個節點包含兩個指針,分別指明當前元素的直接前驅和直接后繼的存儲信息。可以從兩個方向遍歷鏈表中的元素。

3.3 ?線性表順序存儲和鏈式存儲比較

性能方面

比較內容

順序存儲

鏈式存儲

空間性能

存儲密度

=1 ?更優

<1


存儲容量

初始化確定

動態分配,更優


查詢算法

O(n/2)

O(n/2)


讀取算法

O(1) 更優

O([n+1]/2),范圍1~n


插入算法

O([n]/2),范圍0~n

O(1) 更優


刪除算法

O([n-1]/2)

O(1) 更優

?

?

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

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

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

相關文章

c語言流水燈小程序,流水燈小程序.doc

流水燈小程序流水燈小程序#include void delay() //延時函數&#xff0c;這里延時100ms{int i,j;for(i0;i<100;i){for(j0;j<2242;j){} //j循環一次大概1ms}}void main(){ //這里看LED原理圖LPC_IOCON->JTAG_TMS_PIO1_00x01;//定義p1.0引腳為輸出LPC_IOCON->JTAG_TD…

iphone導出照片到電腦_iPhone里的照片如何快速導入電腦

前幾日我一好友發微信問我&#xff1a;“向陽&#xff0c;我手機里有一萬多張照片&#xff0c;怎么能快速的備份到電腦里&#xff1f;”我一看這問題&#xff0c;確實很多果友從用蘋果手機開始&#xff0c;機器已經更新換代了好多代了&#xff0c;照片是越來越多&#xff0c;內…

數據結構基礎:棧和隊列學習筆記

1、棧1.1 棧的定義棧是只能通過訪問它的一端來實現數據的存儲和檢索的一種特殊的線性數據結構。棧的修改要遵循先進后出的原則&#xff0c;這個是棧的核心。在棧中進行插入和刪除操作的一端稱為棧頂&#xff08;Top&#xff09;。另一端被稱為棧底&#xff08;bottom&#xff0…

Jquery高級編程

1.javascript具有等于&#xff08;&#xff09;和等同&#xff08;&#xff09;等號操作符是危險的&#xff0c;因為它在執行比較之前&#xff0c;強制執行類型轉換。 2.非侵擾式編程。 3.3.3Jquery的框架結構&#xff0c;待深入理解。 4.選擇器 a.元素選擇器&#xff08;元素屬…

C語言鏈表為什么倒著輸出,關于鏈表倒著存,正著輸出。

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓題目要求是你輸入a->b->c->d&#xff0c;然后存在內存里&#xff0c;然后改變在內存里的存儲&#xff0c;改成存d->c->b->a&#xff0c;然后輸出還是abcd&#xff0c;能不能就是用一個數組也存一份輸入的&#x…

idea @Autowired 注入爆紅(無法注入)

問題如下圖所示,idea Autowired 注入爆紅(無法注入) seettings ----> Editor Inspactions ----->spring ---->spring Core ----> Code ----> Autowring for Bean Class 去掉那個勾 效果如下

華為手機相冊怎么鏡像翻轉_怎么利用手機相冊制作電子視頻

怎么通過手機照片制作視頻&#xff1f;將照片做成視頻并不是很難&#xff0c;可以直接在手機上進行操作&#xff0c;下面來看看是怎么操作的。方法/步驟在手機上打開清爽視頻編輯器&#xff0c;有視頻編輯、美拍美攝、電子相冊、特效模板、動感視頻、創意視頻、動態字幕、視頻變…

Cluster_analysis

https://en.wikipedia.org/wiki/Cluster_analysis轉載于:https://www.cnblogs.com/WCFGROUP/p/5557907.html

數據結構基礎:樹結構的學習筆記

1、樹的定義樹是n(n>0)個節點的有限集合。當n0時稱為空樹&#xff0c;當n>0 為非空樹&#xff0c;任何非空樹中&#xff0c;有且僅有一個根節點&#xff1b;其余節點可分為m(m>0)個互不相交的有限集合T1、T2 等&#xff0c;其中每一個集合都可以稱為一棵樹&#xff0c…

android組件用法說明,Android第三方控件PhotoView使用方法詳解

Android第三方控件PhotoView使用方法詳解發布時間&#xff1a;2020-10-21 15:06:09來源&#xff1a;腳本之家閱讀&#xff1a;74作者&#xff1a;zhaihaohao1PhotoView的簡介&#xff1a;這是一個圖片查看庫&#xff0c;實現圖片瀏覽功能&#xff0c;支持pinch(捏合)手勢或者點…

idea中新建分支并且切換到新建的分支上

開發新功能,idea上新建自己的分支,要在dev分支上新建 首先,idea右下角可以看到目前在dev分支上 點擊dev,接著New Branch 輸入分支名 在Local Branches中就顯示了 然后可以看到已經切換到剛新建的分支上了 想要切換到剛新建的分支上開發時,可以點擊分支,在彈框上點擊Checkout

vnpy怎么創建策略并回測_【手把手教你】入門量化回測最強神器backtrader(一)

1 引言目前基于Python的量化回測框架有很多&#xff0c;開源框架有zipline、vnpy、pyalgotrader和backtrader等&#xff0c;而量化平臺有Quantopian&#xff08;國外&#xff09;、聚寬、萬礦、優礦、米筐、掘金等&#xff0c;這些量化框架或平臺各有優劣。就個人而言&#xff…

數據結構基礎:算法的基礎知識筆記

1、算法的概念算法是問題求解過程中的精確描述&#xff0c;它為解決某一特定類型的問題規定了一個運算過程。2、算法的特點2.1 有窮性一個算法必須在有窮的步驟結束后結束&#xff0c;并且每一步都在有窮時間內完成。2.2 確定性算法的執行過程中每一步都要有確定的定義&#xf…

Spring Bean Scope 有狀態的Bean 無狀態的Bean

在Spring的Bean配置中&#xff0c;存在這樣兩種情況&#xff1a; [xhtml] view plaincopy<bean id"testManager" class"com.sw.TestManagerImpl" scope"singleton" /> <bean id"testManager" class"com.sw.TestMana…

數據結構基礎:圖結構的學習筆記

1、圖的定義圖是比樹更加復雜的數據結構&#xff0c;在圖的結構當中&#xff0c;任意兩個節點之間都有可能有直接關系&#xff0c;所以圖中一個節點的前驅和后繼的數目是沒有限制的。2、圖的用途用于描述各種復雜的數據對象&#xff0c;在自然科學、社會科學和人文科學等很多領…

企業網站 源碼 服務郵箱:_企業網站建設對于服務器的選擇至關重要

網站建設是離不開租用服務器的&#xff0c;這是目前大多數企業都在做的。但有些企業由于對網站服務器的租用技巧及經驗的缺乏&#xff0c;經常會導致網站在運營過程中出現非常多的問題&#xff0c;嚴重影響了企業業務的正常開展。石家莊網站建設方面的人才來說明幾點不容忽視的…

linux sli 提高效率,從原理到性能提升 MCP78智能SLI全解析

NVIDIA正式發布了“Hbrid SLI”技術在昨日的2008 CES上&#xff0c;NVIDIA正式向外界發布了“Hbrid SLI”技術&#xff0c;即我們所俗稱的混合SLI&#xff0c;而NVIDIA在發布時已更正式名為“智能SLI技術”。雖然這僅僅是NVIDIA在此次消費電子展上的宣講主題之一&#xff0c;但…

git操作代碼文件的顏色變化

1.若文件顯示紅色&#xff0c;表示文件未add到git進行管理 2.若文件顯示綠色&#xff0c;表示文件已經交給git管理&#xff0c;但從未上傳到遠程倉庫中 3.若文件顯示藍色&#xff0c;表示文件已經上傳過遠程倉庫&#xff0c;且此時本地文件與遠程倉庫文件不一致 4.若文件顯示…

[GitHub]第三講:簡單分支操作

Git 最核心的操作對象是版本&#xff08; commit &#xff09;&#xff0c;最核心的操作技巧就是分支。 什么是分支&#xff1f; 倉庫創建后&#xff0c;一旦有了新 commit&#xff0c;默認就會放到一個分支上&#xff0c;名字叫 master。前面咱們一直看到的多個版本組成的一條…