主函數(shù)設(shè)計(jì)和層次建立二叉樹_第1頁
主函數(shù)設(shè)計(jì)和層次建立二叉樹_第2頁
主函數(shù)設(shè)計(jì)和層次建立二叉樹_第3頁
主函數(shù)設(shè)計(jì)和層次建立二叉樹_第4頁
主函數(shù)設(shè)計(jì)和層次建立二叉樹_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、黑龍江八一農(nóng)墾大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱 主函數(shù)和層次建立二叉樹 專 業(yè) 信息與計(jì)算科學(xué) 年 級 11級 組 長 俎向朋 學(xué) 號 20214091024 組 員 徐豐 黃復(fù)闖 學(xué) 號 20214091017(徐豐) 20214091023(黃復(fù)闖) 黑龍江八一農(nóng)墾大學(xué)文理學(xué)院數(shù)學(xué)實(shí)驗(yàn)室目 錄一、設(shè)計(jì)題目1二、運(yùn)行環(huán)境1三、設(shè)計(jì)思想1四、流程圖1五、算法設(shè)計(jì)分析1六、運(yùn)行結(jié)果分析3七、學(xué)習(xí)總結(jié)6八、源代碼6主函數(shù)代碼6層次建立二叉樹代碼8一、設(shè)計(jì)題目 主函數(shù)設(shè)計(jì)和層次建立二叉樹二、運(yùn)行環(huán)境VC+6.0三、設(shè)計(jì)思想主函數(shù)設(shè)計(jì)由于程序的功能進(jìn)行的了模塊化設(shè)計(jì),分別由各小組完成,所以主函數(shù)的設(shè)計(jì)

2、是對所有模塊的調(diào)用以實(shí)現(xiàn)函數(shù)的各種功能,進(jìn)而完成程序的功能實(shí)現(xiàn)。各個(gè)功能模塊是并列關(guān)系,就用switch分支結(jié)構(gòu)實(shí)現(xiàn)對功能函數(shù)的平行調(diào)用。為了使操作者清楚自己的指令所實(shí)現(xiàn)的功能,所以設(shè)計(jì)了一個(gè)主界面來介紹模塊功能和對應(yīng)的操作指令。四、流程圖略(本小組負(fù)責(zé)設(shè)計(jì)主函數(shù)故流程圖省略)。五、算法設(shè)計(jì)分析我們小組選用層次建立法建立二叉樹,操作時(shí)按層次直接輸入即可,不需要將元素進(jìn)行先序或中序或后序處理。為了實(shí)現(xiàn)二叉樹的層次輸入建立而采用隊(duì)列作為二叉樹的存儲結(jié)構(gòu)。另外,還選用了結(jié)構(gòu)體等數(shù)據(jù)結(jié)構(gòu)。具體數(shù)據(jù)結(jié)構(gòu)介紹如下:二叉樹結(jié)點(diǎn)結(jié)構(gòu)體:typedef struct Binnode char data; str

3、uct Binnode *lchild; struct Binnode *rchild;該結(jié)構(gòu)體包含數(shù)據(jù)域(儲存結(jié)點(diǎn)信息)和指針域(儲存結(jié)點(diǎn)的左右孩子結(jié)點(diǎn)的指針)。二叉樹結(jié)點(diǎn)隊(duì)列:typedef struct queue Bintree data30; int front; int rear;該結(jié)構(gòu)體包含一個(gè)Bintree類型的數(shù)組,其內(nèi)儲存結(jié)點(diǎn)信息。層次建立二叉樹的算法設(shè)計(jì)如下:Bintree Level_Creat()Bintree root,p,s;queue node;node.front=node.rear=0;char ch;ch=getchar();if(ch='&

4、;')return NULL;root=(Binnode*)malloc(sizeof(Binnode); /生成根結(jié)點(diǎn)root->data=ch;node.datanode.rear+=root; /用隊(duì)列實(shí)現(xiàn)層次遍歷while(node.front<node.rear)p=node.datanode.front+;ch=getchar(); /為了簡化操作,分別對左右子結(jié)點(diǎn)進(jìn)行賦值。if(ch!='&')/子樹不空則進(jìn)隊(duì)列進(jìn)行擴(kuò)充。下同s=(Binnode*)malloc(sizeof(Binnode);s->data=ch;p->l

5、child=s;node.datanode.rear+=s;elsep->lchild=NULL;ch=getchar();if(ch!='&')s=(Binnode*)malloc(sizeof(Binnode);s->data=ch;p->rchild=s;node.datanode.rear+=s;elsep->rchild=NULL;return root;六、運(yùn)行結(jié)果分析主界面運(yùn)行結(jié)果分析 輸入任意鍵進(jìn)入選項(xiàng)操作界面輸入112 實(shí)現(xiàn)所選操作層次建立二叉樹運(yùn)行結(jié)果分析: 進(jìn)行輸入操作時(shí)要注意程序終止條件,由于我們小組采用的是層次建立,所以

6、結(jié)束條件為當(dāng)二叉樹的地所有葉子結(jié)點(diǎn)的左右孩子指針域?yàn)榭諘r(shí)程序結(jié)束:簡單舉例: A C B F E D G H I L 輸入ABC&DEFGH&L&I&&&&&&&&輸出結(jié)果如下;七、學(xué)習(xí)總結(jié)我們學(xué)習(xí)小組在做這次課程設(shè)計(jì)的時(shí)候我們很團(tuán)結(jié) 作為組長的我, 把我們每個(gè)人的任務(wù)都部署的很詳細(xì) 每個(gè)人都應(yīng)該做些什么, , 我們分工明確 配合融洽 互相幫助 一起探討整個(gè)課程設(shè)計(jì)的中心思想.通過這次課程設(shè)計(jì),我們發(fā)現(xiàn),對于所學(xué)的知識,我們掌握的不是很好,我們需要將知識理解透徹,不應(yīng)該只學(xué)習(xí)表面的淺層的知識, 我們覺得我們

7、這次的課程設(shè)計(jì)完成的不是很好,我們組的成員應(yīng)該好好思考一下,找到我們的不足,為下一次的課程設(shè)計(jì)做一個(gè)完美的鋪墊。我們會繼續(xù)改進(jìn),繼續(xù)努力的.還有通過這次課程設(shè)計(jì) 我們不但使同學(xué)關(guān)系更加和諧 而且還能增進(jìn)我們之間的團(tuán)隊(duì)意識 我覺得這是一項(xiàng)很好的活動(dòng).。我建議老師以后能多多給我們這樣的機(jī)會,來培養(yǎng)我們的一些能力!總之通過這項(xiàng)活動(dòng) 。我們雖說面對大的程序有些不知所措 但是我們總體來說還是很開心的!。八、源代碼主函數(shù)代碼#include<stdio.h>#include<string.h>#include<stdlib.h>/清屏函數(shù)頭文件void jiemie1(

8、) system("CLS");printf("=n");printf("=歡迎進(jìn)入主界面!=n");printf(" n");printf(" 1、輸出家族樹n");printf(" 2、統(tǒng)計(jì)家族成員數(shù)目查找n");printf(" 3、向家族中添加一個(gè)新成員n");printf(" 4、確定某一成員是第幾代n");printf(" 5、查找某一成員的兄弟n");printf(" 6、查找某一成員的雙親n

9、");printf(" 7、查找某一成員的鼻祖n");printf(" 8、查找某一成員的堂兄弟n");printf(" 9、查找某一成員是否存在n");printf(" 10、查找某一成員的子孫后代n");printf(" 11、查找某一成員的所有孩子n");printf(" 12、查找某一成員的所有祖先路徑n");/printf(" 14、進(jìn)入*n"); printf("=n");/printf("請選擇你的操作

10、選項(xiàng):n");void hanshu1()void jiemian2(int n)switch(n)case 1:printf("執(zhí)行函數(shù)1->輸出家族樹n");break;case 2:printf("執(zhí)行函數(shù)2->統(tǒng)計(jì)家族成員數(shù)目查找n");break;case 3:printf("執(zhí)行函數(shù)3->向家族中添加一個(gè)新成員n");break;case 4:printf("執(zhí)行函數(shù)4->確定某一成員是第幾代n");break;case 5:printf("執(zhí)行函數(shù)5->

11、;查找某一成員的兄弟n");break;case 6:printf("執(zhí)行函數(shù)6->查找某一成員的雙親n");break;case 7:printf("執(zhí)行函數(shù)7->查找某一成員的鼻祖n");break;case 8:printf("執(zhí)行函數(shù)8->查找某一成員的堂兄弟n");break;case 9:printf("執(zhí)行函數(shù)9->查找某一成員是否存在n");break;case 10:printf("執(zhí)行函數(shù)10->查找某一成員的子孫后代n");break

12、;case 11:printf("執(zhí)行函數(shù)11->查找某一成員的所有孩子n");break;case 12:printf("執(zhí)行函數(shù)12->查找某一成員的所有祖先路徑n");break; /case 13:printf("執(zhí)行函數(shù)13n");hanshu1();break;/case 14:printf("執(zhí)行函數(shù)14n");hanshu1();break;default:printf("輸入有誤!n");break;int main()int i;char ch;ch=getcha

13、r();while(ch!='w')ch='1' jiemie1(); system("PAUSE");system("CLS");printf("請選擇你的操作選項(xiàng):n");scanf("%d",&i);/system("PAUSE");/system("CLS"); jiemian2(i);system("PAUSE"); ch=getchar();return 0;層次建立二叉樹代碼#include<st

14、dio.h>#include<malloc.h>typedef struct Binnode/二叉樹結(jié)點(diǎn)結(jié)構(gòu)體char data; struct Binnode *lchild; struct Binnode *rchild;typedef Binnode *Bintree ;typedef struct queue /二叉樹結(jié)點(diǎn)隊(duì)列 Bintree data30; int front; int rear;void Inorder1(Bintree t)if(t!=NULL)Inorder1(t->lchild);printf("%c",t->

15、data);Inorder1(t->rchild);Bintree Level_Creat()Bintree root,p,s;queue node;node.front=node.rear=0;char ch;ch=getchar();if(ch='&')return NULL;root=(Binnode*)malloc(sizeof(Binnode); /生成根結(jié)點(diǎn)root->data=ch;node.datanode.rear+=root; /用隊(duì)列實(shí)現(xiàn)層次遍歷while(node.front<node.rear)p=node.datanode.

16、front+;ch=getchar(); /為了簡化操作,分別對左右子結(jié)點(diǎn)進(jìn)行賦值。if(ch!='&')/子樹不空則進(jìn)隊(duì)列進(jìn)行擴(kuò)充。下同s=(Binnode*)malloc(sizeof(Binnode);s->data=ch;p->lchild=s;node.datanode.rear+=s;elsep->lchild=NULL;ch=getchar();if(ch!='&')s=(Binnode*)malloc(sizeof(Binnode);s->data=ch;p->rchild=s;node.datano

17、de.rear+=s;elsep->rchild=NULL;return root;void Levelorder(Bintree t)queue q;q.data0=t;q.front=0;q.rear=1;printf("層次遍歷二叉樹結(jié)果:");while(q.front<q.rear)if(q.dataq.front)printf("%c",q.dataq.front->data);q.dataq.rear+=q.dataq.front->lchild;q.dataq.rear+=q.dataq.front->rch

18、ild;q.front+;elseq.front+;printf("nn");int main()Bintree root;root=Level_Creat();Inorder1(root);/測試,中序遍歷 Levelorder(root);return 0; 教師見習(xí)報(bào)告總結(jié)期待已久的見習(xí)已經(jīng)結(jié)束了,在龍巖三中高中部見習(xí)聽課,雖然只是短短的兩個(gè)星期,但感觸還是蠻深的,以前作為一名學(xué)生坐在課室聽課,和現(xiàn)在作為一名準(zhǔn)教師坐在課室聽課是完全不同的感受,感覺自己學(xué)到了一些在平時(shí)課堂上學(xué)不到的東西。在這里,我獲得的不僅是經(jīng)驗(yàn)上的收獲,更多是教學(xué)管理,課堂教學(xué)等的理念,以及他們帶給

19、我的種種思考。教育見習(xí)實(shí)踐過程:聽課。教育見習(xí)的主要目的是讓學(xué)生在指導(dǎo)教師的引導(dǎo)下,觀摩教師上課方法、技巧等。聽課是教育見習(xí)的主要內(nèi)容。我院規(guī)定在一周的見習(xí)中需完成至少6課的見習(xí)任務(wù)。我在教師的安排指導(dǎo)下,分別對高一、高二物理專業(yè)課型為主,其他課型齊頭的方式,積極主動(dòng)的完成了聽課任務(wù),收到良好的效果。我聽的第一節(jié)課是高二(8)班,這是一個(gè)平衡班,水平不如實(shí)驗(yàn)班高。在上課前??迫卫蠋熞呀?jīng)跟我說了這個(gè)班的紀(jì)律是比較差的,而且成績也不是很好。在我聽課期間,確實(shí)有幾個(gè)學(xué)生在課堂上說話,但是我發(fā)現(xiàn)了一個(gè)有趣的現(xiàn)象,這個(gè)現(xiàn)象我在往后的幾個(gè)班都發(fā)現(xiàn)了,就是絕大部分的學(xué)生的學(xué)習(xí)熱情都好高漲,積極舉手發(fā)言,積極

20、參與課堂活動(dòng)。我跟老師們提起這個(gè)現(xiàn)象的時(shí)候,科任老師就跟我說,一個(gè)班里不可能所有的學(xué)生都能全神貫注地聽完一節(jié)課,所以作為一名教師,應(yīng)該想辦法吸引學(xué)生的注意力,調(diào)動(dòng)的積極性,比如可以以小組為單位,以搶答計(jì)分的形式調(diào)動(dòng)學(xué)生的積極性,這樣課堂氣氛就會活躍起來了。在為期兩周的見習(xí)工作中,我真的有很大的感觸,我第一次感受到自己已經(jīng)從一名學(xué)生向一名教師靠近,走在校園里,每當(dāng)有學(xué)生叫我一聲老師,我在感到無比自豪的同時(shí),還感受到了自己的責(zé)任。見習(xí)工作結(jié)束了,我要回到學(xué)校繼續(xù)我的學(xué)習(xí)了,但是我會好好記住我從*中學(xué)學(xué)到的一切,并應(yīng)用于我的專業(yè)學(xué)習(xí)中去。一、教學(xué)管理理念 在龍巖三中,從領(lǐng)導(dǎo)階層到一位普通的

21、科任老師,都秉承以學(xué)生為主體的宗旨進(jìn)行學(xué)校的管理,進(jìn)行教學(xué)工作的開展。作為一個(gè)課程改革的示范學(xué)校,一個(gè)教育實(shí)驗(yàn)基地。這所學(xué)校鼓勵(lì)著老師做各種研究,各種改革。每個(gè)班主任都有著自己的管理經(jīng)驗(yàn)與管理宗旨。有了這種思想的自由,自然這里也就充滿著探索與嘗試,從而有所創(chuàng)造與進(jìn)步。在我見習(xí)的班集體中,班主任對他的學(xué)生說:“我要讓你們成為學(xué)習(xí)型的管理者,也是管理型的學(xué)習(xí)者。”這樣一句簡單的話,讓我感到這里老師進(jìn)行班級管理的良苦用心。他們關(guān)心的不只是學(xué)生的學(xué)習(xí),更多的是從一個(gè)完整的人的概念出發(fā),去培養(yǎng)學(xué)生多方面的素質(zhì)。二、教學(xué)理念 在見習(xí)期間,借著錄課的機(jī)會,我聽了很多的市級,校級的公開棵,還有理科實(shí)

22、驗(yàn)班的課。在這些課堂上,讓我看到教學(xué)改革正在悄然進(jìn)行,有意識的老師正在努力體會“以學(xué)生為主體”的課堂模式。學(xué)生的創(chuàng)造也逐步成為教師追求的教學(xué)效果。其次,這里的老師也都在適應(yīng)著多媒體教學(xué),信息化教學(xué),使得課堂更加生動(dòng),資源更加豐富,學(xué)生獲取學(xué)習(xí)資源的渠道也就更多。盡管,這種教學(xué)理念、教學(xué)模式的推廣仍然有很長的路,但似乎也并不遙遠(yuǎn),相信,這股改革的浪潮會給教育領(lǐng)域帶來很大的沖擊。 三、實(shí)際工作經(jīng)驗(yàn) 在上面,是我在這所學(xué)校感受最深刻,也是認(rèn)為最有意義的收獲。實(shí)際工作經(jīng)驗(yàn)上,由于在指導(dǎo)老師的指導(dǎo)下,也獲取了許多。 在班主任工作上,我認(rèn)識到了一個(gè)老師的表率作用是很大的,學(xué)生時(shí)刻看老師,作為一個(gè)老師,應(yīng)該從自己嚴(yán)格要求,并影響感染學(xué)生。這就要求師生之間的相互交流必須是貼心的,也是帶有希望的。見習(xí)期間,班主任老師教給了我許多的班級管理經(jīng)驗(yàn)。我想這些經(jīng)驗(yàn)是寶貴的,更為寶貴的是老師的主動(dòng)精神。在他的言談中,看出一個(gè)老師對于班級管理的深度認(rèn)識。所以我想:一個(gè)好的班主任不應(yīng)只是從學(xué)習(xí)上給學(xué)生幫助,而是從一

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論