freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-表達式類型的實現(xiàn)難度系數(shù):12(編輯修改稿)

2025-07-09 15:11 本頁面
 

【文章內(nèi)容簡介】 根據(jù)不同的運算符,實現(xiàn)不同的運算,返回運算結(jié)果 */ Status Check(BiTree E)。 /*檢查表達式是否還存在沒有賦值的變量,以便求算數(shù)表達式 的值 */ long Value(BiTree E)。 /*對算術(shù)表達式求值 */ void CompoundExpr(char P,BiTree *E1,BiTree E2)。 /*構(gòu)造一個新的復(fù)合表達式 */ 主程序和其他偽碼算法 void main(){ BiTree E1,E2。 char V,P。 int c。 ReadExpr(amp。E1)。 printf(\nE1帶括弧的中綴表示式為: )。 WriteExpr(E1)。 while(Check(E1)==TRUE){ printf(\n請輸入要賦值的字符: )。 V=getchar()。 printf(請輸入要將賦值為: )。 scanf(%d,amp。c)。 Assign(amp。E1,V,c)。 getchar()。 WriteExpr(E1)。 printf(\n輸入未知數(shù)后 E1表達式為: )。 WriteExpr(E1)。 } printf(\nE1表達式的值為 : %d,Value(E1))。 ReadExpr(amp。E2)。 printf(\nE2帶括弧的中綴表示式為: )。 WriteExpr(E2)。 Assign(amp。E2,V,c)。 CompoundExpr(P,amp。E1,E2)。 } 函數(shù)的調(diào)用關(guān)系 除了主函數(shù) main()外,其他各個函數(shù)相對于其它函數(shù)來說是獨立的,函數(shù)的使用都由主函數(shù) main()調(diào)用使用的,可以簡單的說,各個函數(shù)都是主函數(shù)下的從函數(shù)。 四 、 【調(diào)試 分析】 1. 開始設(shè)計時我設(shè)想建樹時可以設(shè)定五個域,左右孩子,標(biāo)志tag, int型值域, char型值域。但是 在存儲時發(fā)現(xiàn)每個字符只需占一個域就可以,所以我又采用共同體這樣節(jié)約了內(nèi)存。 2. 在算法設(shè)計中,構(gòu)造表達式樹的時候,本來以為使用遞歸構(gòu)造表達式會很難做到出錯處理的,所以采用了順序棧輔助構(gòu)造方法,并且盡可能地對程序進行完善,出錯處理。但是經(jīng)過與同學(xué)的相互討論和研究,發(fā)現(xiàn)自己的想法犯了很大的錯誤,遞歸構(gòu)造表達式對于出錯處理很簡單也很完善,這一點讓我加深了遞歸的使用和理解。 ,我最頭疼的地方。首先開始運行時會出現(xiàn)錯誤,無法輸出正確結(jié)果。通過網(wǎng)上搜索,我發(fā)現(xiàn)對于三角函數(shù)的定義類型必須是double,這樣的話,如果要改的話,差不多改大半程序,所以我就讓此功能單獨出來,由提示讓用戶手動完成。 ,花費時間最為多的是對輸入錯誤表達式的出錯處理,更改增加的代碼幾乎都是為了出錯處理,但是,覺得這樣的調(diào)試才更能鍛煉一個人的編程能力。 五 、 【用戶使用說明 】 打開程序,按屏幕上的提示輸入數(shù)據(jù),隨后就可以看到結(jié)果了。 六 、 【測試結(jié)果 】 0 a 91 +a*bc +*5x2*8x +++*3^x3*2^x2x6 7. CompoundExpr(P,amp。E1,E2)合并操作 七 、 【附錄 】 include include include include include define TRUE 1 define FALSE 0 define OK 1 define ERROR 0 typedef int Status。 typedef enum{INT,CHAR}ElemTag。 typedef struct TElemType { ElemTag tag。 union { int num。 char c。 }。 }TElemType。 typedef struct BiTNode { TElemType data。 struct BiTNode *lchild,*rchild。 }BiTNode,*BiTree。 typedef BiTree SElemType。 define STACK_INIT_SIZE 10 define STACKINCREMENT 2 typedef struct SqStack { SElemType *base。 SElemType *top。 int stacksize。 }SqStack。 Status InitStack(SqStack *S) { (*S).base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType))。 if(!(*S).base)exit(OVERFLOW)。 (*S).top=(*S).base。 (*S).stacksize=STACK_INIT_SIZE。 return OK。 } Status StackEmpty(SqStack S) { if(==) return TRUE。 else return FALSE。 } Status Push(SqStack *S,SElemType e) { if((*S).top(*S).base=(*S).sta
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1