2021年內(nèi)蒙古自治區(qū)數(shù)據(jù)統(tǒng)計高級_第1頁
2021年內(nèi)蒙古自治區(qū)數(shù)據(jù)統(tǒng)計高級_第2頁
2021年內(nèi)蒙古自治區(qū)數(shù)據(jù)統(tǒng)計高級_第3頁
2021年內(nèi)蒙古自治區(qū)數(shù)據(jù)統(tǒng)計高級_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2021年內(nèi)蒙古自治區(qū)數(shù)據(jù)統(tǒng)計高級1、已知有向圖G=(V,E),其中V=V1,V2,V3,V4,V5,V6,V7,E=寫出G的拓撲排序的結(jié)果。G拓撲排序的結(jié)果是:V1、V2、V4、V3、V5、V6、V72、本題要求建立有序的循環(huán)鏈表。從頭到尾掃描數(shù)組A,取出Ai(0LinkedList creat(ElemType A,int n)/由含n個數(shù)據(jù)的數(shù)組A生成循環(huán)鏈表,要求鏈表有序并且無值重復(fù)結(jié)點LinkedList h;h=(LinkedList)malloc(sizeof(LNode);/申請結(jié)點h-next=h; /形成空循環(huán)鏈表for(i=0;ipre=h;p=h-next;while(

2、p!=h & p-datapre=p; p=p-next; /查找Ai的插入位置if(p=h | p-data!=Ai) /重復(fù)數(shù)據(jù)不再輸入s=(LinkedList)malloc(sizeof(LNode);s-data=Ai; pre-next=s; s-next=p;/將結(jié)點s鏈入鏈表中/forreturn(h);算法結(jié)束3、本題要求建立有序的循環(huán)鏈表。從頭到尾掃描數(shù)組A,取出Ai(0LinkedList creat(ElemType A,int n)/由含n個數(shù)據(jù)的數(shù)組A生成循環(huán)鏈表,要求鏈表有序并且無值重復(fù)結(jié)點LinkedList h;h=(LinkedList)malloc(siz

3、eof(LNode);/申請結(jié)點h-next=h; /形成空循環(huán)鏈表for(i=0;ipre=h;p=h-next;while(p!=h & p-datapre=p; p=p-next; /查找Ai的插入位置if(p=h | p-data!=Ai) /重復(fù)數(shù)據(jù)不再輸入s=(LinkedList)malloc(sizeof(LNode);s-data=Ai; pre-next=s; s-next=p;/將結(jié)點s鏈入鏈表中/forreturn(h);算法結(jié)束4、在有向圖G中,如果r到G中的每個結(jié)點都有路徑可達,則稱結(jié)點r為G的根結(jié)點。編寫一個算法完成下列功能:(1)建立有向圖G的鄰接表存儲結(jié)構(gòu);(

4、2)判斷有向圖G是否有根,若有,則打印出所有根結(jié)點的值。5、本題要求建立有序的循環(huán)鏈表。從頭到尾掃描數(shù)組A,取出Ai(0LinkedList creat(ElemType A,int n)/由含n個數(shù)據(jù)的數(shù)組A生成循環(huán)鏈表,要求鏈表有序并且無值重復(fù)結(jié)點LinkedList h;h=(LinkedList)malloc(sizeof(LNode);/申請結(jié)點h-next=h; /形成空循環(huán)鏈表for(i=0;ipre=h;p=h-next;while(p!=h & p-datapre=p; p=p-next; /查找Ai的插入位置if(p=h | p-data!=Ai) /重復(fù)數(shù)據(jù)不再輸入s=(

5、LinkedList)malloc(sizeof(LNode);s-data=Ai; pre-next=s; s-next=p;/將結(jié)點s鏈入鏈表中/forreturn(h);算法結(jié)束6、兩棵空二叉樹或僅有根結(jié)點的二叉樹相似;對非空二叉樹,可判左右子樹是否相似,采用遞歸算法。int Similar(BiTree p,q) /判斷二叉樹p和q是否相似if(p=null & q=null) return (1);else if(!p & q | p & !q) return (0);else return(Similar(p-lchild,q-lchild) & Similar(p-rchild,

6、q-rchild) /結(jié)束Similar7、本題應(yīng)使用深度優(yōu)先遍歷,從主調(diào)函數(shù)進入dfs(v)時,開始記數(shù),若退出dfs()前,已訪問完有向圖的全部頂點(設(shè)為n個),則有向圖有根,v為根結(jié)點。將n個頂點從1到n編號,各調(diào)用一次dfs()過程,就可以求出全部的根結(jié)點。題中有向圖的鄰接表存儲結(jié)構(gòu)、記頂點個數(shù)的變量、以及訪問標(biāo)記數(shù)組等均設(shè)計為全局變量。建立有向圖g的鄰接表存儲結(jié)構(gòu)參見上面第2題,這里只給出判斷有向圖是否有根的算法。int num=0, visited=0 /num記訪問頂點個數(shù),訪問數(shù)組visited初始化。const n=用戶定義的頂點數(shù);AdjList g ; /用鄰接表作存儲結(jié)構(gòu)的有向圖g。void dfs(v)visited v=1; num+; /訪問的頂點數(shù)1if (num=n) printf(“%d是有向圖的根。n”,v); num=0;/ifp=gv.firstarc;while (p)if (visiedp-adjvex=0) dfs (p-adjvex);p=p-next; /whilevisitedv=0; num-; /恢復(fù)頂點v/dfsvoid JudgeRoot()/判斷有向圖是否有根,有根則輸出之。static int i ;for (i=1;inum=0; visited1.n=0; dfs(i); /

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論