#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
輸入整數n,生成1,2,3...n這n個數字任意排列組合的所有序列
上傳時間: 2020-10-18
上傳用戶:
上位機編程經常用到c#語言,Professional C# 7 and .NET Core 2.0為有經驗的程序員提供了他們需要與世界領先的編程語言有效合作的信息。最新的C語言更新增加了許多新的特性,幫助你在更短的時間內完成更多的工作,這本書是你快速入門的理想指南。C# 7重點關注數據消耗、代碼簡化和性能,對本地函數、元組類型、記錄類型、模式匹配、非可空引用類型、不可變類型以及更好地支持變量提供了新的支持。VisualStudio的改進將給C開發人員與空間交互的方式帶來重大改變,將.NET引入非微軟平臺,并將工具從諸如Docker、GULP和NPM等其他平臺結合起來。在一個領先的.NET專家的指導下,沉浸在真實的實用性中,這個指南旨在讓你跟上時代并回到工作中去。
上傳時間: 2021-12-01
上傳用戶:slq1234567890
MICRO HDMI TF卡 USBTYPE-C USB-側立式 攝像頭FPC-24P OLED屏模塊AD集成庫(原理圖庫+3D封裝庫),).IntLib后綴文件,拆分后文件為PcbLib+SchLib格式,Altium Designer原理圖庫+PCB封裝庫,已驗證使用,可以直接應用到你的項目開發。器件列表:ANT-Rainsun-AP5120AZ1045-04F BSN20BKR N-Channel 60 V 2.8 Ohm 310 mW 0.49 nC Surface Mount Trench MosFet - SOT-23ButtonTACT_3x4x2_180ButtonCP2102 USB轉TTLESD-0402 ESDHDR2x4_2.54 HeaderLED_0402 LEDLM4871LP2992 LDOMIC Micro-HDMI Conn Micro HDMI RCP 19 POS 0.4mm Solder RA SMD 19 Terminal 1 Port Micro HDMI Embossed T/RNL27WZU04DF OLED-6432 顯示屏OV2640 Header, 24-PinQuantum-Quark-Core RJ45座 RJ45座RT9011 TF卡座 8腳自彈USB-Type-C-TOP USB-WiFi-ANTUSB-側立式 USB A Skt, Upright/Flag, R/A GF, W/kinked shell stake, tray電容-0402 Capacitor電容-0603 Capacitor電阻-0402 Resistor二極管-5B5817WS 40V晶振-4Pin-無源 2520無源選擇跳線 Resistor
上傳時間: 2022-01-09
上傳用戶:
VIP專區-嵌入式/單片機編程源碼精選合集系列(37)資源包含以下內容:1. at91sam64編程實例.2. 一個用asm寫的操作系統原型 很適合大家學習學習.3. 本文詳細介紹了學習FREEBSD的一些命令.4. 一個12路串口+3路Socket口的數據收發程序 嵌入式ucLinux操作系統下調試通過.5. c語言中寫二進制數。引用例子: #define Bin(n) LongToBin(0x##n##l) void main(void) { unsigned char c c =.6. 此程序是利用2051單片機P1.0,P1.1精密比較器功能實現a/d轉換通過P1.0電位器調節.7. 《KEIL C51 Vision2 中文入門教程》翻譯.8. 基于單片機、nrf24e1發射接受程序.9. 一個用于控制LCD panel顯示的驅動程序。控制LCD讀寫和顯示控制。.10. libminigui-1.3.3.tar.gz。 對想學習miniGUI的朋友這是非常好的自學資料!.11. libminigui-1.3.0.tar.gz。 miniGUI的庫函數源代碼!.12. 8255 輸入、輸出實驗的匯編程序清單 方式0.13. 深圳金鵬液晶自帶漢字顯示模塊4*15D的使用例程.14. Keyboard Source code for 68HC705J1A,供胡次使用68HC705J1A.15. 用于小商品消費的SMS消費機程序.16. 是上一個SMS消費機的充值機程序.17. 以上幾個手持機的初始化程序.18. 68K328手持開發說明文檔.19. 這是一個ARM的實驗。主要是使用PWM6輸出一個固定占空比的單邊沿控制PWM信號.20. 這是一個語音電壓表.21. 具有原始語音播放功能.22. 是一個按鍵控制的錄音筆.23. 是一個飛翔的小鳥.24. 用匯編和C編寫的.25. 卷積碼的C源程序.26. 1.在發送端通過一個編碼系統對待傳數據預先編碼.27. lcd液晶顯示器的單片機地層驅動程序以及字符點陣生成器,剛剛做完的項目,希望對大家有用.28. ActiveTcl is ActiveState s quality-assured distribution of Tcl, available for AIX, HP-UX, Linux, Mac.29. 是TCL的另外一個編譯(解釋)器.30. AT88SC102及AT88SC1604 IC卡的讀寫(C51編寫)測試表明程序工作可靠.31. i2c軟件包, 很有用, 也非常簡單.32. 一個德國人用匯編寫的基于15個采樣點的dcc編碼器.33. 一個德國人寫的基于15各采樣點的dcc解碼器.34. 本程序是針對T6963C控制器的LCD接口的驅動程序。.35. key(鍵盤子程序).36. s_serial(c51用io口模擬串口).37. PS鍵盤與單片機連接.38. 在51移植的ucos2源代碼 UCOS2_KEIL.39. 單片機自發自收CAN通訊 c51_can_self.40. 日立單片機實現IIC的的程序,由C語言寫出,已經調試通過,可以放心使用.
標簽: 工程圖
上傳時間: 2013-06-02
上傳用戶:eeworm
壓電陶瓷換能器在醫學超音波儀器的應用
上傳時間: 2013-07-13
上傳用戶:eeworm
N系列射頻同軸連接器
上傳時間: 2013-06-29
上傳用戶:eeworm
Borland C++3.1 bc31full
上傳時間: 2013-07-27
上傳用戶:eeworm
Microsoft+Visual+C+++從入門到精通
上傳時間: 2013-06-05
上傳用戶:eeworm
Visual+C+++高級界面特效制作百例-郭慶民-中國電力出版社-2000
上傳時間: 2013-07-02
上傳用戶:eeworm