資料結構與演算法是程式設計的兩大基礎。大型的it企業面試時也會出資料結構和演算法的題目。它能夠說明你是否有良好的邏輯思維,假設你具備良好的邏輯思維。即使技術存在某些缺陷。面試公司也會覺得你非常有培養價值,至少在一段時間之後。技術能夠非常快得到提高。同一時候,它也是軟考的重點,我們須要對這部分的內容進行一下總結。
這篇博文主要是通過圖來解決抽象問題。
不多說了,我們先看一下資料結構和演算法的總體內容。
資料結構和演算法的內容並不多,我們先從資料結構開始,資料結構總結完之後。再學習演算法,我們要小火慢燉,一口一口吃掉它。
資料元素的排列方式是線性。
分類規則是依據上圖中元素的儲存結構來劃分的。
(1)順序表
基本思想:
元素的儲存空間是連續的。在記憶體中是以順序儲存。記憶體劃分的區域是連續的。
儲存結構例如以下圖:
(2)鍊錶
基本思想:
元素的儲存空間是離散的,單獨的(物理),它們能夠通過
在邏輯上
指標的聯絡使得它成為了總體的鍊錶。儲存結構例如以下圖:
1.單鏈表
2.迴圈鍊錶
3.雙鏈表(雙向迴圈表)
三者的差別(從上面三個圖我們能夠總結出來):
1、它們都有資料域(data(p))和指標域(next(p)),可是從圖中能夠看出雙鏈表有兩個指標域,乙個指向它的前節點,乙個指向它的後節點。
2、單鏈表最後乙個節點的指標域為空。沒有後繼節點;迴圈鍊錶和雙鏈表最後乙個節點的指標域指向頭節點,下乙個結點為頭節點,構成迴圈;
3、單鏈表和迴圈鍊錶僅僅可向乙個方向遍歷。雙鏈表和迴圈鍊錶,首節點和尾節點被連線在一起,可視為「無頭無尾」;雙鏈表能夠向兩個方向移動,靈活度更大。
理解了順序表和煉表的基本思想之後,線性表的操作是簡單,而且網上有非常多解說插入和刪除結點的部落格。在這裡我就只是多的介紹了。
棧和佇列是特殊的線性表。既然特殊就有不同點。
基本思想:後進先出(先進後出)即棧中元素被處理時。按後進先出的順序進行。棧又叫後進先出表(lifo)。
舉例:日常生活中有非常多棧的樣例。比如,放在書桌上的一摞書,僅僅能從書頂上拿走一本書,書也僅僅能放在頂上。
例如以下圖所看到的:
基本思想:先進先出即先被接收的元素將先被處理,又叫先進先出表(fifo)。例如以下圖所看到的:
舉例:佇列的樣例。生活中很多其它。比方:買車票排隊。排頭最先買到車票,新來的排的隊尾。進車站時,安檢行李,先進去的最先出來,後進去的後出來。
1.順序佇列
例如以下圖所看到的:
順序佇列的操作,要推斷隊滿和隊空的標誌。從圖中我們能夠總結得到:
1.隊空:head = tail
2.隊滿:tail = m
2.迴圈佇列
例如以下圖所看到的:
迴圈佇列的操作,要推斷隊空和隊滿的情況,從圖中我們能夠總結得到:
1.隊空:head = tail
2.隊滿:tail + 1 = head(在佇列中會留乙個空著的空間。所以要加1)
線性表真的非常easy。我反正是會了,你會了嗎?
興許部落格的更新列表。敬請期待。
我的軟考之路(一)——開篇(已更新)
我的軟考之路(二)——j2se巨集觀總結(已更新)
我的軟考之路(三)——資料結構與演算法(1)之線性表(已更新)
我的軟考之路(四)——資料結構與演算法(2)之樹與二叉樹(已更新)
我的軟考之路(五)——資料結構與演算法(3)之圖
(已更新
) 我的軟考之路(六)——資料結構與演算法(4)之八大排序
(已更新
) 我的軟考之路(七)——資料結構與演算法(5)之查詢
(已更新
)
我的軟考之路(三) 資料結構與演算法(1)之線性
資料結構與演算法是程式設計的兩大基礎,大型的it企業面試時也會出資料結構和演算法的題目,它可以說明你是否有良好的邏輯思維,如果你具備良好的邏輯思維,即使技術存在某些缺陷,面試公司也會認為你很有培養價值,至少在一段時間之後,技術可以很快得到提高。同時,它也是軟考的重點,我們需要對這部分的內容進行一下總...
軟考之路 資料結構
官方來說,資料結構是計算機儲存,組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合和該集合中資料元素之間的關係組成。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。data stucture d,r 其中d是資料元素的集合,r是該集合中所有元素之間的關係的有限集...
軟考 1 資料結構
個人對於資料結構這些計算機底層的東西還是比較敬畏的 這些東西看起來很簡單 總覺得沒有什麼道理可講 所以理解應用起來比較困難 對於軟體設計人員來說 良好的計算機底層知識是成長的基石.什麼是資料結構 資料結構是指資料元素的集合及元素間的相互關係和構造方法 乙個資料結構 b可用乙個二元組表示 b a,r ...