![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第1頁](http://file4.renrendoc.com/view/ea84eb8747e5be81e1a0937f01d5038c/ea84eb8747e5be81e1a0937f01d5038c1.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第2頁](http://file4.renrendoc.com/view/ea84eb8747e5be81e1a0937f01d5038c/ea84eb8747e5be81e1a0937f01d5038c2.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第3頁](http://file4.renrendoc.com/view/ea84eb8747e5be81e1a0937f01d5038c/ea84eb8747e5be81e1a0937f01d5038c3.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第4頁](http://file4.renrendoc.com/view/ea84eb8747e5be81e1a0937f01d5038c/ea84eb8747e5be81e1a0937f01d5038c4.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第5頁](http://file4.renrendoc.com/view/ea84eb8747e5be81e1a0937f01d5038c/ea84eb8747e5be81e1a0937f01d5038c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE2景德鎮(zhèn)陶瓷學(xué)院課程設(shè)計報告課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計設(shè)計題目:1、通訊錄管理9、撲克牌游戲14、拓?fù)渑判虬嗉墸河嬎銠C科學(xué)與技術(shù)1班學(xué)生姓名:游君學(xué)號:202110510114起止日期:2021年6月23日~2021年6月30日指導(dǎo)教師:李娟徐星題目1、通訊錄管理1、問題描述通訊錄管理是一個比較實用的小型管理系統(tǒng),該系統(tǒng)用于對通訊人員的姓名、號碼的管理。該設(shè)計采用菜單作為應(yīng)用程序的主要界面,用控制語句來改變程序執(zhí)行的順序,控制語句是實現(xiàn)結(jié)構(gòu)化程序設(shè)計的基礎(chǔ)。該設(shè)計的任務(wù)是利用一個簡單實用的菜單,通過菜單項進行選擇,實現(xiàn)和完成通訊錄管理中常用的幾個不同的功能。2、要求功能要求:建立通訊錄的鏈表;插入通訊錄信息;查詢通訊錄信息;刪除通訊錄信息;輸出通訊錄信息。規(guī)定:輸入通訊錄的信息:編號、姓名、性別、、地址界面要求:有合理的提示,每個功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。存儲結(jié)構(gòu):利用單鏈表存儲通訊錄信息,同時要求將通訊信息相關(guān)數(shù)據(jù)存儲在數(shù)據(jù)文件中。(數(shù)據(jù)文件的數(shù)據(jù)讀寫方法等相關(guān)內(nèi)容在c語言程序設(shè)計的書上,請自學(xué)解決)請在最后的上交資料中指明你用到的存儲結(jié)構(gòu);測試數(shù)據(jù):要求使用1、全部合法數(shù)據(jù);2、整體非法數(shù)據(jù);3、局部非法數(shù)據(jù)。進行程序測試,以保證程序的穩(wěn)定。測試數(shù)據(jù)及測試結(jié)果請在上交的資料中寫明。系統(tǒng)分析與概要設(shè)計根據(jù)問題描述和要求,系統(tǒng)要求能夠按姓名查找、增加、刪除和保存各學(xué)生的信息。確定程序應(yīng)該具備如下功能:“查詢學(xué)生信息”、“增加學(xué)生信息”、“修改學(xué)生信息”“刪除學(xué)生信息”、“數(shù)據(jù)存盤”基本模塊。系統(tǒng)可以將學(xué)生信息數(shù)據(jù)保存到磁盤文件student.txt,從而可以通過磁盤文件讀出學(xué)生數(shù)據(jù)信息,為了便于統(tǒng)計在生成學(xué)生信息時同時生成學(xué)生編號,這樣每輸入一個學(xué)生信息編號順序加1,這樣也方便了管理員查詢學(xué)生信息。詳細設(shè)計和編碼數(shù)據(jù)類型定義根據(jù)系統(tǒng)要求,可以將姓名和和聯(lián)系通訊地址定義為字符型。各模塊算法描述查詢學(xué)生信息:Que_name()輸入要查詢的學(xué)生姓名,比較名字與保存的信息是否相同,若相同則查找到,否則,沒查找到。增加學(xué)生信息:Add()輸入要添加的學(xué)生信息并保存。刪除學(xué)生信息:Del()輸入要刪除的學(xué)生姓名,若與數(shù)據(jù)相同則刪除,否則輸出查找不到該信息。修改學(xué)生信息:Mod()輸入要修改的學(xué)生姓名,輸入要修改的信息,并確認(rèn)。數(shù)據(jù)存盤:Sav()創(chuàng)建文件,將信息寫入文件。程序關(guān)鍵算法流程圖主函數(shù)流程(2)某操作算法流程Student::Add()(3)Student::Del()(4)Student::Mod()(5)Student::Que_name()Student::Sav()(7)Student::Load()三、調(diào)試結(jié)果運行界面錄入信息界面查詢信息界面修改信息界面源代碼:#include<iostream>#include<string.h>#include<windows.h>usingnamespacestd;structstudent{charnum[20];charname[20];charaddress[50];charsex[20];chartelphone[20];}student[2021];//定義學(xué)生類結(jié)構(gòu)體voidMenu();//聲明菜單函數(shù)voidInput();//聲明錄入函數(shù)voidSav(int);//聲明保存函數(shù)intLoad();//聲明信息導(dǎo)入函數(shù)voidQue_name();//聲明按姓名查找函數(shù)voidDel();//聲明刪除函數(shù)voidMod();//聲明修改函數(shù)voidScan();//聲明瀏覽函信息數(shù)voidAdd();//聲明添加函數(shù)voidMenu()//菜單函數(shù){cout<<"\t*******歡迎來到景德鎮(zhèn)陶瓷學(xué)院學(xué)生通訊錄信息管理系統(tǒng)!*******"<<endl;cout<<"\t**請按要求正確錄入學(xué)生的通訊錄信息**"<<endl;cout<<"\t**1.錄入相關(guān)學(xué)生通訊錄信息**"<<endl;cout<<"\t**2.保存相關(guān)學(xué)生通訊錄信息**"<<endl;cout<<"\t**3.按姓名查找相關(guān)學(xué)生通訊錄信息**"<<endl;cout<<"\t**4.修改相關(guān)學(xué)生通訊錄信息**"<<endl;cout<<"\t**5.刪除相關(guān)學(xué)生通訊錄信息**"<<endl;cout<<"\t**6.添加相關(guān)學(xué)生通訊錄信息**"<<endl;cout<<"\t**7.退出該學(xué)生通訊錄信息系統(tǒng)**"<<endl;cout<<"\t*****************歡迎您的光臨**************************"<<endl;}voidmain()//主函數(shù)的實現(xiàn){intn;loop: Menu();//調(diào)用菜單函數(shù) cout<<"請輸入您所要進行的操作過程的序號(1-7):"; cin>>n; system("cls");switch(n) { case1:cout<<"請輸入相關(guān)學(xué)生通訊信息:"<<endl;Input();system("cls");gotoloop; case2:cout<<"請保存相關(guān)學(xué)生通訊信息:"<<endl;Sav(n);gotoloop; case3:cout<<"按姓名查找相關(guān)學(xué)生通訊信息:"<<endl;Que_name();gotoloop; case4:cout<<"修改相關(guān)學(xué)生通訊信息:"<<endl;Mod();gotoloop; case5:cout<<"刪除相關(guān)學(xué)生通訊信息:"<<endl;Del();gotoloop; case6:cout<<"添加相關(guān)學(xué)生通訊信息:"<<endl;Add();gotoloop;//用goto語句調(diào)至指定行 default:break; }cout<<"\t\t\t*********歡迎您的使用!**********"<<endl;}voidInput()//學(xué)生通訊信息錄入函數(shù){inti,m;cout<<"請輸入您所要輸入的學(xué)生通訊信息的個數(shù)(1-2021):";cin>>m;for(i=0;i<m;i++){ cout<<"請輸入學(xué)生的編號:"<<endl; cin>>student[i].num; cout<<"請輸入通訊錄中學(xué)生的姓名:"<<endl; cin>>student[i].name; cout<<"請輸入通訊錄中學(xué)生的性別:"<<endl; cin>>student[i].sex; cout<<"請輸入通訊錄中學(xué)生的號碼:"<<endl; cin>>student[i].telphone; cout<<"請輸入通訊錄學(xué)生的地址(格式如***省**市**縣**鄉(xiāng)):"<<endl; cin>>student[i].address; cout<<"該學(xué)生的通訊信息已經(jīng)輸入完畢,請繼續(xù)輸入下一個學(xué)生通訊信息!"<<endl;}}voidSav(intm)//如何寫入信息?保存通訊錄文件函數(shù){inti;FILE*fp;if((fp=fopen("E:\\student.dat","wb"))==NULL)//創(chuàng)建文件并判斷是否能打開{cout<<"該文件打開失敗。"<<endl;exit(0);}for(i=0;i<m;i++) //將內(nèi)存中學(xué)生通訊信息輸入到磁盤里去if(fwrite(&student[i],sizeof(structstudent),1,fp)!=1)//申請空間,寫入學(xué)生信息,為何有個1???{ cout<<"信息寫入失??!"<<endl;fclose(fp);}}voidQue_name()//按姓名查找函數(shù){charname1[10];inti,m;m=Load();cout<<"請輸入您要查詢學(xué)生通訊信息的名字"<<endl;cin>>name1;for(i=0;i<m;i++)if(strcmp(name1,student[i].name)==0) { cout<<"查找到該學(xué)生的通訊信息如下:"<<endl; Scan(); break; }else{ cout<<"抱歉,查無此人!"<<endl; return;}}voidScan(){inti,m;m=Load();//不明白這個,把函數(shù)賦給m嗎?cout<<"輸出學(xué)生通訊信息如下:"<<endl;for(i=0;i<m;i++)cout<<"編號:"<<student[i].num<<""<<"姓名:"<<student[i].name<<""<<"性別:"<<student[i].sex<<""<<"聯(lián)系:"<<student[i].telphone<<""<<"通訊地址:"<<student[i].address<<""<<endl;}intLoad()//導(dǎo)入函數(shù){FILE*fp;inti=0;if((fp=fopen("E:\\student.dat","rb"))==NULL){ cout<<"文件打開失??!"<<endl; exit(0);}else{ do { fread(&student[i],sizeof(structstudent),1,fp); i++; }while(feof(fp)==0);} return(i); fclose(fp);}voidDel()//刪除函數(shù){intm;inti,j,n,t,f;charname1[10]; m=Load();cout<<"查看學(xué)生的通訊信息如下:"<<endl;Scan();//調(diào)用瀏覽函數(shù)cout<<"請輸入您想刪除的通訊信息的名字:"<<endl; cin>>name1;for(f=1,i=0;f&&i<m;i++){ if(strcmp(student[i].name,name1)==0) { cout<<"查找到該學(xué)生的通訊信息如下:"<<endl; Scan(); cout<<"如果要刪除該生信息,請按1,否則按0"<<endl; cin>>n; if(n==1)//如果刪除,則其他的信息都向前移一行 { for(j=i;j<m-1;j++) { student[j]=student[j+1]; } f=0; } } }if(!f)m=m-1;//??? elsecout<<"抱歉!未找到該生信息。"<<endl; cout<<"輸出其他學(xué)生通訊信息如下:"<<endl; Scan();//調(diào)用瀏覽函數(shù) Sav(m);//調(diào)用保存函數(shù) cout<<"如果您想繼續(xù)刪除通訊信息,請按1,否則按0。"<<endl; cin>>t; switch(t) { case1:Del();break; case0:break; default:break; };}voidMod()//修改函數(shù){ charnum[20],tel[20],sex[20]; charname[20]; charaddress[50]; intb,c,i,n,t,f; intm=Load();//導(dǎo)入文件內(nèi)的信息 cout<<"該學(xué)生先前的通訊信息為:"<<endl; Scan();//調(diào)用瀏覽函數(shù) cout<<"請輸入您想要修改通訊信息的名字:"<<endl; cin>>name; for(f=1,i=0;f&&i<m;i++) { if(strcmp(student[i].name,name)==0) { cout<<"查找到該學(xué)生的通訊信息如下:"<<endl; Scan(); cout<<"確實要修改該生通訊信息請按1,否則按0"<<endl; cin>>n; if(n==1) { cout<<"請輸入您要修改的項目(1-編號2-姓名3-性別4-聯(lián)系5-通訊地址):"<<endl; cin>>c; if(c>6||c<1) cout<<"抱歉,您的輸入有誤,請從新輸入。"<<endl; } f=0; } } if(f==1)cout<<"抱歉,未找到此人!"<<endl; do { switch(c)//因為當(dāng)找到第i個學(xué)生時,for語句后i自加了1,所以下面的應(yīng)該把改后的信息賦值給第i-1個人 { case1:cout<<"將該生的編號改為:"; cin>>num; strcpy(student[i].num,num); break; case2:cout<<"將該生的姓名改為:"; cin>>name; strcpy(student[i].name,name); break; case3:cout<<"將該生的性別改為:"; cin>>sex; strcpy(student[i].sex,sex); break; case4:cout<<"將該生的聯(lián)系改為:"; cin>>tel; strcpy(student[i].telphone,tel); break; case5:cout<<"將該生的通訊地址改為:"; cin>>address; strcpy(student[i].address,address); break; } cout<<endl; cout<<"確認(rèn)您所修改的信息請按1,從新修改請按0:"<<endl; cin>>b; }while(b==0);Sav(m); cout<<"修改后所有信息如下;"<<endl; Scan(); cout<<"如果您想繼續(xù)修改請按1,否則按0:"<<endl; cin>>t; switch(t) { case1:Mod();break; case0:break; default:break; }}voidAdd()//添加函數(shù){ intn=Load(); inti,m; cout<<"請輸入您要添加的學(xué)生通訊信息的個數(shù):"<<endl; cin>>m; for(i=n;i<m+n;i++) { cout<<"請輸入該生的編號:"; cin>>student[i].num; cout<<endl;; cout<<"請輸入該生的姓名:"; cin>>student[i].name; cout<<endl; cout<<"請輸入該生的性別:"; cin>>student[i].sex; cout<<endl; cout<<"請輸入該生的聯(lián)系:"; cin>>student[i].telphone; cout<<endl; cout<<"請輸入該生的通訊地址:"; cin>>student[i].address; cout<<endl; system("cls"); cout<<"該生的通訊信息添加完畢,請輸入您要添加的下一位學(xué)生的通訊信息!"<<endl; } Sav(m+n); cout<<"學(xué)生通訊信息添加完畢,查看信息如下:"<<endl; Scan();}題目9、撲克牌游戲需求分析1.1課程設(shè)計題目紙牌游戲:[問題描述]編號為1-52張牌,正面向上,從第2張開始,以2為基數(shù),是2的倍數(shù)的牌翻一次,直到最后一張牌;然后,從第3張開始,以3為基數(shù),是3的倍數(shù)的牌翻一次,直到最后一張牌;然后…從第4張開始,以4為基數(shù),是4的倍數(shù)的牌翻一次,直到最后一張牌;...再依次5的倍數(shù)的牌翻一次,6的,7的直到以52為基數(shù)的翻過,輸出:這時正面向上的牌有哪些?1.2課程設(shè)計目的及其任務(wù)1.2.1目的熟練掌握數(shù)據(jù)結(jié)構(gòu)這門課程,掌握經(jīng)性表、棧、隊列、串、數(shù)組、廣義表、樹和二叉樹以及圖等基本類型的數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用。進一步熟悉抽象數(shù)據(jù)類型的定義和實現(xiàn)、如何利用數(shù)組的動態(tài)分酚實現(xiàn)順序結(jié)構(gòu)、繼承的實現(xiàn)方式。學(xué)會分析研究計算機加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為應(yīng)用涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、想念結(jié)構(gòu)及基相應(yīng)的算法并初步掌握算法的時間分析和空間分析的技術(shù)?;菊莆粘绦蛟O(shè)計的基本思路和方法。利用所學(xué)的基本知識和技能,解決簡單的程序設(shè)計問題各算法描述培養(yǎng)我們的數(shù)據(jù)抽象能力。1.2.2任務(wù)1、課程設(shè)計題目每組一題,每個學(xué)生必須獨立完成;2、對課題進行功能分析,選擇合適的數(shù)據(jù)結(jié)構(gòu),并定義數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)體;3、根據(jù)程序所要完成的基本要求,設(shè)計出完整的算法;4、編程簡練,程序功能齊全,能夠正確的運行;5、每人提交一份報告,并按照報告有固定的模板和要求書寫報告。在課程設(shè)計過程中要求重視課程設(shè)計環(huán)節(jié),用嚴(yán)謹(jǐn)、科學(xué)、踏實的工作態(tài)度對待課程設(shè)計的每一項任務(wù),按照課程設(shè)計的題目要求,獨立的完成各項任務(wù),按時到機房上機,認(rèn)真編寫課程設(shè)計報告。1.3課程設(shè)計思想首先必須確定實現(xiàn)這個課程設(shè)計的主算法是使用鏈?zhǔn)酱鎯Y(jié)構(gòu)還是棧又或是數(shù)組和廣義表。根據(jù)題目要求需要實現(xiàn)的功能有:1、數(shù)據(jù)錄入:輸入各種數(shù)據(jù);此處即創(chuàng)建鏈表的過程,調(diào)用一個成員函數(shù)負(fù)值。在此處還有一個方法實現(xiàn),即先輸入數(shù)據(jù),然后再調(diào)用構(gòu)造實現(xiàn)。2、數(shù)據(jù)統(tǒng)計:存儲方式的選擇,是使用鏈?zhǔn)酱鎯Y(jié)構(gòu)還是棧又或是數(shù)組和廣義表;遵守先定義后調(diào)用的原則;數(shù)組定義時注意下標(biāo)的起始值和上限;鏈表定義時注意結(jié)點中的項;準(zhǔn)確運用結(jié)點。3、數(shù)據(jù)輸出:按要求的格式打印調(diào)用do循環(huán)和for循環(huán)4、查找,修改,刪除:這三個功能的核心是尋找成員,先遍歷鏈表,然后尋找對應(yīng)的ID號來找到結(jié)點,然后再對結(jié)點實行刪除,修改操作。1.4軟件運行環(huán)境及開發(fā)工具軟件運行的環(huán)境是WindowsXP開發(fā)工具是MicrosoftVisualC++6.0概要設(shè)計2.所用方法及其原理說明1.當(dāng)每個號碼每次遇到是某個數(shù)的倍數(shù)時,都會相應(yīng)的翻一次,這樣,每張牌會翻的次數(shù)就各不一樣,可能很多次,也可能只有一兩次,結(jié)果就只是要輸出在經(jīng)過各個不同次數(shù)的翻牌后,正面向上的牌都有哪幾個。將所有的牌建立一個數(shù)組,運用for的循環(huán)嵌套執(zhí)行以下操作:把52張牌初始化成正面朝上、控制基數(shù)和翻牌次數(shù),判斷最終的紙牌朝向并打印出結(jié)果,具體實現(xiàn)算法參看詳細設(shè)計。詳細設(shè)計3.詳細設(shè)計方案源代碼:#include<stdio.h>voidmain(){ inti,j,a[52]; for(i=2;i<=52;i++) for(j=i-1;j<52;j+=i) a[j]=!a[j];printf("正面向上的牌有:"); for(i=0;i<52;i++) if(a[i]) printf("%4d",i+1);}第四章調(diào)試和操作說明4.調(diào)試運行后的菜單展示圖2調(diào)試圖第五章總結(jié)與體會5.1本文的主要工作1.這題的時間復(fù)雜度是T(n)=O(n2)。2.雖然本次程序的題目難度與其他問題相比不是很高,但仍有很多問題我們是很容易忽視的,其一:在理解題目的要求時,注意翻牌的次數(shù)可能有多次;其二:for循環(huán)的嵌套使用在書寫時很容易漏掉大括弧。3.運用更多的基礎(chǔ)算法,使得程序和算法思想得到更好的表現(xiàn)。5.2心得體會這個學(xué)期是我第一次接觸“課程設(shè)計”,在完成設(shè)計的過程中,我遇到了一系列的問題,能明顯感覺到自己在很多方面的不足,但另一方面,問題是要分析解決的,找出問題以便為完善學(xué)習(xí)計劃,改變學(xué)習(xí)內(nèi)容與方法提供實踐依據(jù)。通過這次課程設(shè)計,加強了我們的動手、思考和解決問題的能力。在設(shè)計過程中,經(jīng)常會遇到這樣那樣的情況,總覺得思路對著,可是就是行不通,所以耗費時間比較多。在做課程設(shè)計的同時,我對課本知識也得到了鞏固和加強,由于課本上的東西太多,平時課間的學(xué)習(xí)并不能很好的理解和運用各個知識點的功能,而且考試內(nèi)容有限,所以在這次課程設(shè)計過程中,我們了解了很多知識點的功能,并且對數(shù)據(jù)結(jié)構(gòu)有了更多的了解。在平時看課本的過程中,有些問題老是弄不明白,做完課程設(shè)計,有些問題就迎刃而解了。而且還可以記住很多東西。通過動手實踐讓我們映象深刻,知識來源于實踐。實踐是認(rèn)識的動力和最終目的,也是檢驗真理的唯一標(biāo)準(zhǔn)。所以這次課程設(shè)計對我們的幫助很大。題目14拓?fù)渑判?、問題描述拓?fù)渑判蚩膳袛郃OV網(wǎng)絡(luò)中是否存在回路,使的所有活動可排成一個線性序列,使用每個活動的所有前驅(qū)活動都排在該活動的前面。2、要求(1)在有向圖中選一個沒有前驅(qū)的頂點,輸出;(2)從有向圖中刪除該頂點及其該頂點出發(fā)的所有邊;(3)重復(fù)以上兩個步驟,直至全部頂點輸出;注:輸出所有拓?fù)渑判蚩杉臃帧?、實驗內(nèi)容:拓?fù)渑判颉H我饨o定一個有向圖,設(shè)計一個算法,對它進行拓?fù)渑判?。拓?fù)渑判蛩惴ㄋ枷耄篴.在有向圖中任選一個沒有前趨的頂點輸出;b.從圖中刪除該頂點和所有以它為尾的??;c.重復(fù)上述a、b,直到全部頂點都已輸出,此時,頂點輸出序列即為一個拓樸有序序列;或者直到圖中沒有無前趨的頂點為止,此情形表明有向圖中存在環(huán)。試驗分析:在拓?fù)渑判虻倪^程之中,輸入入度為零(即沒有前趨)的頂點,同時將該頂點的直接后繼的入度減1。、查鄰接表中入度為零的頂點,并進棧。(2)、當(dāng)棧為空時,進行拓?fù)渑判颉#╝)、退棧,輸出棧頂元素V。(b)、在鄰接表中查找Vj的直接后繼Vk,將Vk的入度減一,并令入度減至零的頂點進棧。、若??諘r輸出的頂點數(shù)不是N個則說明有向回路,否則拓?fù)渑判蚪Y(jié)束。為建立存放入度為零的頂點的棧,不需要另分配存儲單元,即可借入入度為零的數(shù)據(jù)域。一方面,入度為零的頂點序號即為表頭結(jié)點的序號,另一方面,借用入度為零的數(shù)據(jù)域存放帶鏈棧的指針域(下一個入度的頂點號)。源程序:#include<iostream>#include<stack>usingnamespacestd;#defineMAXV50stack<int>mystack;intindegree[MAXV];structnode{intadjvex;node*next;}AdjList[MAXV];voidCreate(nodeAdjList[],intn,intm)//鄰接表建表函數(shù),n代表頂點數(shù),m代表邊數(shù){inti;node*p;for(i=0;i<=n-1;i++){AdjList[i].adjvex=i;AdjList[i].next=NULL;}for(i=0;i<=m-1;i++){cout<<"請輸入第"<<i<<"條邊:";intu,v;cin>>u>>v;p=newnode;p->adjvex=v;p->next=AdjList[u].next;AdjList[u].next=p;}}voidprint(intn)//鄰接表打印函數(shù){inti;node*p;for(i=0;i<=n-1;i++){p=&AdjList[i];while(p!=NULL){cout<<p->adjvex<<'';p=p->next;}cout<<endl;}}voidTopSort(nodeAdjList[],intn){inti;node*p;memset(indegree,0,sizeof(indegree));for(i=0;i<=n-1;i++){p=AdjList[i].next;while(p!=NULL){indegree[p->adjvex]++;p=p->next;}}for(i=0;i<=n-1;i++){if(indegree[i]==0)mystack.push(i);}intcount=0;while(mystack.size()!=0){i=mystack.top();mystack.pop();cout<<i<<'';count++;for
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 25062:2025 EN Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - Common Industry Format (CIF) for reporting usability
- 2025年度跨境電商物流配送服務(wù)合作協(xié)議書4篇
- 廣東電力市場2024年半年報告
- 2025年度體育產(chǎn)業(yè)合伙人投資管理合同模板
- 2025年紡織片梭織機合作協(xié)議書
- 2025年度房地產(chǎn)項目開發(fā)貸款合同范本
- 2025年智能物流運輸車輛節(jié)能減排服務(wù)協(xié)議
- 美術(shù)教育的社會責(zé)任倡導(dǎo)計劃
- 生物課程教學(xué)設(shè)計工作坊計劃
- 學(xué)生美術(shù)能力測評體系建設(shè)計劃
- 2025年2級注冊計量師專業(yè)實務(wù)真題附答案
- 果實品質(zhì)評價體系建立與應(yīng)用-深度研究
- 服裝廠安全生產(chǎn)培訓(xùn)
- 城市隧道工程施工質(zhì)量驗收規(guī)范
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 北京市東城區(qū)2024-2025學(xué)年高一上學(xué)期期末統(tǒng)一檢測歷史試卷(含答案)
- 五 100以內(nèi)的筆算加、減法2.筆算減法 第1課時 筆算減法課件2024-2025人教版一年級數(shù)學(xué)下冊
- 2025年八省聯(lián)考陜西高考生物試卷真題答案詳解(精校打印)
- 2024年湖南省公務(wù)員錄用考試《行測》真題及答案解析
- 人教版小學(xué)六年級下冊音樂教案全冊
- 12J201平屋面建筑構(gòu)造圖集(完整版)
評論
0/150
提交評論