資料結構筆記(二)

2021-10-01 02:20:27 字數 719 閱讀 8966

優點:

無需為表示表中元素之間的邏輯關係而增加額外的儲存空間

可以快速查詢元素,修改元素(o(1))

缺點:插入,刪除的時間複雜度(o(n))

線性表長度變化較大時,難以確定儲存空間的容量

造成儲存空間的「碎片」

棧是限定僅在表尾進行插入和刪除操作的線性表

棧頂(top) 棧底(bottom)

不含任何資料元素的棧稱為空棧

棧又稱後進先出(lifo)的線性表

棧本身就是乙個線性表,其資料元素具有線性關係,只不過它是一種特殊的線性表而已

棧的插入叫進棧,棧的刪除叫彈棧

雙端棧:兩個棧共享乙個連續記憶體,兩邊為各自的棧底,讓兩個指標指向各自的棧頂,只要兩指標沒見面就能一職插入,若見面,則需擴容

只允許在一端進行插入操作,而在另一端進行刪除操作的線性表

先進先出(fifo)的線性表,插入為隊尾,輸出端為隊頭

迴圈佇列:

迴圈佇列是把順序佇列首尾相連,把儲存佇列元素的表從邏輯上看成乙個環,成為迴圈佇列。

因為佇列是先進先出,要是隊頭出去,後面的往前補,時間複雜度為o(n),而若是有乙個頭指標何以尾指標,當刪除時,尾指標後移,插入時尾指標後移,則時間複雜度會成為o(1),可是這樣若是一直刪除和插入,會造成前面的記憶體無法再次利用,而造成記憶體浪費,所以就想到吧佇列頭尾相連,這樣就會既降低了時間複雜度,有沒有浪費記憶體。

資料結構筆記 二

在上次分享中,我分享了資料結構的一些基本概念,大家都知道,資料結構和演算法是密不可分的,本次我將討論演算法的基本概念,以及時間複雜度等問題 什麼是演算法 演算法是針對問題根據問題的特性來預先設計的求解過程。資料得以描述,目的是為了解決問題。如何針對各種各樣的資料結構與問題規模去設計不同的過程解決特定...

資料結構(筆記二)

高斯的1 100運算 普通的運算 高斯的運算 可能以計算機的神速,兩個演算法都可以秒殺解決掉 但是,如果我們把條件換成1加到1千萬,或者1加到1千億,差距就可想而知了,好的演算法甚至讓人腦快過電腦。輸入 輸出 有窮性,確定性和可行性。輸入 輸出 有窮性 確定性 可行性 效率高一般指的是演算法的執行時...

演算法筆記(二)資料結構

資料結構實計算機中對資料的一種儲存和組織的方式,同時也泛指相互之間存在一種或多種特定關係的資料的集合。到現在為止,計算機技術領域中還沒有乙個統一的資料結構的定義。以下是引用的部分解釋 data structure d,r 其中d是資料元素的集合,r是該集合中所有元素之間的關係的有限集合。2 sart...