老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

數(shù)據(jù)結(jié)構(gòu)二叉樹的構(gòu)造與遍歷-創(chuàng)新互聯(lián)

實(shí)驗(yàn)?zāi)康?p>本文主要是給c語言初學(xué)者或數(shù)據(jù)結(jié)構(gòu)初學(xué)者展示二叉樹的構(gòu)造與遍歷,可以作為簡(jiǎn)單的參考。除了代碼外,本文有部分博主自己對(duì)代碼的簡(jiǎn)單分析,可以通過下面的鏈接免費(fèi)下載。

成都網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、重慶網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站制作等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都塔吊租賃等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致贊揚(yáng)!
代碼
#include "stdafx.h"

// 各種引用
#include#include#include#include#define NULL 0 

int m_nNumOfLeaf=0;   // 葉子結(jié)點(diǎn)數(shù)量

typedef char ElemType;   //定義二叉樹結(jié)點(diǎn)中保存的數(shù)據(jù)的數(shù)據(jù)類型

typedef struct BinaryNode  //定義二叉樹結(jié)點(diǎn)的數(shù)據(jù)類型
{ElemType data;  //存放二叉樹結(jié)點(diǎn)數(shù)據(jù)
    struct BinaryNode *lchild, *rchild;  //存放二叉樹結(jié)點(diǎn)左右子樹的指針(指向的數(shù)據(jù)類型是本身)
} BTNode; 


BTNode * m_root= NULL; // 二叉樹指針(指向二叉樹的根結(jié)點(diǎn))

BTNode * CreatebBinaryTree()  
{BTNode *T; 
    ElemType x; 
    scanf("%c",&x);  // 獲取結(jié)點(diǎn)數(shù)據(jù)
    if(x=='#') // 空結(jié)點(diǎn)
        T=NULL; 
    else  // 非空結(jié)點(diǎn)
    {T=(BTNode*)malloc(sizeof(BTNode));  // 申請(qǐng)空間存儲(chǔ)結(jié)點(diǎn)
        T->data=x;  // 存儲(chǔ)數(shù)據(jù)
        T->lchild=CreatebBinaryTree();    // 建立以本結(jié)點(diǎn)為根的左子樹
        T->rchild=CreatebBinaryTree(); 	  // 建立以本結(jié)點(diǎn)為根的右子樹
    } 

    return(T); // 返回根結(jié)點(diǎn)
} 

void PreOrderPrint(BTNode *t) 
{if(t!=NULL)   // 根結(jié)點(diǎn)不為空
    {printf("%c\t",t->data);    // 輸出根結(jié)點(diǎn)
        PreOrderPrint(t->lchild);  // 前序遍歷以本結(jié)點(diǎn)為根的左子樹
        PreOrderPrint(t->rchild);  // 前序遍歷以本結(jié)點(diǎn)為根的右子樹
    } 
} 

void InOrderPrint(BTNode *t) 
{if(t!=NULL) // 根結(jié)點(diǎn)不為空
    {InOrderPrint(t->lchild);  // 中序遍歷以本結(jié)點(diǎn)為根的左子樹
        printf("%c\t",t->data);   // 輸出根結(jié)點(diǎn)      
        InOrderPrint(t->rchild);  // 中序遍歷以本結(jié)點(diǎn)為根的右子樹
    } 
}

void PostOrderPrint(BTNode *t) 
{if(t!=NULL) // 根結(jié)點(diǎn)不為空
    { 
        PostOrderPrint(t->lchild); // 后序遍歷以本結(jié)點(diǎn)為根的左子樹
        PostOrderPrint(t->rchild); // 后序遍歷以本結(jié)點(diǎn)為根的右子樹
		printf("%c\t",t->data);    // 輸出根結(jié)點(diǎn)
    } 
}

void CalNumOfLeaf(BTNode *t)
{if(t!=NULL)  // 根結(jié)點(diǎn)不為空
	{if((t->lchild!=NULL)||(t->rchild!=NULL))  // 判斷該結(jié)點(diǎn)是否有左右子樹		
		{	CalNumOfLeaf(t->lchild);     // 計(jì)算該結(jié)點(diǎn)左子樹的葉子結(jié)點(diǎn)數(shù)     
		    CalNumOfLeaf(t->rchild);     // 計(jì)算該結(jié)點(diǎn)右子樹的葉子結(jié)點(diǎn)數(shù)   
		}
        else m_nNumOfLeaf++;  // 是葉子結(jié)點(diǎn),則葉子結(jié)點(diǎn)數(shù)加1
	}
}

int main(int argc, char* argv[]) // 主函數(shù)
{printf("              ***************************************\n");
	printf("                            二叉樹操作\n");
	printf("              ***************************************\n");
	

	int flag = 1;
	while(flag)
	{printf("\n\n\t\t 1--建立\n");
		printf("\t\t 2--前序遍歷\n");
		printf("\t\t 3--中序遍歷\n");
		printf("\t\t 4--后序遍歷\n");
		printf("\t\t 5--葉子的數(shù)量\n");
		printf("\t\t 0--退出程序\n");

		printf("\t\t 程序編寫人<姓名:%s ; 學(xué)號(hào):%s>\n","張三","123456789"); // 顯示 姓名和學(xué)號(hào)

		scanf("%d",&flag);
		switch(flag)
		{	case 1:  // 建立二叉樹
			{	getchar(); // 獲取輸入的回車
				printf("請(qǐng)輸入二叉樹各結(jié)點(diǎn)(前序順序,#代表空結(jié)點(diǎn)),形式如(AB###,ABC#####):\n"); // 輸出字符串
				m_root = CreatebBinaryTree();  // 構(gòu)建二叉樹(前序)
				printf("建立二叉樹完畢:\n");  // 輸出字符串
			}				
				break;				
			case 2:  // 前序遍歷
			{		if(m_root == NULL)  // 出錯(cuò)判斷
				{printf("\n還沒有建立二叉樹,無法進(jìn)行此操作!\n"); // 輸出字符串
				}
				else
				{printf("\n二叉樹前序遍歷的順序?yàn)椋篭n"); // 輸出字符串

					PreOrderPrint(m_root); // 前序遍歷輸出

					printf("\n二叉樹前序遍歷結(jié)束:\n"); // 輸出字符串
				}

			}
				break;
			case 3:  // 中序遍歷
			{	
				if(m_root == NULL)  // 出錯(cuò)判斷
				{printf("\n還沒有建立二叉樹,無法進(jìn)行此操作!\n"); // 輸出字符串
				}
				else
				{printf("\n二叉樹中序遍歷的順序?yàn)椋篭n"); // 輸出字符串

					InOrderPrint(m_root); // 中序遍歷輸出

					printf("\n二叉樹中序遍歷結(jié)束:\n"); // 輸出字符串
				}
			}
				break;

			case 4:  // 后序遍歷
			{	
				if(m_root == NULL)  // 出錯(cuò)判斷
				{printf("\n還沒有建立二叉樹,無法進(jìn)行此操作!\n"); // 輸出字符串
				}
				else
				{printf("\n二叉樹后序遍歷的順序?yàn)椋篭n"); // 輸出字符串

					PostOrderPrint(m_root); // 后序遍歷輸出

					printf("\n二叉樹后序遍歷結(jié)束:\n"); // 輸出字符串
				}

			}
				break;
			case 5:  // 計(jì)算葉子結(jié)點(diǎn)的數(shù)目
			{		if(m_root == NULL)  // 出錯(cuò)判斷
				{printf("\n還沒有建立二叉樹,無法進(jìn)行此操作!\n"); // 輸出字符串
				}
				else
				{m_nNumOfLeaf=0;   // 葉子結(jié)點(diǎn)數(shù)量初始化
					CalNumOfLeaf(m_root);   // 計(jì)算葉子結(jié)點(diǎn)數(shù)量

					printf("\n當(dāng)前二叉樹中葉子數(shù)量為:%d\n",m_nNumOfLeaf); // 輸出字符串
				}
			}
				break;
			case 0:  // 退出程序
				break;

			default: // 輸入錯(cuò)誤
				printf("請(qǐng)輸入正確的數(shù)字!!!\n");
				break;
		}

	}
	return 0;

}
運(yùn)行結(jié)果

運(yùn)行結(jié)果

免費(fèi)下載代碼解析

下載

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


文章題目:數(shù)據(jù)結(jié)構(gòu)二叉樹的構(gòu)造與遍歷-創(chuàng)新互聯(lián)
分享地址:http://www.xueling.net.cn/article/dgeido.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 1000精品久久久久久久久 | www.日本农妇.无码精品 | 人妻少妇一区二区三区 | 中国久久精品 | 91狠狠 | 精品国产乱码久久久久久密桃99 | 亚洲综合色视频 | 国产成人欧美视频在线观看 | 手机看片一级片 | av毛片在线免费看 | 国产亚洲精品久久飘花 | 无码专区丰满人妻斩六十路 | 国产精品丝袜久久久久久不卡 | 欧美成人h版在线观看 | 中文无码AV一区二区三区 | 精品人妻系列无码一区二区 | 国产精品嫩草影院99网站 | 久久无码高潮喷水抽搐 | 国产成人麻豆亚洲综合无码精品 | 2020年最新国产精品正在播放 | 亚洲av色情成人永久网站小说 | 三年片中国在线观看免费大全 | 国产情趣视频免费在线观看 | 亚洲国产精品无码中文字2022 | 四虎国产成人永久精品免费 | 国产美女一级二级三级chinese | 久精品国产欧美亚洲色aⅴ大片 | 国产成人精品一区二区仙踪林 | 中文字幕一区精品 | 91综合中文字幕乱偷在线 | 欧美成人免费视频 | 亚洲欧美日韩中文视频 | china对白普通话xxxx | 精品国产一区二区AV麻豆不卡 | 噜噜在线视频 | 国产福利91精品一区 | 91tv影院免费 | 一二三精品 | 国产一级视频免费观看 | 国产精品345在线播放 | 狠狠综合久久久久综合网址 |