後綴表達式是波蘭邏輯學家盧卡西維奇(Lukasiewicz)發明的一種表示表達式的方法。這種表示方式把運算符寫在運算對象的後面,例如,把a+b寫成ab+,因此也稱爲後綴式。這種表示法的優勢是根據運算對象和算符的出現次序進行計算,不須要使用括號,也便於用機械實現求值。
中綴表達式轉後綴表達式的方法:
(1) 遇到操做數:直接輸出(添加到後綴表達式中);
(2) 棧爲空時,遇到運算符,直接入棧;
(3) 遇到左括號:將其入棧;
(4) 遇到右括號:執行出棧操做,並將出棧的元素輸出,直到彈出棧的是左括號,括號不輸出。
(5) 遇到其餘運算符:加減乘除:彈出全部優先級大於或者等於該運算符的棧頂元素,而後將該運算符入棧;
(6) 最終將棧中的元素依次出棧,輸出。編程
next數組的求解方法是:第一位的next值爲0,第二位的next值爲1,後面求解每一位的next值時,根據前一位進行比較。首先將前一位與其next值對應的內容進行比較,若是相等,則該位的next值就是前一位的next值加上1;若是不等,向前繼續尋找next值對應的內容來與前一位進行比較,直到找到某個位上內容的next值對應的內容與前一位相等爲止,則這個位對應的值加上1即爲需求的next值;若是找到第一位都沒有找到與前一位相等的內容,那麼需求的位上的next值即爲1。數組
1) static關鍵字至少有下列n個做用:
(1) 函數體內static變量的做用範圍爲該函數體,不一樣於auto變量,該變量的內存只被分配一次,所以其值在下次調用時仍維持上次的值;
(2) 在模塊內的static全局變量能夠被模塊內所用函數訪問,但不能被模塊外其它函數訪問;
(3) 在模塊內的static函數只可被這一模塊內的其它函數調用,這個函數的使用範圍被限制在聲明它的模塊內;
(4) 在類中的static成員變量屬於整個類所擁有,對類的全部對象只有一份拷貝;
(5) 在類中的static成員函數屬於整個類所擁有,這個函數不接收this指針,於是只能訪問類的static成員變量。
2) const關鍵字至少有下列n個做用:
(1) 欲阻止一個變量被改變,可使用const關鍵字。在定義該const變量時,一般須要對它進行初始化,由於之後就沒有機會再去改變它了;
(2) 對指針來講,能夠指定指針自己爲const,也能夠指定指針所指的數據爲const,或兩者同時指定爲const;
(3) 在一個函數聲明中,const能夠修飾形參,代表它是一個輸入參數,在函數內部不能改變其值;
(4) 對於類的成員函數,若指定其爲const類型,則代表其是一個常函數,不能修改類的成員變量;
(5) 對於類的成員函數,有時候必須指定其返回值爲const類型,以使得其返回值不爲「左值」。例如:
const classA operator*(const classA& a1,const classA& a2);
operator*的返回結果必須是一個const對象。若是不是,這樣的變態代碼也不會編譯出錯:
classA a, b, c;
(a * b) = c; // 對a*b的結果賦值
操做(a * b) = c顯然不符合編程者的初衷,也沒有任何意義。函數