資料結構篇 知識點板塊 第三章棧 佇列和陣列

2022-10-10 05:03:09 字數 3233 閱讀 7371

棧的數學性質:n個不同元素進棧,出棧元素不同排列的個數為1/(n+1) *cn,2n

因棧的刪除插入操作都在棧頂進行,故只可能發生上溢

儲存資料的原則是先進後出

順序棧:

① 棧頂指標:初始時設s.top=-1(此處注意看題目是等於-1還是0,兩種入棧和出棧操作等會有不同)

② 進棧:棧不滿時,棧頂指標先加1,再送值到棧頂(s.data[++s.top])

③ 出棧:非空時,先取棧頂元素,再將棧頂指標減1(s.data[s.top--])

④ 棧空:s.top==-1

⑤ 棧滿:s.top==maxsize-1

⑥ 棧長:s.top+1

共享棧:

① 兩個順序棧共享乙個一維陣列空間,將兩個棧底分別設定在共享棧的兩端(利用棧底相對位置不變的特性),棧頂向共享空間的中間延伸

② 棧空:top0=-1時0號棧為空,top1=maxsize時1號棧為空

③ 棧滿:top1與top0相鄰

④ 進棧:s.data[++top0],s.data[--top1]

鏈棧:

① 優點:便於多個棧共享儲存空間和提高其效率

② 一般沒有判斷棧滿的操作,因為是動態

③ 建棧和判空時在沒有頭結點時是判斷是否等於null,區別於順序棧的等於-1

(會出例如下列不是佇列的基本運算的是這種選擇題)

隊頭-刪除;隊尾-插入

做題時注意rear和front所指元素是隊頭/尾元素還是後乙個元素

順序儲存:

① 隊空:q.frontq.rear0

② 進隊:不滿時先送值到隊尾元素再將隊尾指標+1(區別於棧)

③ 出隊:不空時先取隊頭元素再將隊頭指標+1

④ 假上溢:由於入隊和出隊操作使頭尾指標只增不減,導致被刪元素的空間無法利用,隊尾指標超過向量空間的上界而不能入隊

迴圈佇列:

① 為克服「假上溢」而想象出來的一種佇列

② 初始:q.front=q.rear=0

③ 隊首指標進1:q.front=(q.front+1) % maxsize

④ 隊尾指標進1:q.rear=(q.rear+1) % maxsize

⑤ 出隊入隊:指標都按順時針方向進1

⑥ 隊滿三種處理方式

(1) 犧牲乙個單元來區分,此時:

​ (1 隊滿:(q.rear+1) % maxsize == q.front

​ (2 隊中元素個數:(q.rear-q.front+maxsize) % maxsize

(2) 增設記錄元素個數的資料成員

(3) 增設tag成員,判斷條件為(q.frontq.rear && tag1),故tag只要插入乙個元素就變為1,刪除乙個元素就變回0

鏈式儲存:

① 注意題目中是否帶頭結點

② 插入時注意:若原隊列為空列,則另q.front和q.rear一同指向插入結點

③ 刪除時注意:若刪除後隊列為空則需修改尾指標為rear=front 選擇可能會考查當插入乙個就隊滿或刪除乙個就隊空時rear和front的指向情況

④ 程式中使用多個佇列或棧宜採用鏈式

⑤ 特別注意對於迴圈鍊錶的插入刪除後必須保持其迴圈

雙端佇列:(選擇看到與普通佇列操作不一樣時想到可能為雙端佇列)

① 輸入受限雙端佇列:允許在一端進行插入和刪除,但在另一端只允許刪除

② 輸出受限雙端佇列:允許在一端進行插入和刪除,但在另一端只允許插入

下標的取值範圍被稱為陣列的維界

若題中沒指定陣列下標範圍只說明了為陣列則下標預設從0開始

陣列的儲存結構:

① 行優先:

② 列優先:

矩陣的壓縮儲存:

① 對稱矩陣:

(1) 上三角區的所有元素和下三角區的對應元素相同

(2) 將矩陣a[1..n][1..n]存放在一維陣列b[n(n+1)/2]中

② 三角矩陣:

(1) 下三角:

​ (1 上三角區的所有元素均為同一常量

​ (2 存完下三角區和主隊角線元素後,還儲存對角線上方的常量一次

​ (3 將矩陣a[1..n][1..n]壓縮在b[n(n+1)/2+1]中

(2) 上三角:

​ (1 下三角區的所有元素均為同一常量

​ (2 存完上三角區和主隊角線元素後,還儲存對角線下方的常量一次

​ (3 將矩陣a[1..n][1..n]壓縮在b[n(n+1)/2+1]中

③ 三對角矩陣:

(1)(2) 已知三對角矩陣中某元素ai,j存放於一維陣列b的第k個位置,則可得 : i=向下取整((k+1)/3+1),j=k-2i+3

稀疏矩陣:

① 壓縮儲存後必失去隨機儲存的特性

② 稀疏矩陣的三元組(行號,列號,值)既可以採用陣列儲存,也可以採用十字鍊錶法儲存

廣義表:

① 廣義表是線性表的推廣,廣義表是n個元素的有限序列,元素可以是原子或乙個廣義表,記為ls

② 若元素是廣義表稱它為ls的子表。若廣義表非空,則第乙個元素稱表頭,其餘元素稱表尾。

③ 表的深度是指表展開後所含括號的層數

④ 把與樹對應的廣義表稱為純表,它限制了表中成分的共享和遞迴;

⑤ 允許結點共享的表稱為再入錶

⑥ 允許遞迴的表稱為遞迴表;

⑦ 相互關係:線性表∈純表∈再入錶∈遞迴表;

⑧ 廣義表的特殊運算:1)取表頭head(ls);2)取表尾tail(ls);

第三章 表單 知識點

1.表單主要用來製作動態網頁,方便和使用者進行互動。例如,會員註冊,購物訂單,調查問卷,搜尋等頁面都會用到表單。2.常用的表單元素有文字框 text 密碼框 password 單選按鈕 radio 核取方塊 checkbox 列表框 和 按鈕 button,submitreset 多行文字框 郵箱 ...

jQuery第三章知識點

使用getelement系列方法訪問指定節點 getelementbyid getelementsbyname getelementsbytagname 根據層次關係訪問節點 parentnode 返回節點的父節點 childnodes 返回子節點集合,childnodes i firstchild...

資料結構之第三章 棧

出棧特點 後進先出 最近忙著準備期末的考試,要知道大學生掛科是一件很可怕的事情。先將一點棧的知識記錄下來,一學期過了課本啥的也就丟了。棧是一種只能在一端進行刪除插入或刪除操作的線性表。棧中的資料元素的邏輯關係呈線性關係,所以棧可以和線性表一樣採用順序儲存結構進行儲存。採用順序儲存結構的棧稱為順序棧。...