数据结构——三
前言
??數據結構第三章,主要講解的內容是棧、隊列和數組,看著挺少的,但是內容可不少,下面我們就來一起看看第三章到底在講什么,請看導圖:
棧
?概念
??首先,我們需要明白什么是棧,本書解釋為“運算受限的線性表,這種表上的插入和刪除運算限定在表的某一端進行?!?/font>
??棧,包含有幾個特定名詞,分別為棧頂,棧底和空棧,含義可以從字面理解,允許進行插入和刪除的一端稱為棧頂,另一端稱為棧底。不含任何數據元素的棧稱為空棧。
?棧的實現
??順序實現
??棧的書序存儲結構是用一組連續的存儲單單元依次存放棧中的每個元素,并用始端作為棧底。棧的順序實現稱為順序棧。通常用一個一維數組和一個記錄棧頂位置的變量來實現棧的順序存儲。
??鏈接實現
??棧的鏈接實現稱為鏈棧,鏈??梢杂脦ь^節點的單鏈表來實現,鏈表包含有頭結點,首節點和尾結點;頭結點為空節點;首節點為棧頂結點;尾結點為棧底結點。各結點通過鏈域的鏈接組成棧,由于每個結點空間都是動態分配的產生,所以鏈棧不用預先考慮容量的大小。
??遞歸實現
??首先要明白遞歸的概念,遞歸:如果在一個函數或者數據結構的定義中又應用了它自身(作為定義項之一),那么這個函數或者數據結構稱為是遞歸定義的,簡稱遞歸。
??遞歸定義不能是“循環定義“。因為要求任何遞歸定義必須同時滿足如下條件:
??(1) 被定義項在定義中的應用(即作為定義項的出現)具有更小的”規?!?/font>
??(2)被定義項在最小”規?!吧系亩x是非遞歸的,這是遞歸結束的條件。
隊列
?概念
??隊列是有限個同類型數據元素的線性序列,是一種現金先出的線性表,新加入的數據元素插在隊列尾端,出隊列的數據元素在隊列首部被刪除。排隊的規則是不允許”插隊“,新加入的成員只能排在隊列尾,而且隊列中全體成員只能按如隊列的順序離開隊列。
?順序實現
??順序存儲實現的隊列稱為順序隊列,它由一個一維數組(用于存儲隊列中元素)及兩個分別指示隊列首和隊列尾元素的變量組成,這兩個變量分別稱為”隊列首指針“和”隊列尾指針”。需要注意的是,隊列的順序實現時有可能會出現”假溢出“,具體內容還是從課本中比較容易理解,小編在此就不贅述了。
?鏈接實現
??隊列的鏈接實現實際上是一個使用了一個帶有頭結點的單鏈表來表示隊列,稱為鏈隊列。頭指針指向鏈表的頭結點,單鏈表的頭結點的next域指向隊列首結點,尾指針指向隊列尾結點,即單鏈表的最后一個結點。
數組
?概念
??數組可以堪稱是線性表的一種推廣,一維數組又稱為向量,它是由一組具有相同類型的數據元素組成的,并存儲在一組連續的存儲單元中。若一維數組中的數據元素又是一維數組結構,則稱為二維數組;依次類推,若一維數組中的元素又是一個二維數組結構,則稱為三維數組。一般的,一個n維數組可以看成元素為n-1維數組的線性表。
?數組的存儲結構
??一維數組元素的內存地址是連續的,二維數組可以有兩種存儲方法:一種是以列序為主序的存儲;另一種是以行序為主序的存儲。
?矩陣的壓縮存儲
??矩陣分為特殊矩陣和稀疏矩陣兩種,特殊矩陣主要為對稱矩陣和三角矩陣,由于小編對矩陣的學習不到位,所以在此就不誤導大家了,具體的可以去課本或者百度再了解了解。
??????本文為小編在學習數據結構導論時的學習內容,如有不妥,請指出。
總結
- 上一篇: auuc 评估指标_National C
- 下一篇: RAG:Retrieval-Augmen