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

正文內(nèi)容

表達(dá)式求值廣義表的運(yùn)算課程設(shè)計(jì)報(bào)告(更新版)

  

【正文】 給ch; if (ch==39。實(shí)現(xiàn)過(guò)程如下:GList *CreateGL(char *amp。求廣義表的表頭,并輸出。例如:建立廣義表:(a,b(c,d),e) ,如圖3 1^ 0a0b1^ 0c0d1^0e1^^ 圖3 廣義表的存儲(chǔ)圖示求廣義表的逆表需要用堆棧存儲(chǔ)廣義表的元素,棧的數(shù)據(jù)類(lèi)型如下:typedef char ElemType。tp域是用來(lái)存放與本元素同一層的下一個(gè)元素對(duì)應(yīng)結(jié)點(diǎn)的地址,當(dāng)該元素是所在層的最后一個(gè)元素時(shí),tp的值為NULL。課本上在介紹廣義表的計(jì)本概念的基礎(chǔ)上,介紹了廣義表的存儲(chǔ)及應(yīng)用。一、問(wèn)題分析與任務(wù)定義:此程序需要完成以下幾個(gè)任務(wù):首先要將輸入的用數(shù)組存儲(chǔ)的廣義表轉(zhuǎn)化成以廣義表的存儲(chǔ)結(jié)構(gòu)存儲(chǔ)的廣義表,這個(gè)過(guò)程也就是生成廣義表;查找廣義表,查找廣義表要返回一個(gè)值flag,當(dāng)flag=1時(shí),程序查找到待查的元素,當(dāng)flag=0時(shí),程序沒(méi)有找到待查元素;輸出廣義表,遍歷廣義表,輸出廣義表的遍歷結(jié)果;取表頭,返回表頭結(jié)點(diǎn);取表尾,將廣義表從第二個(gè)元素開(kāi)始復(fù)制到另一個(gè)廣義表中;求廣義表的深度,遍歷每一層廣義表,將廣義表內(nèi)每層廣義表深度最大的廣義表相加為同一層所求過(guò)的子表中深度的最大值,最后返回值加一即為廣義表的深度;求逆表,將廣義表逆向輸出。 建立廣義表,如何根據(jù)廣義表的存儲(chǔ)結(jié)構(gòu)的特點(diǎn)建立廣義表。設(shè)計(jì)程序時(shí),先起草了流程圖,通過(guò)流程圖來(lái)看,就使得程序鮮明易懂,接下來(lái)先寫(xiě)好了主函數(shù),通過(guò)主函數(shù)的調(diào)用,實(shí)現(xiàn)題目要求的各個(gè)功能,使得程序模塊化,便于編寫(xiě),即使不會(huì)寫(xiě)的子函數(shù),也可以先空著,等待以后想到好的方法后再對(duì)其進(jìn)行操作,同時(shí)在程序界面上也做了美化,使人感覺(jué)舒暢,另外通過(guò)一個(gè)循環(huán),能讓用戶進(jìn)行循環(huán)操作,不至于每次只能進(jìn)行一項(xiàng)操作,這個(gè)循環(huán)用的和線性表里的循環(huán)有點(diǎn)類(lèi)似,但其實(shí)現(xiàn)的操作不同,當(dāng)然有了以前實(shí)驗(yàn)的基礎(chǔ),這次編寫(xiě)起來(lái),也感覺(jué)輕松了不少。 /*結(jié)點(diǎn)類(lèi)型標(biāo)識(shí)*/ union { ElemType atom。}SeqStack。求廣義表的逆表,并輸出。(39。輸出廣義表采用的算法思想是:若遇到tag=1的結(jié)點(diǎn),這是一個(gè)子表的開(kāi)始,先打印輸出一個(gè)左括號(hào)”(”。 }}廣義表的查找:FindGListX()在給定的廣義表種查找數(shù)據(jù)域?yàn)閤的結(jié)點(diǎn),采用的算法思想是:若遇到tag=0的原子結(jié)點(diǎn),如果是要查找的結(jié)點(diǎn),則查找成功1;否則,若還有后續(xù)元素,則遞歸調(diào)用本過(guò)程在孩子表中查找,若還有后續(xù)元素,則遞歸調(diào)用本過(guò)程查找后續(xù)每個(gè)元素,直到遇到hp域?yàn)镹ULL的元素。amp。 }求廣義表的逆表NIGList(GList *g,SeqStack *s)求廣義表的逆表的算法思想是:利用廣義表的遍歷將廣義表的元素存入一個(gè)堆棧中,然后在將棧中所有的元素出棧打印,函數(shù)的實(shí)現(xiàn)如下:將廣義表中的元素存入堆棧中:void NIGList(GList *g,SeqStack *s) { if(g!=NULL) { if (gtag==1) { 將廣義表中的“(”以“)”存入棧中; else 遞歸調(diào)用,將子表中的元素存入棧中; } else 將廣義表中的元素存入棧中; if (gtag==1) 將廣義表中的)以(存入棧中; if (gtp!=NULL) 將廣義表中的,存入棧中; 遞歸將后續(xù)表的內(nèi)容存入棧中。 if (flag) printf(找到待查元素!\n)。 else { system(cls)。否則顯示使用聯(lián)合體建立廣義表的數(shù)據(jù)類(lèi)型。 struct GLNode *tp。 ch=*s。 //新節(jié)點(diǎn)做為表頭節(jié)點(diǎn) h=CreateGL(s)。 //指針后移 if (h!=NULL) //判斷是否為空 if (ch==39。 //若廣義表為空,則返回 if(gtag==0) printf( %c ,g)。 g=g。amp。 if (gtag ==1amp。 //申請(qǐng)一個(gè)新結(jié)點(diǎn)t ttag=1。 } else if(gtag == 1) //若為表結(jié)點(diǎn) FindGListX(g,x,flag)。 sdata[stop]=g。 //遞歸調(diào)用將后續(xù)表的內(nèi)容存入棧中 } }void Pop(SeqStack *s) //廣義表的輸出 { while(stop=0) { printf(%c,sdata[stop])。 SeqStack *k。 printf(\t\t*****廣義表的運(yùn)算*****\n)。 printf( \t\t===========================\n)。x)。printf(\b \n)。 break。 return 。 } } }20
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1