如何判断二叉树的先序遍历、中序遍历和后序遍历?
1、先根遍历一般是先序遍历(Pre-order),按照根左右的顺序沿一定路径经过路径上所有的结点。在二叉树中,先根后左再右。巧记:根左右。
首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树,如果二叉树为空则返回。
例如,下图所示二叉树的先根遍历结果是:ABDECF
2、中根遍历一般指中序遍历,在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。
中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。若二叉树为空则结束返回,否则:(1)中序遍历左子树
(2)访问根结点
(3)中序遍历右子树
如右图所示二叉树,中根遍历结果:DBEAFC
3、后根遍历一般指后序遍历,指在访问根结点、遍历左子树与遍历右子树三者中,首先遍历左子树,然后遍历右子树,最后遍历访问根结点,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后遍历根结点。后序遍历有递归算法和非递归算法两种。
如右图所示二叉树,后根遍历结果:DEBFCA
4、左子树就是以当前节点看,它的左子节点那一分支的子树,该子树以当前节点左子节点为根。
5、右子树就是以当前节点看,它的右子节点那一分支的子树,该子树以当前节点右子节点为根。左右子树只在二叉树中有意义,因为二叉树非左即右。
6、二叉树
在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
绛旓細浜屽弶鏍戠殑閬嶅巻鏂瑰紡鏈夊墠搴忋涓簭鍜屽悗搴忎笁绉嶏紝瀹冧滑鍒嗗埆鎻ず浜嗚妭鐐圭殑璁块棶椤哄簭銆備笅闈㈤愪竴浠嬬粛杩欎簺閬嶅巻鏂瑰紡銆備簩鍙夋爲鐨勫熀鏈粨鏋勭敱鏍硅妭鐐广佸乏瀛愭爲鍜屽彸瀛愭爲缁勬垚锛屾瘡涓妭鐐圭殑瀛愯妭鐐瑰彲浠ヤ负绌猴紙閫氬父琛ㄧず涓篘ULL锛夈傛瘮濡傦紝鑺傜偣A鐨勫乏瀛愭爲鏄疊锛屽彸瀛愭爲鏄疌锛岃岃妭鐐笶鐨勫乏鍙冲瓙鏍戠殕涓虹┖銆傞鍏堬紝鍓嶅簭閬嶅巻锛涔熺О涓鍏堟牴閬嶅巻锛...
绛旓細浜屽弶鏍鍓嶅簭涓簭鍚庡簭濡備笅锛氣憼鍓嶅簭閬嶅巻鐨勬柟寮忔槸锛氶鍏堣闂牴鑺傜偣锛岀劧鍚庤闂乏瀛愭爲锛屾渶鍚庤闂彸瀛愭爲銆傚墠搴忛亶鍘嗗簭鍒楋細F C A D B E H G M銆傗憽涓簭閬嶅巻鐨勬柟寮忔槸锛氶鍏堣闂乏瀛愭爲锛屾帴鐫璁块棶鏍圭粨鐐癸紝鏈鍚庤闂彸瀛愭爲銆備腑搴忛亶鍘嗗簭鍒楋細A C B D F H E M G銆傗憿鍚庡簭閬嶅巻鐨勬柟寮忔槸锛氶鍏堣闂乏瀛愭爲锛屾帴...
绛旓細鍓搴忓厛璁块棶鏍硅妭鐐癸紝閬嶅巻宸﹀簭鐒跺悗鍙冲簭銆備腑搴忓厛閬嶅巻宸﹀簭鐒跺悗璁块棶鏍硅妭鐐癸紝閬嶅巻鍙冲簭銆傚亣璁炬煇浜屽弶鏍戠殑鍏堝簭閬嶅巻搴忓垪鏄痑bdgcefh锛屼腑搴閬嶅巻搴忓垪鏄痙gbaechf锛岀敾鍑轰簩鍙夋爲锛屽苟缁欏嚭鍏跺悗搴忛亶鍘嗗簭鍒椼傚凡鐭ヤ竴妫典簩鍙夋爲鐨勫厛搴忛亶鍘嗗簭鍒楀拰涓簭閬嶅巻搴忓垪鍒嗗埆鏄痑bdgcefh銆乨gbaechf锛屾眰浜屽弶鏍戝強鍚庡簭閬嶅巻搴忓垪銆傚垎鏋愶細鍏堝簭閬嶅巻...
绛旓細鏍戠殑閬嶅巻鐨勪笁绉嶆儏鍐碉紝鏄牴鎹乏瀛愭爲銆佸彸瀛愭爲銆佹牴杩3鑰呯殑涓嶅悓璁块棶娆″簭鏉ュ畾涔夌殑銆傛牴宸﹀彸锛鏍瑰厛璁块棶锛夛紝鍒欎负鍏堝簭閬嶅巻锛涘乏鏍瑰彸锛屽垯涓涓簭閬嶅巻锛涘乏鍙虫牴锛屽垯涓哄悗搴忛亶鍘嗐備妇渚嬪涓:鍓嶅簭閬嶅巻缁撴灉涓:ABC涓簭閬嶅巻缁撴灉涓:BAC鍚庣画閬嶅巻缁撴灉涓:BCA
绛旓細灞傛閬嶅巻EAFBHDGICKJ銆傚悗搴忛亶鍘咰DBAGJKIHFE銆傜敾娉曪細鏍笶锛孍宸鍙矲锛孉鍙矪锛孊鍙矰銆傚厛鐪嬪厛搴忥紝鍏剁涓涓负涓撴爲鐨勬牴锛屽睘鍏堝簭閬嶅巻鏄厛鏍瑰啀宸﹀瓙鏍戞渶鍚庡彸瀛愭爲锛岀涓涓偗瀹氭槸鏍戠殑鏍癸紝鍏堢敾A锛孉鍐涓簭閬嶅巻涓乏鍙抽兘鏈夛紝璇存槑A鏈夊乏瀛愭爲涔熸湁鍙冲瓙鏍戙
绛旓細鎺ョ潃鍏堝簭涓槸F锛孎鍦ㄤ腑搴忎负A鍚庨潰锛屾槸A鐨勫彸瀛愭爲 A / \ B F / \ C D \ E 涓簭涓 A 涓嶧涔嬮棿娌℃湁锛岃鏄嶧娌℃湁宸﹀瓙鏍戯紝鍙湁鍙冲瓙鏍.濡備笂闈㈡柟娉曠户缁垎鏋怗HIJ锛屾渶缁浜屽弶鏍濡備笅锛欰 / \ B F / \ \ C D G \ / \ E H J \ I ...
绛旓細鎬庝箞鏍规嵁浜屽弶鏍戠殑鍓嶅簭锛屼腑搴忥紝纭畾瀹冪殑鍚庡簭 浜屽弶鏍戦亶鍘嗗垎涓轰笁绫伙細鍓嶅簭閬嶅巻锛屼腑搴閬嶅巻鍜屽悗搴忛亶鍘嗐傚墠搴忛亶鍘嗭細鍏堣闂牴鑺傜偣锛岀劧鍚庨亶鍘嗗乏瀛愭爲锛屾渶鍚庨亶鍘嗗彸瀛愭爲锛涘苟涓斿湪閬嶅巻宸︼紝鍙冲瓙鏍戞椂锛屼粛闇鍏堣闂牴鑺傜偣锛岀劧鍚庨亶鍘嗗乏瀛愭爲锛屾渶鍚庨亶鍘嗗彸瀛愭爲銆備腑搴忛亶鍘嗭細鍏堥亶鍘宸﹀瓙鏍戯紝鐒跺悗璁块棶鏍硅妭鐐癸紝鏈鍚庨亶鍘嗗彸瀛愭爲锛...
绛旓細杩欓噷鐨勨滃厛鏍光濅篃鍙仛鍏堝簭锛屸滀腑鈥濆拰鈥滃悗鈥濅篃涓鏍枫傚厛搴忛亶鍘嗘槸鍏堣闂綋鍓嶈妭鐐癸紝鐒跺悗鍐嶉亶鍘嗗乏瀛愭爲锛屾渶鍚庢槸鍙冲瓙鏍戙備腑搴忛亶鍘嗘槸鍏堥亶鍘宸﹀瓙鏍戯紝鍐嶈闂綋鍓嶈妭鐐癸紝鏈鍚庢槸鍙冲瓙鏍戙傚悗搴忛亶鍘嗘槸鍏堥亶鍘嗗乏瀛愭爲锛屽啀閬嶅巻鍙冲瓙鏍戯紝鏈鍚庤闂綋鍓嶈妭鐐广備緥锛氫竴妫浜屽弶鏍戠殑鍏堟牴閬嶅巻涓篈BCDEFG锛屼腑鏍閬嶅巻涓篊BDEAGF锛屽垯鍏跺悗...
绛旓細涓簭閬嶅巻鏄細CB(ED)A(GI)F 鎷彿鍐呭墠鍚庡彲浜ゆ崲锛屽叡4绉嶇瓟妗堛鍓嶅簭A寮澶村悗搴廇缁撳熬锛屾墍浠鏄牴鑺傜偣 鐒跺悗鍓嶅洓涓瓧姣嶇浉鍚屼负宸︽敮锛屽悗涓変釜瀛楁瘝鐩稿悓涓哄彸鏀 宸︽敮鍒嗘瀽锛氬墠搴廈CDE锛屽悗搴廋EDB锛屾墍浠鏄浜屽眰宸︽敮鑺傜偣銆侰涓哄乏鏀紝DE涓哄彸鏀傚墠搴廌E鍚庡簭ED锛屽紑澶寸粨灏綝涓烘牴锛孍鏄疍涓嬬殑宸﹀彸鑺傜偣閮藉彲浠ャ傛敞...
绛旓細浠庡墠搴忕殑绗竴涓粨鐐瑰紑濮嬬‘瀹氭牴锛屼腑搴鍐冲畾宸﹀瓙鏍戝拰鍙冲瓙鏍戯紝濡傜涓涓粨鐐笰锛屾牴鎹腑搴忓彲鐭ワ紝A鐨勫乏瀛愭爲鏄疍BE锛屽彸瀛愭爲鏄疐C锛屽啀浠庡墠搴忎腑纭畾绗簩涓牴B锛屾牴鎹腑搴忓彲鐭鐨勫乏瀛愭爲鏄疍锛屽彸瀛愭爲涓篍锛屼緷娆¢噸澶嶆墽琛岋紝鐩村埌閬嶅巻瀹屾墍鏈夌粨鐐广傛墍浠ュ悗搴忛亶鍘DEBFCA ...