php 實現簡單鏈式二叉樹 建立 和遍歷

2021-06-21 11:33:49 字數 1176 閱讀 3985

<?php

//鏈式二叉樹

class node

// 建立樹形為a(b(d(,g)),c(e,f)) 二叉樹

$str = 'a(b(d(,g)),c(e,f))';

//建立二叉樹

function createtree($str)

; switch($ch)

else

}break;

} }return $head;

}$head = createtree($str);

//二叉樹遍歷

//遞迴遍歷

//先序遞迴遍歷

function recursivepreorder($node)

}echo 'recursivepreorder:',recursivepreorder($head),"

";//中序遞迴遍歷

function recursivemidorder($node)

}echo 'recursivemidorder:',recursivemidorder($head),"

";//後序遞迴遍歷

function recursivepostorder($node)

}echo 'recursivepostorder:',recursivepostorder($head),'

';//非遞迴演算法遍歷

function preorder($node)

if($pop->left!=null)

} }}

echo 'preorder:',preorder($head),'

';//中序遍歷非遞迴

function midorder($node)

if(!$stack->isempty())

} }}

echo 'preorder:',midorder($head),'

';function postorder($node)

$p = null;

$flag = 1;

while(!$stack->isempty()&&$flag)

else

}}while(!$stack->isempty()); }}

echo 'preorder:',postorder($head),'

';?>

二叉樹建立和遍歷

二叉樹建立遍歷規則 1.先序 根 左 右 2.中序 左 根 右 3.後序 左 右 根 二叉樹定義和輔助函式如下 struct node void visit int data int indata 先序建立二叉樹 struct node createbitree 先序建立乙個二叉樹 return t...

二叉樹建立和遍歷

include include 帶返回值建立二叉樹 最簡單方法 節點資料結構 struct bs node typedef struct bs node tree tree head,p,root 建立二元查詢樹 有返回值的可以不傳參 沒有的話如何傳參 輸入0代表到了某個葉子節點 tree crea...

二叉樹建立和遍歷

二叉樹建立遍歷規則 1.先序 根 左 右 2.中序 左 根 右 3.後序 左 右 根 二叉樹定義和輔助函式例如以下 struct node void visit int data int indata 先序建立二叉樹 struct node createbitree 先序建立乙個二叉樹 return...