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