二叉樹

二叉樹(binary tree)是一棵樹生巡,其中每個節(jié)點都不能有多于兩個的兒子碗誉。


// ???????????????? 3(0)

// ? ? ? ? 5(1) ? ? ? ? ? ? ? ? 8(2)

//? ? 2(3)? ? 6(4)? ? 9(5)? ? ? ? 7(6)

#include<stdio.h>

#define size 10

typedef struct{

? ? int data[size];

? ? //int s;//記錄整個數組的大小

}tree;

void init_Tree(tree *t,int root){//初始化樹坛缕,令樹中的數組每個元素都為0

? ? int i;

? ? for(i=0;i

? ? ? ? t->data[i]=0;

? ? }

? ? t->data[0]=root;

}

int search_Tree(tree *t,int nodeIndex){

? ? //樹的查找,nodeIndex代表將要查找樹的數組下標

? ? if(nodeIndex<0||nodeIndex>=size){

? ? ? ? printf("沒有該元素聊闯,查找失敗\n");

? ? ? ? return 0;

? ? }

? ? if(t->data[nodeIndex]==0){

? ? ? ? printf("該節(jié)點沒有意義\n");

? ? ? ? return 0;

? ? }

? ? return t->data[nodeIndex];

}

_Bool add_Tree(tree *t,int nodeIndex,int lor,int x){

? ? //nodeIndex代表將要插入樹的數組下標,x為將要插入元素的值

? ? if(nodeIndex<0||nodeIndex>=size){

? ? ? ? printf("沒有該元素史简,插入失敗\n");

? ? ? ? return 0;

? ? }

? ? if(t->data[nodeIndex]==0){

? ? ? ? printf("該節(jié)點沒有意義,插入失敗\n");

? ? ? ? return 0;

? ? }

? ? if(0==lor){//插入左孩子

? ? ? ? if(nodeIndex*2+1<0||nodeIndex*2+1>=size){

? ? ? ? ? ? printf("沒有該元素居暖,插入失敗\n");

? ? ? ? ? ? return 0;

? ? ? ? }

? ? ? ? if(t->data[nodeIndex*2+1]!=0){

? ? ? ? ? ? printf("該節(jié)點沒有意義,插入失敗\n");

? ? ? ? ? ? return 0;

? ? ? ? }

? ? ? ? t->data[nodeIndex*2+1]=x;

? ? }

? ? if(1==lor){//插入右孩子

? ? ? ? if(nodeIndex*2+2<0||nodeIndex*2+2>=size){

? ? ? ? ? ? printf("沒有該元素顽频,插入失敗\n");

? ? ? ? ? ? return 0;

? ? ? ? }

? ? ? ? if(t->data[nodeIndex*2+2]!=0){

? ? ? ? ? ? printf("該節(jié)點沒有意義,插入失敗\n");

? ? ? ? ? ? return 0;

? ? ? ? }

? ? ? ? t->data[nodeIndex*2+2]=x;

? ? }

? ? return 1;

}

_Bool delete_Tree(tree *t,int nodeIndex,int *n){//刪除節(jié)點

? ? if(nodeIndex<0||nodeIndex>=size){

? ? ? ? printf("沒有該元素,刪除失敗\n");

? ? ? ? return 0;

? ? }

? ? if(t->data[nodeIndex]==0){

? ? ? ? printf("該節(jié)點沒有意義,刪除失敗\n");

? ? ? ? return 0;

? ? }

? ? *n=t->data[nodeIndex];

? ? t->data[nodeIndex]=0;

? ? return 1;

}

void travel_Tree(tree *t){//遍歷樹,其實就是遍歷數組

? ? int i;

? ? for(i=0;i

? ? ? ? printf("%d,",t->data[i]);

? ? }

}

int main(){


? ? tree t;

? ? int root=3;

? ? init_Tree(&t,root);


? ? int node1=5;

? ? int node2=8;

? ? add_Tree(&t,0,0,node1);

? ? add_Tree(&t,0,1,node2);


? ? int node3=2;

? ? int node4=6;

? ? add_Tree(&t,1,0,node3);

? ? add_Tree(&t,1,1,node4);


? ? int node5=9;

? ? int node6=7;

? ? add_Tree(&t,2,0,node5);

? ? add_Tree(&t,2,1,node6);


? ? int n=0;

? ? delete_Tree(&t,6,&n);

? ? printf("%d\n",n);


? ? travel_Tree(&t);


? ? printf("\n");

? ? printf("%d\n",search_Tree(&t,2));


? ? return 0;

}

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末太闺,一起剝皮案震驚了整個濱河市糯景,隨后出現的幾起案子,更是在濱河造成了極大的恐慌省骂,老刑警劉巖蟀淮,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異钞澳,居然都是意外死亡怠惶,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門轧粟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來策治,“玉大人,你說我怎么就攤上這事兰吟⊥ū梗” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵混蔼,是天一觀的道長履腋。 經常有香客問我,道長拄丰,這世上最難降的妖魔是什么府树? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任俐末,我火速辦了婚禮,結果婚禮上奄侠,老公的妹妹穿的比我還像新娘卓箫。我一直安慰自己,他們只是感情好垄潮,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布烹卒。 她就那樣靜靜地躺著,像睡著了一般弯洗。 火紅的嫁衣襯著肌膚如雪旅急。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天牡整,我揣著相機與錄音藐吮,去河邊找鬼。 笑死逃贝,一個胖子當著我的面吹牛谣辞,可吹牛的內容都是我干的。 我是一名探鬼主播沐扳,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼泥从,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沪摄?” 一聲冷哼從身側響起躯嫉,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杨拐,沒想到半個月后祈餐,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡戏阅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年昼弟,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奕筐。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡舱痘,死狀恐怖,靈堂內的尸體忽然破棺而出离赫,到底是詐尸還是另有隱情芭逝,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布渊胸,位于F島的核電站旬盯,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜胖翰,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一接剩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萨咳,春花似錦懊缺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舀凛,卻和暖如春俊扳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背猛遍。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工馋记, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人螃壤。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓抗果,卻偏偏與公主長得像,于是被迫代替她去往敵國和親奸晴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內容