6.3 屈我峯議演煽!屈我峯議演煽圭隈式弓拷糞孖
屈我峯議演煽頁峺梓孚蝶嶽乏會恵諒屈我峯嶄議耽倖潤泣?聞耽倖潤泣瓜恵諒匯肝拝叙瓜恵諒匯肝。
演煽頁屈我峯嶄将械勣喘欺議匯嶽荷恬。咀葎壓糞縞哘喘諒籾嶄?械械俶勣梓匯協乏會斤屈我峯嶄議耽倖潤泣幟倖序佩恵諒?臥孀醤嗤蝶匯蒙泣議潤泣?隼朔斤宸乂諾怎訳周議潤泣序佩侃尖。
宥狛匯肝頼屁議演煽?辛聞屈我峯嶄潤泣佚連喇掲?來電双延葎蝶嶽吭吶貧議?來會双。匆祥頁傍?演煽荷恬聞掲?來潤更?來晒。
喇屈我峯議協吶辛岑?匯臣喇功潤泣、功潤泣議恣徨峯才功潤泣議嘔徨峯眉何蛍怏撹。
咀緩?峪勣卆肝演煽宸眉何蛍?祥辛參演煽屁倖屈我峯。飛參D、L、R 蛍艶燕幣恵諒功潤泣、演煽功潤泣議恣徨峯、演煽功潤泣議嘔徨峯?夸屈我峯議演煽圭塀嗤鎗嶽?DLR、LDR、LRD、DRL、RDL 才RLD。泌惚尫協枠恣朔嘔?夸峪嗤念眉嶽圭塀?軸DLR?各葎枠會演煽?、LDR?各葎嶄會演煽?才LRD?各葎朔會演煽?。
1?枠會演煽?DLR?
枠會演煽議弓拷狛殻葎?飛屈我峯葎腎?演煽潤崩。倦夸?
?1?恵諒功潤泣?
?2?枠會演煽功潤泣議恣徨峯?
?3?枠會演煽功潤泣議嘔徨峯。
枠會演煽屈我峯議弓拷麻隈泌和?
void PreOrder?BiTree bt?
{/*枠會演煽屈我峯bt*/
if (bt==NULL) return; /*弓拷距喘議潤崩訳周*/
Visite?bt->data?; /*恵諒潤泣議方象囃*/
PreOrder?bt->lchild?; /*枠會弓拷演煽bt 議恣徨峯*/
PreOrder?bt->rchild?; /*枠會弓拷演煽bt 議嘔徨峯*/
}
麻隈6.5
斤噐夕6 夕6.3(b)侭幣議屈我峯?梓枠會演煽侭誼欺議潤泣會双葎?A B D G C E F
?2?枠會演煽功潤泣議恣徨峯?
?3?枠會演煽功潤泣議嘔徨峯。
枠會演煽屈我峯議弓拷麻隈泌和?
void PreOrder?BiTree bt?
{/*枠會演煽屈我峯bt*/
if (bt==NULL) return; /*弓拷距喘議潤崩訳周*/
Visite?bt->data?; /*恵諒潤泣議方象囃*/
PreOrder?bt->lchild?; /*枠會弓拷演煽bt 議恣徨峯*/
PreOrder?bt->rchild?; /*枠會弓拷演煽bt 議嘔徨峯*/
}
麻隈6.5
斤噐夕6 夕6.3(b)侭幣議屈我峯?梓枠會演煽侭誼欺議潤泣會双葎?A B D G C E F
2?嶄會演煽?LDR?
嶄會演煽議弓拷狛殻葎?飛屈我峯葎腎?演煽潤崩。倦夸?
?1?嶄會演煽功潤泣議恣徨峯?
?2?恵諒功潤泣?
?3?嶄會演煽功潤泣議嘔徨峯。
嶄會演煽屈我峯議弓拷麻隈泌和?
void InOrder?BiTree bt?
{/*嶄會演煽屈我峯bt*/
if (bt==NULL) return; /*弓拷距喘議潤崩訳周*/
InOrder?bt->lchild?; /*嶄會弓拷演煽bt 議恣徨峯*/
Visite?bt->data?; /*恵諒潤泣議方象囃*/
InOrder?bt->rchild?; /*嶄會弓拷演煽bt 議嘔徨峯*/
}
麻隈6.6
斤噐夕6.3(b)侭幣議屈我峯?梓嶄會演煽侭誼欺議潤泣會双葎?D G B A E C F
?1?嶄會演煽功潤泣議恣徨峯?
?2?恵諒功潤泣?
?3?嶄會演煽功潤泣議嘔徨峯。
嶄會演煽屈我峯議弓拷麻隈泌和?
void InOrder?BiTree bt?
{/*嶄會演煽屈我峯bt*/
if (bt==NULL) return; /*弓拷距喘議潤崩訳周*/
InOrder?bt->lchild?; /*嶄會弓拷演煽bt 議恣徨峯*/
Visite?bt->data?; /*恵諒潤泣議方象囃*/
InOrder?bt->rchild?; /*嶄會弓拷演煽bt 議嘔徨峯*/
}
麻隈6.6
斤噐夕6.3(b)侭幣議屈我峯?梓嶄會演煽侭誼欺議潤泣會双葎?D G B A E C F
3?朔會演煽?LRD?
朔會演煽議弓拷狛殻葎?飛屈我峯葎腎?演煽潤崩。倦夸?
?1?朔會演煽功潤泣議恣徨峯?
?2?朔會演煽功潤泣議嘔徨峯。
?3?恵諒功潤泣?
朔會演煽屈我峯議弓拷麻隈泌和?
void PostOrder?BiTree bt?
{/*朔會演煽屈我峯bt*/
if (bt==NULL) return; /*弓拷距喘議潤崩訳周*/
PostOrder?bt->lchild?; /*朔會弓拷演煽bt 議恣徨峯*/
PostOrder?bt->rchild?; /*朔會弓拷演煽bt 議嘔徨峯*/
Visite?bt->data?; /*恵諒潤泣議方象囃*/
}
麻隈6.7
斤噐夕夕6.3(b)侭幣議屈我峯?梓枠會演煽侭誼欺議潤泣會双葎?G D B E F C A
4?蚊肝演煽
侭僚屈我峯議蚊肝演煽?頁峺貫屈我峯議及匯蚊?功潤泣?蝕兵?貫貧崛和幟蚊演煽?壓揖匯蚊嶄?夸梓貫恣欺嘔議乏會斤潤泣幟倖恵諒。斤噐夕6.3(b)侭幣議屈我峯?梓蚊肝演煽侭誼欺議潤惚會双葎?A B C D E F G
和中網胎蚊肝演煽議麻隈。
喇蚊肝演煽議協吶辛參容岑?壓序佩蚊肝演煽扮?斤匯蚊潤泣恵諒頼朔?壅梓孚万断議恵諒肝會斤光倖潤泣議恣頃徨才嘔頃徨乏會恵諒?宸劔匯蚊匯蚊序佩?枠囑欺議潤泣枠恵諒?宸嚥錦双議荷恬圻夸曳熟稜栽。咀緩?壓序佩蚊肝演煽扮?辛譜崔匯倖錦双潤更?演煽貫屈我峯議功潤泣蝕兵?遍枠繍功潤泣峺寞秘錦双?隼朔貫斤遊函竃匯倖圷殆?耽函匯倖圷殆?峇佩和中曾倖荷恬?
?1?恵諒乎圷殆侭峺潤泣?
?2?飛乎圷殆侭峺潤泣議恣、嘔頃徨潤泣掲腎?夸繍乎圷殆侭峺潤泣議恣頃徨峺寞才嘔頃徨峺寞乏會秘錦。
緩狛殻音僅序佩?輝錦双葎腎扮?屈我峯議蚊肝演煽潤崩。壓和中議蚊肝演煽麻隈嶄?屈我峯參屈我全燕贋慧?匯略方怏Queue[MAXNODE]喘參糞孖錦双?延楚front 才rear 蛍艶燕幣輝念斤遍圷殆才錦硫圷殆壓方怏嶄議了崔。
void LevelOrder?BiTree bt?
/*蚊肝演煽屈我峯bt*/
{ BiTree Queue[MAXNODE];
int front,rear;
if (bt==NULL) return;
front=-1;
rear=0;
queue[rear]=bt;
while(front!=rear)
{front++;
Visite(queue[front]->data); /*恵諒錦遍潤泣議方象囃*/
if (queue[front]->lchild!=NULL) /*繍錦遍潤泣議恣頃徨潤泣秘錦双*/
{ rear++;
queue[rear]=queue[front]->lchild;
}
if (queue[front]->rchild!=NULL) /*繍錦遍潤泣議嘔頃徨潤泣秘錦双*/
{ rear++;
queue[rear]=queue[front]->rchild;
}
}
}
麻隈6.8
和中網胎蚊肝演煽議麻隈。
喇蚊肝演煽議協吶辛參容岑?壓序佩蚊肝演煽扮?斤匯蚊潤泣恵諒頼朔?壅梓孚万断議恵諒肝會斤光倖潤泣議恣頃徨才嘔頃徨乏會恵諒?宸劔匯蚊匯蚊序佩?枠囑欺議潤泣枠恵諒?宸嚥錦双議荷恬圻夸曳熟稜栽。咀緩?壓序佩蚊肝演煽扮?辛譜崔匯倖錦双潤更?演煽貫屈我峯議功潤泣蝕兵?遍枠繍功潤泣峺寞秘錦双?隼朔貫斤遊函竃匯倖圷殆?耽函匯倖圷殆?峇佩和中曾倖荷恬?
?1?恵諒乎圷殆侭峺潤泣?
?2?飛乎圷殆侭峺潤泣議恣、嘔頃徨潤泣掲腎?夸繍乎圷殆侭峺潤泣議恣頃徨峺寞才嘔頃徨峺寞乏會秘錦。
緩狛殻音僅序佩?輝錦双葎腎扮?屈我峯議蚊肝演煽潤崩。壓和中議蚊肝演煽麻隈嶄?屈我峯參屈我全燕贋慧?匯略方怏Queue[MAXNODE]喘參糞孖錦双?延楚front 才rear 蛍艶燕幣輝念斤遍圷殆才錦硫圷殆壓方怏嶄議了崔。
void LevelOrder?BiTree bt?
/*蚊肝演煽屈我峯bt*/
{ BiTree Queue[MAXNODE];
int front,rear;
if (bt==NULL) return;
front=-1;
rear=0;
queue[rear]=bt;
while(front!=rear)
{front++;
Visite(queue[front]->data); /*恵諒錦遍潤泣議方象囃*/
if (queue[front]->lchild!=NULL) /*繍錦遍潤泣議恣頃徨潤泣秘錦双*/
{ rear++;
queue[rear]=queue[front]->lchild;
}
if (queue[front]->rchild!=NULL) /*繍錦遍潤泣議嘔頃徨潤泣秘錦双*/
{ rear++;
queue[rear]=queue[front]->rchild;
}
}
}
麻隈6.8