資料結構與演算法分析之線性表

2021-07-27 18:09:04 字數 1576 閱讀 8834

最近面試了不少公司,發現多數公司要提問資料結構與演算法分析,所以這段期間又簡單回顧了下資料結構與演算法。
列表內容

簡單來說呢程式 = 資料結構 + 演算法只不過是實現的語言不同而已,有人說,學習資料結構沒一點用,工作中一點用也沒有,這點仁者見仁智者見智,現在的大部分公司是業務為王,業務理解透了,能幹就幹,幹不了滾蛋,反正到現在我也沒見哪個公司注重培養員工的,可能博主我去的公司太lou

回歸到正題,資料結構與演算法,可以拆分成三個部分,資料+結構+演算法。

資料:資料是資料元素(也可以叫資料物件)的集合,

結構:結構大致可以分為兩個。乙個是關係結構,叫邏輯結構,乙個是儲存結構,叫物理結構。

演算法:實現的過程,簡單理解就是找關係。

舉個例子: 乙個籠子裡面有雞跟兔子兩種動物,一共15只動物,40條腿,問雞跟兔子各有多少只。

從理科生的思維來看: 1 建立數學模型,2 分析物件,3 找關係。

建立數學模型一共 15只動物,40條腿。分析物件雞 跟 兔子 。找關係設 雞為x,兔子為y。2x+4y=40,x+y=15. x=10,y=5.

任何乙個演算法都可以用抽象資料型別來表示,既 adt:

adt =

其中,d為資料,s為關係,p為操作。

邏輯結構:包括線性表,樹,圖形等。

儲存結構:順序表,鍊錶。

線性表包括:順序表,鍊錶(單向鍊錶,迴圈鍊錶,雙向鍊錶,雙向迴圈鍊錶)

順序表:在儲存空間裡是一組連續的序列的集合。(a0,a1,a2,a3,a4…….an) 如果知道乙個順序表的基位址的話,就可以算出任何乙個元素在順序表中的位址,數學函式為 an的位址=a0的位址 * nb。 b指的是相鄰的的兩個資料元素的空間差值。

順序表的crud:這裡我只說乙個u 例子 在 ai 跟ai+1 處插入乙個資料元素m。演算法大致為,先把ai後面的資料元素統一往後移動乙個位置。既 現在的ai+2=ai+1 一定要從後往前遍歷。這樣呢ai+1=m 插入,

鍊錶 :記憶體空間一組不連續的資料元素的集合,第乙個資料元素無前驅,最後乙個資料元素無後繼。單個資料元素記錄的是相鄰的資料元素的位址,下面乙個展示其關係

迴圈鍊錶呢:就是把an的後繼指向a0,這叫迴圈。

同理:雙向迴圈鍊錶的示意圖就是a0跟a3連線。

資料結構與演算法之線性表

1.線性表的基本概念 線性表是零個或多個資料元素的有序佇列.特性 資料元素之間是有順序的 資料元素個數是有限的 資料元素的型別必須相同.2.線性表的數學定義及性質 線性表是具有相同型別的n n 0 個資料元素的有限序列 a0,a1,a2.an ai是表項,n是表長度.性質 a0是線性表中的第乙個元素...

資料結構與演算法之線性表

線性表屬於資料結構中邏輯結構中的線性結構。回憶一下,資料結構分為物理結構和邏輯結構,邏輯結構分為線性結構 幾何結構 樹形結構和圖形結構四大結構。其中,線性表就屬於線性結構。剩餘的三大邏輯結構今後會一一介紹。線性表 list 由零個或多個資料元素組成的有限序列。注意 1.線性表是乙個序列。2.0個元素...

資料結構與演算法之 線性表

01線性表 1.線性表的判斷方式就是元素有且只有乙個直接前驅和直接後繼,元素可以為空,此時叫做空表 2.抽象資料型別標準格式 adt 抽象資料型別名 data operation endadt 3.操作偽 operation endadt 4.實際問題 提問 實現兩個線性表a,b的並集操作 思路 迴...