国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP實現二叉樹的深度優先與廣度優先遍歷方法

2024-05-04 23:39:19
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP實現二叉樹的深度優先與廣度優先遍歷方法,涉及php針對二叉樹進行遍歷的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了PHP實現二叉樹的深度優先與廣度優先遍歷方法。分享給大家供大家參考。具體如下:

 

 
  1. #二叉樹的廣度優先遍歷 
  2. #使用一個隊列實現 
  3. class Node { 
  4. public $data = null
  5. public $left = null
  6. public $right = null
  7. #@param $btree 二叉樹根節點 
  8. function breadth_first_traverse($btree) { 
  9. $traverse_data = array(); 
  10. $queue = array(); 
  11. array_unshift($queue, $btree); #根節點入隊 
  12. while (!empty($queue)) { #持續輸出節點,直到隊列為空 
  13. $cnode = array_pop($queue); #隊尾元素出隊 
  14. $traverse_data[] = $cnode->data; 
  15. #左節點先入隊,然后右節點入隊 
  16. if ($cnode->left != null) array_unshift($queue, $cnode->left); 
  17. if ($cnode->right != null) array_unshift($queue, $cnode->right); 
  18. return $traverse_data; 
  19. #深度優先遍歷,使用一個棧實現 
  20. function depth_first_traverse($btree) { 
  21. $traverse_data = array(); 
  22. $stack = array(); 
  23. array_push($stack, $btree); 
  24. while (!empty($stack)) { 
  25. $cnode = array_pop($stack); 
  26. $traverse_data[] = $cnode->data; 
  27. if ($cnode->right != null) array_push($stack, $cnode->right); 
  28. if ($cnode->left != null) array_push($stack, $cnode->left); 
  29. return $traverse_data; 
  30. $root = new Node(); 
  31. $node1 = new Node(); 
  32. $node2 = new Node(); 
  33. $node3 = new Node(); 
  34. $node4 = new Node(); 
  35. $node5 = new Node(); 
  36. $node6 = new Node(); 
  37. $root->data = 1; 
  38. $node1->data = 2; 
  39. $node2->data = 3; 
  40. $node3->data = 4; 
  41. $node4->data = 5; 
  42. $node5->data = 6; 
  43. $node6->data = 7; 
  44. $root->left = $node1; 
  45. $root->right = $node2; 
  46. $node1->left = $node3; 
  47. $node1->right = $node4; 
  48. $node2->left = $node5; 
  49. $node2->right = $node6; 
  50. $traverse = breadth_first_traverse($root); 
  51. print_r($traverse); 
  52. echo ""
  53. $traverse = depth_first_traverse($root); 
  54. print_r($traverse); 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赤水市| 政和县| 中方县| 罗甸县| 永靖县| 克山县| 利津县| 凌云县| 大埔县| 湄潭县| 古丈县| 富裕县| 茌平县| 临安市| 海淀区| 广州市| 尚义县| 鄄城县| 墨竹工卡县| 社会| 图们市| 竹北市| 木里| 桐乡市| 绩溪县| 博兴县| 长泰县| 泰兴市| 全椒县| 高尔夫| 平南县| 平湖市| 呼图壁县| 长阳| 兖州市| 那曲县| 平乡县| 平乡县| 阜南县| 金堂县| 自治县|