數(shù)據(jù)結構實驗報告_第1頁
數(shù)據(jù)結構實驗報告_第2頁
數(shù)據(jù)結構實驗報告_第3頁
數(shù)據(jù)結構實驗報告_第4頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結構實驗報告簡介第一篇:數(shù)據(jù)結構實驗報告浙江師范大學 實 驗 報 告 學 院: 數(shù)理與信息工程學院 專 業(yè): 計算機科學與技術 姓 名: 楊富生 學 號: 201531910137 課程名稱: 數(shù)據(jù)結構 指導教師: 鐘發(fā)榮 實驗時間: 2016-06-15 2016年6月15日 實驗一1. 實驗要求 1.1 掌握數(shù)據(jù)結構中線性表的基本概念。 1.2 熟練掌握線性表的基本操作:創(chuàng)建、插入、刪除、查找、輸出、求長度及合并并運算在順序存儲結構上的實驗。 2. 實驗內(nèi)容 2.1 編寫一個函數(shù),從一個給定的順序表a中刪除元素值在x到y(tǒng)之間的所有元素,要求以較高效率來實現(xiàn)。 #include type

2、def int elemtype; #define maxsize 10 int del(int a,int n,elemtype x,elemtype y) int i=0,k=0; while(i=x&&aidata); printtree(t->lchild,nlayer+1); void preordernorec(bitree root)/先序非遞歸遍歷 bitree p=root; bitreestack50; intnum=0; while(null!=p|num>0) while(null!=p) printf("%d ",p-&

3、gt;data); stacknum+=p; p=p->lchild; num-; p=stacknum; p=p->rchild; printf("n"); void inordernorec(bitree root)/中序非遞歸遍歷 bitree p=root; intnum=0; bitreestack50; while(null!=p|num>0) while(null!=p) stacknum+=p; p=p->lchild; num-; p=stacknum; printf("%d ",p->data); p=p

4、->rchild; printf("n"); void postordernorec(bitree root)/后序非遞歸遍歷 bitree p=root; bitreestack50; intnum=0; bitreehave_visited=null; while(null!=p|num>0) while(null!=p) stacknum+=p; p=p->lchild; p=stacknum-1; if(null=p->rchild|have_visited=p->rchild) printf("%d ",p->

5、;data); num-; have_visited=p; p=null; else p=p->rchild; printf("n"); int main()/主函數(shù)printf(" -二叉排序樹的實現(xiàn)-"); printf("n"); int layer; inti; intnum; printf("輸入節(jié)點個數(shù):"); scanf("%d",&num); printf("依次輸入這些整數(shù)(要不相等)"); int *arr=(int*)malloc(num*

6、sizeof(int); for(i=0;iscanf("%d",arr+i); bitreebst=createbst(arr,num); printf("n"); printf("二叉樹創(chuàng)建成功!"); printf("n"); layer=posttreedepth(bst); printf("樹狀圖為:n"); printtree(bst,layer); int j; int t; int k; for(;) loop: printf("n"); printf(&qu

7、ot; *按提示輸入操作符*:"); printf("n"); printf(" 1:插入節(jié)點2:刪除節(jié)點3:打印二叉樹4:非遞歸遍歷二叉樹5:退出"); scanf("%d",&j); switch(j) case 1: printf("輸入要插入的節(jié)點:"); scanf("%d",&t); insertbst(bst,t); printf("插入成功!"); printf("樹狀圖為:n"); printtree(bst,l

8、ayer); break; case 2: printf("輸入要刪除的節(jié)點"); scanf("%d",&k); deletebst(bst,k); printf("刪除成功!"); printf("樹狀圖為:n"); printtree(bst,layer); break; case 3: layer=posttreedepth(bst); printtree(bst,layer); break; case 4: printf("非遞歸遍歷二叉樹"); printf("先序

9、遍歷:n"); preordernorec(bst); printf("中序遍歷:n"); inordernorec(bst); printf("后序遍歷:n"); postordernorec(bst); printf("樹狀圖為:n"); printtree(bst,layer); break; case 5: printf("程序執(zhí)行完畢!"); return 0; goto loop; return 0; 對于第四小問,要儲存學生的三個信息,需要把上面程序修改一下,二叉樹結構變?yōu)?typedefi

10、ntelemtype; /數(shù)據(jù)類型 typedefstring slemtype; typedefint status; /返回值類型 /定義二叉樹結構 typedefstructbitnode slemtype name; elemtype score; elemtype no; /數(shù)據(jù)域 structbitnode *lchild, *rchild;/左右子樹域 bitnode, *bitree; 參數(shù)不是key,而是另外三個 intinsertbst(bitree&t,intno,intscore,string name)/插入二叉樹函數(shù)if(t=null) t = (bitre

11、e)malloc(sizeof(bitnode); t->no=no;t->name=name;t->score=score; t->lchild=t->rchild=null; return 1; else if(nono) insertbst(t->lchild,no,score,name); else if(key>t->data) insertbst(t->rchild,no,score,name); else return 0; 其他含參函數(shù)也類似 即可完成50個信息存儲 用數(shù)組存儲50個信息,查看以往代碼 #include #include using namespace std; class student private: intnum; string name; int ob1; int ob2; intara; public: void set(inta,stringb,intc,int d); void show(); int average(); ; void student :set(inta,stringb,intc,int d) num=a; name=b; ob1=c; ob2=d; ara=(c

溫馨提示

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

評論

0/150

提交評論