树(树)在数据结构还是很重要的,这里表示二叉树用括号表示法表示。先写一个二叉树节点类:
//二叉树节点类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))'
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。