#include<stdio.h> #define TREEMAX 100 typedef struct BT { char data; BT *lchild; BT *rchild; }BT; BT *CreateTree(); void Preorder(BT *T); void Postorder(BT *T); void Inorder(BT *T); void Leafnum(BT *T); void Nodenum(BT *T); int TreeDepth(BT *T); int count=0; void main() { BT *T=NULL; char ch1,ch2,a; ch1='y'; while(ch1=='y'||ch1=='y') { printf("\n"); printf("\n\t\t 二叉樹子系統(tǒng)"); printf("\n\t\t*****************************************"); printf("\n\t\t 1---------建二叉樹 "); printf("\n\t\t 2---------先序遍歷 "); printf("\n\t\t 3---------中序遍歷 "); printf("\n\t\t 4---------后序遍歷 "); printf("\n\t\t 5---------求葉子數(shù) "); printf("\n\t\t 6---------求結(jié)點數(shù) "); printf("\n\t\t 7---------求樹深度 "); printf("\n\t\t 0---------返 回 "); printf("\n\t\t*****************************************"); printf("\n\t\t 請選擇菜單號 (0--7)"); scanf("%c",&ch2); getchar(); printf("\n"); switch(ch2) { case'1': printf("\n\t\t請按先序序列輸入二叉樹的結(jié)點:\n"); printf("\n\t\t說明:輸入結(jié)點(‘0’代表后繼結(jié)點為空)后按回車。\n"); printf("\n\t\t請輸入根結(jié)點:"); T=CreateTree(); printf("\n\t\t二叉樹成功建立!\n");break; case'2': printf("\n\t\t該二叉樹的先序遍歷序列為:"); Preorder(T);break; case'3': printf("\n\t\t該二叉樹的中序遍歷序列為:"); Inorder(T);break; case'4': printf("\n\t\t該二叉樹的后序遍歷序列為:"); Postorder(T);break; case'5': count=0;Leafnum(T); printf("\n\t\t該二叉樹有%d個葉子。\n",count);break; case'6': count=0;Nodenum(T); printf("\n\t\t該二叉樹總共有%d個結(jié)點。\n",count);break; case'7': printf("\n\t\t該樹的深度為:%d",TreeDepth(T)); break; case'0': ch1='n';break; default: printf("\n\t\t***請注意:輸入有誤!***"); } if(ch2!='0') { printf("\n\n\t\t按【Enter】鍵繼續(xù),按任意鍵返回主菜單!\n"); a=getchar(); if(a!='\xA') { getchar(); ch1='n'; } } } } BT *CreateTree() { BT *t; char x; scanf("%c",&x); getchar(); if(x=='0') t=NULL; else { t=new BT; t->data=x; printf("\n\t\t請輸入%c結(jié)點的左子結(jié)點:",t->data); t->lchild=CreateTree(); printf("\n\t\t請輸入%c結(jié)點的右子結(jié)點:",t->data); t->rchild=CreateTree(); } return t; } void Preorder(BT *T) { if(T) { printf("%3c",T->data); Preorder(T->lchild); Preorder(T->rchild); } } void Inorder(BT *T) { if(T) { Inorder(T->lchild); printf("%3c",T->data); Inorder(T->rchild); } } void Postorder(BT *T) { if(T) { Postorder(T->lchild); Postorder(T->rchild); printf("%3c",T->data); } } void Leafnum(BT *T) { if(T) { if(T->lchild==NULL&&T->rchild==NULL) count++; Leafnum(T->lchild); Leafnum(T->rchild); } } void Nodenum(BT *T) { if(T) { count++; Nodenum(T->lchild); Nodenum(T->rchild); } } int TreeDepth(BT *T) { int ldep,rdep; if(T==NULL) return 0; else { ldep=TreeDepth(T->lchild); rdep=TreeDepth(T->rchild); if(ldep>rdep) return ldep+1; else return rdep+1; } }
上傳時間: 2020-06-11
上傳用戶:ccccy
#include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t請輸入稀疏矩陣的行數(shù),列數(shù)和非零元素個數(shù)(用逗號隔開):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t輸入非零元素值(格式:行號,列號,值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t對角線元素的和::%d\n",p->v); else printf("\n\t\t對角線元素的和為::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t 稀疏矩陣的三元組系統(tǒng) "); printf("\n\t\t*********************************"); printf("\n\t\t 1------------創(chuàng)建 "); printf("\n\t\t 2------------顯示 "); printf("\n\t\t 3------------求對角線元素和"); printf("\n\t\t 4------------返回 "); printf("\n\t\t*********************************"); printf("\n\t\t請選擇菜單號(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t輸入錯誤!請重新輸入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }
上傳時間: 2020-06-11
上傳用戶:ccccy
具體實現(xiàn)功能有:播放,暫停,恢復(fù),停止,上一曲,下一曲,音量增減,播放進(jìn)度顯示及拖動進(jìn)度條改變歌曲播放時間位置,從本地添加歌曲,保存播放列表,刪除當(dāng)前,刪除列表,3種循環(huán)模式包括順序播放,單曲循環(huán),隨機播放,列表循環(huán),默認(rèn)播放模式為順序播放。
上傳時間: 2020-06-13
上傳用戶:流水一方
#include<iostream> using namespace std; int s=0; int prime(int x){ int i,p=1; for(i=2;i<=x/2;i++){ if(x%i==0){ p=0; break; } } if(p!=0){ cout<<x<< " "; s++; } } int main(){ for (int k=5;k<=100;k++){ prime(k); if(s%5==0) cout<<'\n'; } return 0; }
標(biāo)簽: C++
上傳時間: 2020-06-30
上傳用戶:1274636550
飛機訂票系統(tǒng) 任務(wù):通過此系統(tǒng)可以實現(xiàn)如下功能: 錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定) 查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達(dá)城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達(dá)城市,查詢飛機航班情況; 訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班; 退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。 修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件
標(biāo)簽: C語言航空訂票系統(tǒng)課程設(shè)計
上傳時間: 2020-07-04
上傳用戶:
RT1060硬件開發(fā)指南,Hardware Development Guide for the MIMXRT1050MIMXRT1060 Processor
上傳時間: 2020-10-21
上傳用戶:
題目描述 某人寫了n封信,同時為每一封信寫1個信封,共n個信封。如果把所有的信都裝錯了信封,問共有多少種?(這是組合數(shù)學(xué)中有名的錯位問題。著名數(shù)學(xué)家伯努利(Bernoulli)曾最先考慮此題。后來,歐拉對此題產(chǎn)生了興趣,稱此題是“組合理論的一個妙題”,獨立地解出了此題) 試編程求出完全裝錯情形的所有方式及其總量s。例如,輸入n=3,即有3封信需要裝入信封,完全裝錯的一種方式可以表示為312,表示第1封信裝入第3個信封,第2封信裝入第1個信封,第3封信裝入第2個信封。對于n=3,完全裝錯的方式共有2種,分別是312和231. 輸入 輸入一個正整數(shù)n(2<=n<=6) 輸出 輸出完全裝錯情形的所有方式以及裝錯方式的總量s (每行輸出5種方式,一行中的相鄰兩種方式之間用1個空格隔開。裝錯方式輸出時,從小到大排列,見輸出樣例)。 樣例輸入 4 樣例輸出 2143 2341 2413 3142 3412 3421 4123 4312 4321 s=9
上傳時間: 2020-11-30
上傳用戶:
l U1960局內(nèi)用戶互撥。 l 局外用戶通過自動總機轉(zhuǎn)分機號,呼叫局內(nèi)非直撥用戶。 l 配置IAD的直撥用戶,實現(xiàn)IAD直撥用戶通過長號與PSTN市話互撥。 l 所有用戶通過U1960撥打和接聽PSTN市話、手機用戶以及長途電話。 l 傳真機收發(fā)傳真。
標(biāo)簽: eSpace_UC_V 200 002 01 案例
上傳時間: 2020-12-03
上傳用戶:
EES pro下載,免安裝版,適合各類工科學(xué)子
上傳時間: 2020-12-11
上傳用戶:
-file /win8.vdf 鏡像文件名,無此參數(shù)將搜索當(dāng)前目錄的iso鏡像 -dev PciRoot(0x0)/Pci(0x1,0x1)/Ata(Primary,Master,0x0)/HD(3,MBR,0x9553A441,0xEFFF800,0x13FF800) 設(shè)備路徑,無此參數(shù)默認(rèn)為當(dāng)前設(shè)備 -wait 50 啟動前等待 -mem 將鏡像載入內(nèi)存, -type HD 可選CD HD FD,無此參數(shù)默認(rèn)HD鏡像類型,類型錯了不能啟動 -dev auto 搜索所有設(shè)備
上傳時間: 2020-12-20
上傳用戶:
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1