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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)報(bào)告-棧的應(yīng)用-表達(dá)式求值的設(shè)計(jì)-文庫吧資料

2025-01-27 16:36本頁面
  

【正文】 pHolder是 )的情況*/ while ((IsEmpty(OpHolder) != 1) amp。 else Push(holder,OpHolder)。 if(IsEmpty(OpHolder)==1){ /*當(dāng)OpHolder為空*/ Push(holder,OpHolder)。)) /*(情況特殊對待*/ PrintError = 1。 (lastseen != 39。) amp。 (lastseen != 39。 if ((lastseen == holder) amp。 } putc(holder,Temp)。 39。 /*進(jìn)棧*/ digitcounter++。A39。 } else lastseen = holder。.39。amp。 } else if ( IsOperator(holder) == 1){ /*如果holder不是操作數(shù)或運(yùn)算符號*/ PrintError = 1。 39。amp。\n39。,Temp)。 /*用來防止輸入格式錯(cuò)誤,例如兩個(gè)小數(shù)點(diǎn)*/ putc(39。 lastseen = 39。 /*初始化*/ OpHolderNext = NULL。 int digitcounter = 0。 char holder。A = operand, B = operator. (例如 1+2轉(zhuǎn)換成12+,在whereat中的形式應(yīng)該是 AAB)OpHolder說明:Char類型的堆棧Opholder用來保存運(yùn)算符號。 } RevNext = TempstackNext。 while (!IsEmpty(Rev)){ Push(Top(Rev),Tempstack)。 Tempstack = malloc(sizeof(struct Node))。 return 0。 perror(Empty Stack)。 return 0。 perror(Empty Stack)。 SNext = TmpCell。 else{ TmpCellElement = X。 TmpCell = (Ptr_Fn)malloc(sizeof(struct FNode))。 SNext = TmpCell。 else{ TmpCellElement = X。 TmpCell = (PtrToNode)malloc(sizeof(struct Node))。 else while (!IsEmpty(S)) Pop(S)。 else while (!IsEmpty(S)) Pop(S)。 free(FirstCell)。 else{ FirstCell = SNext。 }}/******彈出float棧頂元素******/void FPop(FStack S){ Ptr_Fn FirstCell。 SNext = SNextNext。 if (IsEmpty(S)) perror(Empty Stack)。 }/******檢查float堆棧是否為空******/int FIsEmpty(FStack S){ return(SNext==NULL)。 /* */ return 1。 fclose(OutputFile)。 } /* While循環(huán)結(jié)束*/ free(Whereat)。,OutputFile)。 /* 清空Whereat用來處理下一行*/ putc(39。 /*計(jì)算結(jié)果*/ } fclose(Temp)。 Temp = fopen(,r+)。){ /*錯(cuò)誤處理,*/ /*A表示操作數(shù)B表示運(yùn)算符*/ PrintError = 1。 if (Top(Whereat) == 39。 PrintError = 0。 fscanf(InputFile,\n,amp。 /* put back sample字符*/ ConvertToPost(InputFile,Whereat,Temp)。 while ( sample != EOF){ Temp = fopen(,w+)。 return(1)。 /*給 Whereat分配空間*/ WhereatNext = NULL。 /*打開文件*/ OutputFile = fopen(,w)。 char sample。/******主函數(shù)******/int main(){ FILE *InputFile, *OutputFile,*Temp。void Reverse(Stack Rev)。}。 typedef struct FNode{ float Element。float FTop(FStack S)。int FisEmpty(FStack S)。/*float類型鏈表式堆棧,用來存放操作數(shù)*/typedef struct FNode *Ptr_Fn。 PtrToNode Next。void Pop(Stack S)。void Push(char X,Stack S)。int IsEmpty(Stack S)。/*全局變量,0代表正常,1代表表達(dá)式出錯(cuò)*//*char類型鏈表式堆棧,用來存放運(yùn)算符號,以及用在中綴表達(dá)式轉(zhuǎn)換等時(shí)候*/typedef struct Node *PtrToNode。通過這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論。同時(shí),我們不能只局限于將書本上的代碼看懂,會(huì)調(diào)試運(yùn)行,我們要善于發(fā)現(xiàn)問題,提出自己的想法,聯(lián)系實(shí)際生活,開拓思維,對程序進(jìn)行改進(jìn)和完善。通過實(shí)際操作,學(xué)會(huì) 利用數(shù)據(jù)結(jié)構(gòu)進(jìn)行編程的基本思想與方法同時(shí)也了解了實(shí)驗(yàn)報(bào)告撰寫的基本要求。在具體操作中,也發(fā)現(xiàn)自己的不足之處,對于所學(xué)知識(shí)的理解還不夠深刻,運(yùn)用起來也不夠熟練。第二步,從temp文件中讀取中綴表達(dá)式,并應(yīng)用操作棧Operands計(jì)算后綴表達(dá)式結(jié)果,將結(jié)果輸出到””文件中。 中綴表達(dá)式轉(zhuǎn)換成后綴表達(dá)式將中綴表達(dá)式轉(zhuǎn)化為后綴表達(dá)式和前述對中綴表達(dá)式求值的方法完全類似,但只需要運(yùn)算符棧,遇到運(yùn)算對象時(shí)直接放后綴表達(dá)式的存儲(chǔ)區(qū),假設(shè)中綴表達(dá)式本身合法且在字符數(shù)組A中,轉(zhuǎn)換后的后綴表達(dá)式存儲(chǔ)在字符數(shù)組B中。具體做法:只使用一個(gè)對象棧,當(dāng)從左向右掃描表達(dá)式時(shí),每遇到一個(gè)操作數(shù)就送入棧中保存,每遇到一個(gè)運(yùn)算符就從棧中取出兩個(gè)操作數(shù)進(jìn)行當(dāng)前的計(jì)算,然后把結(jié)果再入棧,直到整個(gè)表達(dá)式結(jié)束,這時(shí)送入棧頂?shù)闹稻褪墙Y(jié)果。 計(jì)算一個(gè)后綴表達(dá)式,算法上比計(jì)算一個(gè)中綴表達(dá)式簡單的多。算法的基本過程如下:首先初始化操作數(shù)棧operand和運(yùn)算符棧operator,并將表達(dá)式起始符“?!眽喝脒\(yùn)算符棧; 依次讀入表達(dá)式中的每個(gè)字符,若是操作數(shù)則直接進(jìn)入操作數(shù)棧operand,若是運(yùn)算符,則與運(yùn)算符棧operator的棧頂運(yùn)算符進(jìn)行優(yōu)先權(quán)比較,并做如下處理: (1) 若棧頂運(yùn)算符的優(yōu)先級低于剛讀入的運(yùn)算符,則讓剛讀入的運(yùn)算符進(jìn)operator棧; (2) 若棧頂運(yùn)算符的優(yōu)先級高于剛讀入的運(yùn)算符,則將棧頂運(yùn)算符退棧,送入θ,同時(shí)將操作數(shù)棧oper
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1