1號-------2號-------3號--------4號(比如1號元素存放在這,2號元素緊挨著它,3號元素緊挨著2號,以此類推,這是順序儲存,例如排隊買東西)
為什麼出現鏈式儲存,就因為比如排隊買東西的話,前邊人太多,此時你有緊急事情需要離開以下,但是你再次回來的時候,即使還是沒有輪到你原來離開時的位置,別人也不會讓你插隊站在你原來的位置了,應對這種變化的結構怎麼辦呢???
這個時候就需要應用到鏈式儲存了,鏈式儲存好比銀行辦理業務的叫號服務了,當你拿到號了(你可以任意位置的站著蹲著躺著),你看了看,前邊還有好多號你離開一小下下,及時回來就好,再回來也沒有人會把你的號拿走還是你的。
鏈式儲存結構:是把資料元素存放在任意的儲存單元裡,這組儲存單元可以是連續的,也可以是不連續的。(因此鏈式儲存結構的儲存元素儲存關係並不能反映其邏輯關係(也就是說邏輯上的123的存放,邏輯上面是1,2,3,但是你事實上存放的並不是1後邊就是2,2後邊就是3,不是這樣子的他可以隨便放的,他有乙個鏈連著,這樣就需要乙個指標來存放資料元素的位址),因此需要用乙個指標存放資料元素的位址,這樣子通過位址就可以找到相關聯資料元素的位置。)(指標就是鏈著他們關係的一條鏈)
如上圖他們在記憶體中的存放順序是隨意的,但是呢他們的每乙個元素都多廢了一點空間,因為他除了存放自身的資料他還要存放乙個指標。指標指向的就是下乙個的位址。比如說1號他存放第乙個元素,他存放的值叫做1號, 他後邊挨著的位址就是2號的位址通過這個位址找到了2號,2號再找3號,依次順著指向的位址找下去(這就是鏈式儲存)
C語言資料結構1 資料結構和演算法
如果沒有接觸過資料結構這門課程,或者說只是單單聽過這個名詞。那麼在含義方面,資料結構對於我們來說是非常陌生的。在了解一門課程之前,我們總是要知道這門課程要學習什麼。在了解資料結構之前,我們需要知道什麼是資料。對於人類來說,一切可以讓我們獲取資訊的東西都是資料。我們可以通過乙個動物的叫聲判斷是什麼動物...
資料結構 資料結構演算法
分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...
資料結構5 資料結構和演算法的基本概念
資料結構 資料的邏輯結構 資料的邏輯結構是對資料之間關係的描述,它與資料的儲存結構無關,同一種邏輯結構可以有多種儲存結構。歸納起來資料的邏輯結構主要由以下兩大類 需滿足4個條件 1.必存在唯一乙個第乙個元素 2.必存在唯一乙個最後乙個元素 3.除最後乙個元素外,別的元素都有唯一乙個後繼 4.除第乙個...