将下列代码用伪代码的形式重写 public static BiTreeNode transformStr2BT(String pushPopString, int NumOfNodes) throws Exception{ BiTreeNode BTNode = new BiTreeNode();//根节点 int NodeNumber = 1;//节点标号 BiTreeNode initialNode = new BiTreeNode(NodeNumber);//用于构造树的初始节点,初始标号为1 SqStack tempStack = new SqStack(NumOfNodes);//堆栈 BTNode = initialNode;//初始化根节点 for(int i = 1; i < 2*NumOfNodes; i ++) { if(pushPopString.charAt(i) == 'S') { NodeNumber ++; BiTreeNode tempNode = new BiTreeNode(NodeNumber); if(pushPopString.charAt(i-1) == 'S') { initialNode.leftChild = tempNode; tempStack.push(initialNode); } else { initialNode.rightChild = tempNode; } initialNode = tempNode; } else { if(pushPopString.charAt(i-1) == 'S') { initialNode.leftChild = null; } else { initialNode.rightChild = null; tempStack.pop(); } } } initialNode.rightChild = null; return BTNode; } }
时间: 2023-06-17 17:02:53 浏览: 81
BiTreeNode3.rar_BiTreeNode3_bitreenode_孩子兄弟
伪代码如下:
function transformStr2BT(pushPopString, NumOfNodes)
BTNode = new BiTreeNode() //根节点
NodeNumber = 1 //节点标号
initialNode = new BiTreeNode(NodeNumber) //用于构造树的初始节点,初始标号为1
tempStack = new SqStack(NumOfNodes) //堆栈
BTNode = initialNode //初始化根节点
for i = 1 to 2*NumOfNodes - 1 do
if pushPopString[i] == 'S' then
NodeNumber = NodeNumber + 1
tempNode = new BiTreeNode(NodeNumber)
if pushPopString[i-1] == 'S' then
initialNode.leftChild = tempNode
tempStack.push(initialNode)
else
initialNode.rightChild = tempNode
end if
initialNode = tempNode
else
if pushPopString[i-1] == 'S' then
initialNode.leftChild = null
else
initialNode.rightChild = null
tempStack.pop()
end if
end if
end for
initialNode.rightChild = null
return BTNode
end function
阅读全文