1樓:1鄭哲
前轉中 中轉前 從後讀 (遇到運算子壓入棧 遇到低階運算子彈出高階的 如果有「(」則壓入棧 遇到「)」時 彈出「(」之間的運算子 最後去掉「(」
中轉後 後轉中 從前讀。
我找到的。將中綴表示式轉換為字尾表示式的演算法思想:
數字時,加入字尾表示式;
運算子:a. 若為最低階的運算子,入棧;
b. 若為 '(',入棧;
c. 若為 ')',則把棧中的的運算子加入字尾表示式中,直到 '(',從棧中刪除'(' ;
d. 若為不是最低階的運算子,則將從棧頂到第乙個優先順序不大於(小於,低於或等於)它的運算子(或 '(',但優先滿足前乙個條件)之間的運算子加入字尾表示式中,該運算子再入棧;
這句話不好理解,可以說成這樣,從棧頂開始,依次彈出出當前處理的運算子優先順序高的運算子,直到乙個比它優先順序低的或者遇到了乙個左括號就停止。
當掃瞄的中綴表示式結束時,棧中的的所有運算子入棧;
運用字尾表示式進行計算的具體做法:
建立乙個棧s
從左到右讀字尾表示式,讀到數字就將它轉換為數值壓入棧s中,讀到運算子則從棧中依次彈出兩個數分別到y和x,然後以「x 運算子 y」的形式計算機出結果,再壓加棧s中。
如果字尾表示式未讀完,就重複上面過程,最後輸出棧頂的數值則為結束。
三。表示式之間的轉換。
這裡我給出一箇中綴表示式:a+b*c-(d+e)
第一步:按照運算子的優先順序對所有的運算單位加括號:式子變成拉:((a+(b*c))-d+e))
第二步:轉換字首與字尾表示式。
字首:把運算子號移動到對應的括號前面。
則變成拉:-(a *(bc)) de))
把括號去掉:-+a*bc+de 字首式子出現。
字尾:把運算子號移動到對應的括號後面。
則變成拉:((a(bc)* de)+
把括號去掉:abc*+de+- 字尾式子出現。
發現沒有,字首式,字尾式是不需要用括號來進行優先順序的確定的。
如表示式:3+(2-5)*6/3
字尾表示式 棧。
2樓:網友
根據運算順序,或者說優先順序的大小。
先寫數字,然後先算的符號先寫,不加任何括號。
字尾表示式演算法思想)
noip複賽會考哪些型別的題目?該如何複習?
3樓:夕日素顏依舊在
資料結構:指標、資料、連結串列、迴圈連結串列、二叉樹、檔案操作。
程式設計:演算法的實現能力、程式除錯的基本能力、設計測試資料的基本能力、程式的時間\空間複雜度的計算。
演算法處理:離散數學知識的應用(排列組合,簡單圖論)、分治思想、模擬法、貪心法、簡單的搜尋演算法(深度優先、廣度優先)、動態規劃的思想及基本演算法。
求noip2011考試範圍。。。。。。就是可能考的靠譜點的知識(不包括基本的演算法之類的)
4樓:pascal博士
哎,今年呢……
可能會有排序,當然少不皮譽鬧了動態規虛首劃。
第一題……水,掌握基礎知識和簡單的動燃罩態規劃,普及組拿個省一沒問題。
5樓:網友
邏輯嫌孝、思路、智商、數學、打字速度。
心理素質、灶昌記憶隱者扒力、蒙。
最最重要的:rp。。。
請教各位大神,noip初賽(c++)如何準備,有沒有資料可以分享,謝謝
6樓:武風
初賽試卷,去文庫裡查吧。
主要是,選擇題需要基礎,各種網際網絡協議啊,計算容量,字首字尾表示式,二進位,二叉樹,偶爾會有簡單的圖。
初賽試卷多做幾份。
字首表示式"+3*2+5 12"的值是多少?
7樓:從點滴中發現
你在做noip2010第十六屆全國青少年資訊學奧林匹克聯賽初賽吧。
答案是35
noip需要準備哪些方面的基礎知識。複賽需要做哪些型別的題目(提高組)?
8樓:網友
二、複賽內容與要求:
a.資料結構:
1.指標型別。
2.多維陣列。
3.單連結串列及迴圈連結串列。
4.二叉樹。
5.檔案操作(從文字檔案中讀入資料,並輸出到文字檔案中)
b.程式設計。
1.演算法的實現能力。
2.程式除錯基本能力。
3.設計測試資料的基本能力。
4.程式的時間複雜度和空間複雜度的估計。
c.演算法處理。
1.離散數學知識的應用(如排列組合、簡單圖論、數理邏輯)
2.分治思想。
3.模擬法。
4.貪心法。
6.動態規劃的思想及基本演算法。
評測環境。noip2010比賽環境規範依照使用linux平臺、統一編譯器、提供多種整合開發環境選擇的原則制定。
noip2010的比賽環境中,作業系統平臺選擇linux;在固定的作業系統平臺下,對應不同的語言,使用統一的編譯器,消除編譯器不同給選手帶來的不利影響;對應每種語言,提供了多種整合開發環境,選手可以根據自己的習慣選擇整合開發環境。
在全國評測時,評測環境保持與比賽環境的作業系統及編譯器一致。也就是說全國評測時,使用與選手比賽時一致的平臺對選手的程式進行評測,以消除平臺不一致帶來的不利影響。
以下是noip2010比賽環境要求的詳細描述:
使用linux作業系統平臺:
1)linux作業系統必須使用noi linux,基於ubuntu開發;
2)pascal語言,必須使用free pascal 版本作為編譯器;
3)c語言,必須使用gcc 作為編譯器;
4)c++語言,必須使用g++ 作為編譯器。
單詞的字首字尾是什麼意思 有點忘了
天馬流星拳 字首往往改變單詞意思,字尾往往改變單詞詞性。 詞綴是加在詞前或詞後的一些固定組織,有固定意思,但不能單獨成詞,英語最常見的字尾是er 做什麼事的 人 如 teach teacher write writer sing singer 字首加在詞前,常見的有pre 意思是 之前 pre re...
為什麼英語單詞加個字首或者字尾其中字母的發音就不一樣
這牽扯到單詞的重音。英語為了區別詞性,詞義,同一個單詞的重音不同,重音改變了,因素的發音自然也會改變。如desert 就有遺棄和沙漠的意思。你可以自己查字典求證一下,有利於記憶。規則得在實踐中總結積累,據我所知,沒有現成的,呵呵。 pre pare,stress on pare.pre par at...
C語言增量運算子的字首和字尾形式的區別是什麼?高手請進來幫忙解答下
i 是先讀取i的值在進行加1 1是先進行加1,再讀取i的值 放到for裡面沒效果,因為不管i 還是 i,都不會取當時i的值,而是在這一步過了才取到它的值。下面舉個簡單例子 main 你執行下就知道結果了 while迴圈就是滿足條件時一直執行,直到不滿足才跳出你給的這個式子的答案是b 2 c 3.ma...