php實現二叉樹遍歷


php實現二叉樹遍歷

一、總結

關注輸入輸出

 

二、php實現二叉樹遍歷

題目描述

編一個程序,讀入用戶輸入的一串先序遍歷字符串,根據此字符串建立一個二叉樹(以指針方式存儲)。 例如如下的先序遍歷字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空樹。建立起此二叉樹以后,再對二叉樹進行中序遍歷,輸出遍歷結果。

輸入描述:

輸入包括1行字符串,長度不超過100。

輸出描述:

可能有多組測試數據,對於每組數據,
輸出將輸入字符串建立二叉樹后中序遍歷的序列,每個字符后面都有一個空格。
每個輸出結果占一行。
示例1

輸入

abc##de#g##f###

輸出

c b e g d f a 

 

三、代碼

代碼一:java,教科書般

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 string str;
 5 int i;
 6 struct TreeNode
 7 {
 8     char val;
 9     struct TreeNode *lchild, *rchild;
10     TreeNode(char c) :val(c), lchild(NULL), rchild(NULL) {}
11 };
12 TreeNode* createTree() {
13     char c = str[i++];
14     if (c == '#') return NULL;
15     TreeNode *root = new TreeNode(c);
16     root->lchild = createTree();
17     root->rchild = createTree();
18     return root;
19 }
20 void inOrderTraversal(TreeNode* root) {
21     if (!root) return;
22     inOrderTraversal(root->lchild);
23     cout << root->val << " ";
24     inOrderTraversal(root->rchild);
25 }
26 int main() {
27     while (cin >> str) {
28         i = 0;
29         TreeNode *root = createTree();
30         inOrderTraversal(root);
31         cout << endl;
32     }
33     return 0;
34 }

 

代碼二:php

百度一下php中的var

 1 <?php
 2 class treeNode{
 3     var $val;
 4     var $left=null;
 5     var $right=null;
 6     function __construct($val){
 7         $this->val=$val;
 8     }
 9 }
10 $tree=new treeNode(3);
11 echo $tree->val;
12 ?>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM