下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第C語言二叉樹層序遍歷實(shí)現(xiàn)下面圖中的二叉樹層序遍歷
#includestdio.h
#includestdlib.h
#includestdbool.h
#includeunistd.h
typedefstructnode{
chardata;
structnode*lchild;
structnode*rchild;
}NODE,*PNODE;
typedefstructqnode{
PNODEpnode;
structqnode*next;
}QNODE,*PQNODE;
typedefstructqueue{
PQNODEfront;
PQNODErear;
intsize;
}QUEUE,*PQUEUE;
PNODECreateTree(void);
voidinitQueue(PQUEUE);
voidenQueue(PQUEUE,PNODE);
booldeQueue(PQUEUE,PNODE*);
voidlevelTraversal(PNODE);
PNODECreateTree(void)
PNODEpA=(PNODE)malloc(sizeof(NODE));
PNODEpB=(PNODE)malloc(sizeof(NODE));
PNODEpC=(PNODE)malloc(sizeof(NODE));
PNODEpD=(PNODE)malloc(sizeof(NODE));
PNODEpE=(PNODE)malloc(sizeof(NODE));
PNODEpF=(PNODE)malloc(sizeof(NODE));
PNODEpG=(PNODE)malloc(sizeof(NODE));
pA-data='A';
pB-data='B';
pC-data='C';
pD-data='D';
pE-data='E';
pA-lchild=pB;
pA-rchild=pC;
pB-lchild=pB-rchild=NULL;
pC-lchild=pD;
pC-rchild=NULL;
pD-lchild=NULL;
pD-rchild=pE;
pE-lchild=pE-rchild=NULL;
returnpA;
voidinitQueue(PQUEUEpQ){
pQ-front=pQ-rear=(PQNODE)malloc(sizeof(QNODE));
if(!pQ-front){
printf("initmallocerror!\n");
exit(-1);
pQ-front-next=NULL;
pQ-size=0;
voidenQueue(PQUEUEpQ,PNODEpnode){
//printf("en_queue%c",pnode-data);
PQNODEpNew;
pNew=(PQNODE)malloc(sizeof(QNODE));
if(!pNew){
printf("en_queuemallocerror!\n");
exit(-1);
pNew-pnode=pnode;
pNew-next=NULL;
pQ-rear-next=pNew;
pQ-rear=pNew;
pQ-size++;
//printf("success.\n");
booldeQueue(PQUEUEpQ,PNODE*ppnode){
//printf("de_queue...");
PQNODEtmp;
if(pQ-front-next==NULL){
printf("failed,queueempty!\n");
returnfalse;
tmp=pQ-front-next;
*ppnode=tmp-pnode;
pQ-front-next=tmp-next;
//最后一個(gè)節(jié)點(diǎn)出隊(duì)特殊處理
if(tmp-next==NULL)
pQ-rear=pQ-front;
free(tmp);
pQ-size--;
//printf("success,value:%c\n",(*ppnode)-data);
returntrue;
voidlevelTraversal(PNODEpnode){
if(pnode){
QUEUEQ;
PNODEtmp;
initQueue(
enQueue(Q,pnode);
intlevelSize,level;
level=0;
while(Q.size){
sleep(1);
level++;
levelSize=Q.size;
printf("traversallevel%dhave%dnodes:",level,levelSize);
for(inti=0;ilevelSize;i++){
deQueue(Q,tmp);
printf("%c,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)風(fēng)險(xiǎn)管理與防范制度
- 交通肇事逃逸處理制度
- 2026甘肅電投常樂發(fā)電有限責(zé)任公司招聘30人參考題庫附答案
- 2026福建省面向中國科學(xué)院大學(xué)選調(diào)生選拔工作考試備考題庫附答案
- 2026貴州遵義市湄潭縣消防救援大隊(duì)政府專職消防隊(duì)員招聘20人參考題庫附答案
- 2026重慶醫(yī)科大學(xué)附屬第一醫(yī)院工作人員招聘參考題庫附答案
- 2026青海省海西州德令哈市司法局招聘1人備考題庫附答案
- 中共玉環(huán)市委宣傳部關(guān)于下屬事業(yè)單位 市互聯(lián)網(wǎng)宣傳指導(dǎo)中心公開選聘1名工作人員的考試備考題庫附答案
- 會昌縣2025年縣直事業(yè)單位公開選調(diào)一般工作人員考試備考題庫附答案
- 德令哈市公安局2025年面向社會公開招聘警務(wù)輔助人員參考題庫附答案
- 春節(jié)大客車安全培訓(xùn)內(nèi)容課件
- (人教A版)必修一高一數(shù)學(xué)上冊同步分層練習(xí)1.3 并集與交集第1課時(shí)(原卷版)
- 完整銀行貸款合同5篇
- 供應(yīng)鏈年終總結(jié)報(bào)告
- 2025年高考數(shù)學(xué)真題分類匯編專題10 直線與圓及圓錐曲線(全國)(解析版)
- 全媒體矩陣宣傳推廣服務(wù)項(xiàng)目方案投標(biāo)文件(技術(shù)方案)
- 2025版地暖施工項(xiàng)目進(jìn)度管理與結(jié)算合同
- 軍人成長成才課件
- 脊柱外科工作匯報(bào)
- 滬教牛津版英語九年級上學(xué)期英語各單元語法專項(xiàng)
- 熱身運(yùn)動課堂課件
評論
0/150
提交評論