1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | (a) | v --------------------------------------------- | | | | | | | v v v v v v v (0) (1) (2) (3) (4) (5) (6) | | | | | | | v | v --+ v ------+ v ------------- | ------------- | ------------- | ------------- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A B C D E F G | A B C D E F G | A B C D E F G | A B C D E F G | | | v v v ------------- ------------- ------------- | | | | | | | | | | | | | | | | | | | | | A B C D E F G A B C D E F G A B C D E F G |
1 2 3 4 5 6 7 8 9 10 11 12 13 | procedure bfs(root:NODE*); var myqueueueue; var node:NODE*; BEGIN push(myqueue,root); while(myqueue not empty) do begin node=pop(myqueue); print node; for (all children of node) do push(myqueue,children); end END |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | procedure bfs(root:NODE*); var target=0; var node=root; BEGIN for each level in tree do begin printtree(node,target,0); target=target+1; end END procedure printtree(node:NODE*, target:int, level:int); BEGIN if(target > level) then begin for each children of node do printtree(child,target,level+1); end else print node; END |
1 2 3 4 5 | +------+ +------------+ |Helper|<>------>|Tree Scanner| | | | | +------+ +------------+ <>--------> Aggregation |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | +-->(0) +-->(A) |-->(e) |-->(1) |-->(B)-->|-->(f) |-->(2)-->|-->(C) |-->(h) (a)----->| . |. | . |-->(i) ^ | . +-->(D)------------>|-->(j) | +-->(6)-->|-->(E) |-->(a) |-->(k) |-->(F)-->|-->(b) | |-->(G) |-->(c) +-->(H) | Tree scanner checks at first level, if it does not match to level number 3 it proceeds to next level +-->(0) +-->(A) |-->(e) |-->(1) |-->(B)-->|-->(f) |-->(2)-->|-->(C) |-->(h) (a)----->| . |. | . |-->(i) | . +-->(D)------------>|-->(j) +-->(6)-->|-->(E) |-->(a) |-->(k) |-->(F)-->|-->(b) ^ |-->(G) |-->(c) | +-->(H) / / Tree scanner checks at second level next if it does not match to level number 3 it proceeds to next level +-->(0) +-->(A) |-->(e) |-->(1) |-->(B)-->|-->(f) |-->(2)-->|-->(C) |-->(h) (a)----->| . |. | . |-->(i) | . +-->(D)------------>|-->(j) +-->(6)-->|-->(E) |-->(a) |-->(k) |-->(F)-->|-->(b) |-->(G) |-->(c) +-->(H) ^ | / / Tree scanner checks at third level next and it does match to level number 3 it prints this level nodes to next |
1 2 3 4 5 6 | a ------------- 0 1 2 3 4 5 6 ------------- A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G |
1 2 3 4 5 6 | for each level in tree do printtree(node, target, 0); println('-------------'); . . . |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | CEO <---BAND N ^ | +------+ | | PresidentA PresidentB ^ | +---------+ | | | VP1 VP2 VP3 . . . ^ | +-------+ | | | SE1 SE2 SE3 <----BAND x . . ^ | +--------+ | | | ENG1 ENG2 ENG3 <----BAND 1 |
1 | printtree(root,N+1-x,0); |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |