附:源**
#include <>
#include <>
#define maxlen 100
typedef struct seqstack;
//初始化棧
seqstack *initstack()
//判斷棧空
int stackempty(seqstack *s)
//出棧
char pop(seqstack *s)
//入棧
void push(seqstack *s, char data)
//讀入表示式
void readscreen(char str)
//匹配函式
int istogether(seqstack *s,char str)
i++;
}if(stackempty(s)) //棧為空,則完全匹配
return 1;
else
return 0;
}int main()
5、除錯分析
無論輸入的括號是否匹配總是輸出不匹配。分析程式可能是在讀入和判斷兩個函式出錯了,故在這兩個函式結束的位置設定斷點,觀察各變數的值。
輸入的表示式為:(5+2)
原讀入函式為:
char * readscreen()
首先在readscreen()函式末尾設定斷點,觀察各變數的值,str[0]~str[4]分別為(5+2),str[5]=』\0』,如圖1。
圖1繼續執行,進入匹配函式,觀察各變數的值是否正確的傳入。如圖2和圖3
圖2圖3
接著進行迴圈,觀察每一次的迴圈結果是否正確。如圖4
圖4發現這次讀入的陣列都發生了變化,接下來的每一次迴圈都是按圖4的資料進行的。這個錯誤可能是由於從陣列到指標的資料解結構發生了變化,所以將引數該為傳陣列的應該可以,結果確實正確!!
6、使用說明
程式名為實驗六.exe,執行環境為dos。程式執行顯示
這時,在這裡輸入乙個表示式,表示式元素之間不能有空格,以乙個回車符結束。
7、測試結果
1)2)
3)4)5)
資料結構試驗 樹
2008級資料結構實驗報告 實驗名稱 實驗三 樹 學生姓名 班級 班內序號 學號 日期 2009年11月22日 1 實驗要求 根據二叉樹的抽象資料型別的定義,使用二叉鍊錶實現乙個二叉樹。二叉樹的基本功能 1 二叉樹的建立 2 前序遍歷二叉樹 3 中序遍歷二叉樹 4 後序遍歷二叉樹 5 按層序遍歷二叉...
資料結構試驗 三
實驗三 迴圈佇列 實驗學時 2學時 一 實驗目的 1 掌握迴圈佇列的儲存結構 2 掌握在迴圈佇列上進行的各種操作。二 實驗內容 1 編寫迴圈佇列的建立函式 2 編寫迴圈佇列的進隊 出隊 初始化等函式。三 實驗重點 對迴圈佇列的特點理解。四 實驗難點 迴圈佇列操作函式的編寫。五 實驗要求 1 用c語言...
資料結構實驗六
洛陽理工學院實驗報告 附 源程式 include include include define endkey 1 define null 0 define ok 1 typedef struct node bstnode,bstree int insertbst bstree bst,int key...