《括號匹配 實(shí)驗(yàn)報告材料》由會員分享,可在線閱讀,更多相關(guān)《括號匹配 實(shí)驗(yàn)報告材料(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、word本科生實(shí)驗(yàn)報告實(shí)驗(yàn)課程 數(shù)據(jù)結(jié)構(gòu) 學(xué)院名稱 核技術(shù)與自動化工程學(xué)院 專業(yè)名稱 測控技術(shù)與儀器專業(yè) 學(xué)生某某學(xué)生學(xué)號指導(dǎo)教師實(shí)驗(yàn)地點(diǎn) 6C802 實(shí)驗(yàn)成績二16年3 月二16 年 3月填寫說明1、 適用于本科生所有的實(shí)驗(yàn)報告印制實(shí)驗(yàn)報告冊除外;2、 專業(yè)填寫為專業(yè)全稱,有專業(yè)方向的用小括號標(biāo)明;3、 格式要求: 用A4紙雙面打印封面雙面打印或在A4大小紙上用藍(lán)黑色水筆書寫。 打印排版:正文用宋體小四號,1.5倍行距,頁邊距采取默認(rèn)形式上下2.54cm,左右2.54cm,頁眉1.5cm,頁腳1.75cm。字符間距為默認(rèn)值縮放100%,間距:標(biāo)準(zhǔn);頁碼用小五號字底端居中。 具體要求:題目二號
2、黑體居中;摘要“摘要二字用小二號黑體居中,隔行書寫摘要的文字局部,小4號宋體;關(guān)鍵詞隔行頂格書寫“關(guān)鍵詞三字,提煉3-5個關(guān)鍵詞,用分號隔開,小4號黑體);正文局部采用三級標(biāo)題;第1章 (小二號黑體居中,段前0.5行)1.1 小三號黑體段前、段后0.5行小四號黑體段前、段后0.5行參考文獻(xiàn)黑體小二號居中,段前0.5行,參考文獻(xiàn)用五號宋體,參照參考文獻(xiàn)著錄規(guī)如此GB/T 77142005。一、 問題描述假設(shè)表達(dá)式中允許包含兩種括號:圓括號和方括號,其嵌套的順序隨意,即或等為正確的格式,()等為不正確的格式。檢驗(yàn)括號是否匹配。二、問題分析1數(shù)據(jù)條件要求輸入隨意含有,(,),的數(shù)據(jù)利用棧的特性完成此
3、次括號匹配。2操作條件要求Visual C+中利用棧的應(yīng)用表達(dá)此過程三、數(shù)據(jù)結(jié)構(gòu)設(shè)計1邏輯結(jié)構(gòu)設(shè)計棧的結(jié)構(gòu)運(yùn)行2物理結(jié)構(gòu)設(shè)計棧的應(yīng)用四、算法設(shè)計核心子函數(shù)1算法列表序號名稱函數(shù)表示符操作說明1輸出函數(shù)Printf輸出一個函數(shù)的值2主函數(shù)main程序的主函數(shù)3條件語句If表示條件的選擇4字符型語句Char表示字符2算法描述描述核心算法. Seqstack *Seqstack_Init() Seqstack *seqstack; seqstack=(Seqstack *)malloc(sizeof(Seqstack); seqstack-top=0; return seqstack;int Seq
4、stack_Pop(Seqstack *seqstack) if (seqstack-top=0) printf(棧為空n); return 0; seqstack-top-; return seqstack-chseqstack-top;void seqstack_Push(Seqstack *seqstack,char c) if (seqstack-top=Length) printf(棧溢出n); return ; seqstack-chseqstack-top=c; seqstack-top+;void check_symbol(Seqstack *seqstack,char *a)
5、 int i; seqstack_Push(seqstack,a0); for (i=1;ichseqstack-top-1=)|(ai=)&seqstack-chseqstack-top-1=()|(ai=&seqstack-chseqstack-top-1=) Seqstack_Pop(seqstack); else seqstack_Push(seqstack,ai); if(seqstack-top=0) printf(括號匹配nn); else printf(括號不匹配nn);利用棧的先進(jìn)后出的性質(zhì)完成括號匹配的要求。在算法中設(shè)置一個棧,沒讀入一個括號,假如是右括號,如此或者使置于棧
6、頂?shù)淖罴逼鹊钠诖靡韵?,或者是不合法的情況;假如是左括號,如此作為一個新的更急迫的期待壓入棧中,自然使原有的在棧中的所有未消解的期待的急迫性都降了一級。五、數(shù)據(jù)說明變量含義變量i表示循環(huán)變量;Length表示棧的長度;變量a表示數(shù)組六、源程序清單. #include #include #include #define Length 100typedef struct stack char ch50; int top;Seqstack;Seqstack *Seqstack_Init() Seqstack *seqstack; seqstack=(Seqstack *)malloc(sizeof
7、(Seqstack); seqstack-top=0; return seqstack;int Seqstack_Pop(Seqstack *seqstack) if (seqstack-top=0) printf(棧為空n); return 0; seqstack-top-; return seqstack-chseqstack-top;void seqstack_Push(Seqstack *seqstack,char c) if (seqstack-top=Length) printf(棧溢出n); return ; seqstack-chseqstack-top=c; seqstack
8、-top+;void check_symbol(Seqstack *seqstack,char *a) int i; seqstack_Push(seqstack,a0); for (i=1;ichseqstack-top-1=)|(ai=)&seqstack-chseqstack-top-1=()|(ai=&seqstack-chseqstack-top-1=) Seqstack_Pop(seqstack); else seqstack_Push(seqstack,ai); if(seqstack-top=0) printf(括號匹配nn); else printf(括號不匹配nn); in
9、t main() char s50; Seqstack *seqstack; seqstack=Seqstack_Init(); printf(輸入一串括號:n); scanf(%s,s); check_symbol(seqstack,s); return 0;.七、調(diào)試記錄程序第六十七行出錯運(yùn)行正確八、運(yùn)行說明學(xué)生實(shí)驗(yàn) 心得通過這次實(shí)驗(yàn)課程,加強(qiáng)了對循環(huán)函數(shù),棧的理解和應(yīng)用,數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計,相對來說還是一個較大的工程,雖然里面的內(nèi)容不是很完備,但總體上還是一個比擬能要表現(xiàn)數(shù)據(jù)結(jié)構(gòu)的知識點(diǎn)能力的程序了,這個設(shè)計讓我們在課堂中學(xué)到的理論知識,解決相應(yīng)的實(shí)際問題,深入理解和靈活掌握所學(xué)的內(nèi)容,使我們實(shí)踐的過程中收獲匪淺,認(rèn)真去做,踏踏實(shí)實(shí),靜靜思考,慢慢進(jìn)步,會有收獲。利用棧能夠做很多比擬簡單的判斷,簡化了操作的過程。學(xué)生簽名:喻志強(qiáng) 2016 年 4 月 14 日指導(dǎo)教師評語成績評定:指導(dǎo)教師簽名: 年 月 日.15 / 15