宝哥软件园

PHP构造二叉树算法示例

编辑:宝哥软件园 来源:互联网 时间:2021-09-04

树(树)在数据结构还是很重要的,这里表示二叉树用括号表示法表示。先写一个二叉树节点类:

//二叉树节点类BTNode { public $ data public $ lchild=NullPublic $ archild=NullPublic function _ _ construct($ data){ $ this-data=$ data;}}然后构造二叉树:

函数CreateBTNode($root,string $ str){ $ strArr=str _ split($ str);$ stack=[];$ p=NULL//指针$ top=-1;$ k=$ j=0;$root=空;foreach($ strArr as $ ch){ switch($ ch){ case '(' : $ top;array_push($stack,$ p);$ k=1;打破;case ')' : array _ pop($ stack);打破;case ',' : $ k=2;打破;default: $p=新的BtNode($ ch);if($ root==NULL){ $ root=$ p;} else { switch($ k){ case 1: end($ stack)-lchild=$ p;打破;案例2: end($ stack)-archi LD=$ p;打破;} } break} }}这里写上一个打印二叉树的函数(中序遍历):

函数printbnode($ node){ if($ node!=NULL){ print node($ node-lchild);echo $ node-data;print bnode($ node-archild);}}运行结果:

输入一个字符串A(B(C,D),G(F))'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

更多资讯
游戏推荐
更多+