字尾表示式
中綴表示式轉字尾表示式
定義:佇列是允許在一端進行插入操作,而在另一端進行刪除操作的線性表。允許插入的叫隊尾,允許刪除的一端稱為對頭
迴圈佇列
假設乙個佇列有n個元素,則順序儲存的佇列序建立乙個大於n的陣列,並把佇列的所有元素儲存在陣列的前n個單元中,陣列下標為0的一端即是對頭。當佇列要出隊時,所有的元素就需要向前移動,但是如果不去限制佇列的元素必須儲存在前n個單元這一條件,出隊的效能就增加。
入隊 (front指向對頭元素,rear指向隊尾的下乙個位置) 插入a1、a2、a3、a4
出隊 a1、a2出隊 ,front指標向後移 當如果在插入a5時,rear向後移,再插入就溢位
則就出現迴圈佇列
將上面的rear指標指向陣列開頭的位置
而當front和rear相等時,就要判斷佇列是否為空,還是為滿
左圖(front=0,rear=4,queuesize=5,公式(4+1)%5=0--滿佇列)
右圖(front=2,rear=1,queuesize=5,公式(1+1)%5=2--滿佇列)
通用的佇列長度計算公式:(rear+queuesize-front)%queuesize
子串的定位操作通常稱為串的模式匹配
有主串s,目標字串t,在串s中匹配t,當從乙個位置開始匹配時:
如下圖,t="abcdex",當中沒有任何重複的字元,所以j就由6變為1。
下圖,t="abcabx",字首的"ab"與最後"x"之前的字尾"ab"時相等的,j由6變為3
即j值的變化取決與當前字串之前的串的字首與字尾的相似度
把t串各個位置j值的變化定義為乙個陣列next,那麼next的長度就是t串的長度。
如果前字尾乙個字元相等,k值是2,兩個字元相等,k值是3,n個字元相等,k等於n+1
上述的next()出現問題
上述中2、3、4、5是可以省掉的,t串中前n個字元相等
從而有nextval()計算方法
字首和字尾詳解(pmt,partial match table-部分匹配表) 字串本身不是他自己的字首和字尾
pmt表:
harry的字首:
potter的字尾:
pmt的值是字串所有字首組成的集合與字尾集合的交集中最長元素的的長度
所以"aba",字首,字尾,交集為,長度為1
將第0位的值設為-1,只是為了程式設計的方便 在第j位失配,那麼影響j指標回溯的位置其實是第j-1位的pmt值
開課第四天
今天是開課的第四天,老師又講了很多知識 1 位運算 位運算的效能高,但是理解比較困難。1 按位與,兩個都是一才為一,兩個不一樣就為零。2 按位或,只要有乙個是一就是一。3 異或,不同為一,乙個數和另乙個數異或倆次還是它自己,乙個數和自身異或結果是零,乙個數和零異或結果還是它本身。對稱加密,解密。4 ...
華為第四天
在第三天晚上下班的時候,終於搞定了第乙個專案內容,即使再簡單,我也勝利的喜悅,很欣慰,自己完成了乙個小小的任務,雖然比較簡單的乙個需求。在這種興奮的心情下,我結束了我第三天實習,我想生活始終要抱有一定的態度,是付出又收穫的喜悅,讓我們每個人都保持這種喜悅,來開始每一天的工作。第四天開始的時候,我先去...
黑馬第四天
1.文字類的塊級元素比如p和h1 h6標籤裡面不要放塊級 只有文字才能組成段落,因此p裡面不能放塊級元素,同理還有這些標籤h1,h2,h3,h4,h5,h6,dt,他們都是文字類塊級標籤,裡面不能放其他塊級元素。2.鏈結裡面不要在放鏈結 3.行內元素裡面只能容納文字或其他行內元素 a特殊,a裡面可以...