事情有兩種改變方式: 第一序改變:不影響原有模式的改變。系統內的改變,改變狀態。 第二序改變:改變原有模式。對系統的改變,改變結果。
標簽: 改變
上傳時間: 2020-02-27
上傳用戶:烏云1973
二叉樹的前序、中序、后序遍歷的遞歸和非遞歸算法
上傳時間: 2020-04-10
上傳用戶:renwwei1986
#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 二叉樹子系統"); 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---------求葉子數 "); printf("\n\t\t 6---------求結點數 "); 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請按先序序列輸入二叉樹的結點:\n"); printf("\n\t\t說明:輸入結點(‘0’代表后繼結點為空)后按回車。\n"); printf("\n\t\t請輸入根結點:"); 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個結點。\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】鍵繼續,按任意鍵返回主菜單!\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結點的左子結點:",t->data); t->lchild=CreateTree(); printf("\n\t\t請輸入%c結點的右子結點:",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
這份 資 安 事 件 應 變 小抄,專給想要 調查安全事件的 網 管 人 員 。 記住:面對事件時, 跟著 資 安 事 件 應 變 方 法 的流程,記下記錄不要驚慌。如果需要請立刻聯絡臺
上傳時間: 2020-10-13
上傳用戶:
EN55032:2010,emc測試標準
上傳時間: 2020-12-01
上傳用戶:
單片機相序檢測代碼單片機相序檢測代碼單片機相序檢測代碼單片機相序檢測代碼單片機相序檢測代碼
上傳時間: 2021-05-02
上傳用戶:wwww123456
利用單片機實現三相電源的相序檢測 利用單片機實現三相電源的相序檢測 利用單片機實現三相電源的相序檢測 利用單片機實現三相電源的相序檢測
上傳時間: 2021-05-02
上傳用戶:wwww123456
討論了不同不平衡控制目標下轉子正、負序電流指令值計算原則, 設計了正 、反轉同步速 旋轉坐標系中 DFIG 的雙 dq 轉子電流控制器的不平衡控制方案, 實現了不平衡電網電壓條件下轉 子正 、負序電流的獨立跟蹤控制,有效地提高了小值穩態不平衡電網條件下風電機組的不間斷運行能力 。
上傳時間: 2021-10-12
上傳用戶:1111111111111
設計高速電路必須考慮高速訊 號所引發的電磁干擾、阻抗匹配及串音等效應,所以訊號完整性 (signal integrity)將是考量設計電路優劣的一項重要指標,電路日異複雜必須仰賴可 靠的軟體來幫忙分析這些複雜的效應,才比較可能獲得高品質且可靠的設計, 因此熟悉軟體的使用也將是重要的研究項目之一。另外了解高速訊號所引發之 各種效應(反射、振鈴、干擾、地彈及串音等)及其克服方法也是研究高速電路 設計的重點之一。目前高速示波器的功能越來越多,使用上很複雜,必須事先 進修學習,否則無法全盤了解儀器之功能,因而無法有效發揮儀器的量測功能。 其次就是高速訊號量測與介面的一些測試規範也必須熟悉,像眼圖分析,探針 效應,抖動(jitter)測量規範及高速串列介面量測規範等實務技術,必須充分 了解研究學習,進而才可設計出優良之教學教材及教具。
標簽: 高速電路
上傳時間: 2021-11-02
上傳用戶:jiabin
高等學校教學用書:本書內容分為5章:集合與集合的運算、關系與函數、自然性、集合的等勢與受制、序集、序數與基數。
標簽: 集合論
上傳時間: 2021-11-04
上傳用戶:nhhrzh