package PocketGems;
import java.util.Stack;
/**
* Created by kangyue on 2/18/17.
*/
public class TernaryParser {
public class Node{
char var;
Node left;
Node right;
Node(char var){
this.var = var;
}
public void display(){
System.out.print(var + " ");
if(left == null) System.out.print("#" + " ");
else left.display();
if(right == null) System.out.print("#" + " ");
else right.display();
}
}
public Node parse(String s){
s = s + ":";
Stack<Node> st = new Stack<>();
Node read = null;
Node root = null;
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c == '?'){
if(st.isEmpty()){
st.push(read);
root = read;
}
else {
if(st.peek().left == null)st.peek().left = read;
else st.peek().right = read;
st.push(read);
}
} else if(c == ':'){
if(st.peek().left == null)st.peek().left = read;
else st.peek().right = read;
while(!st.isEmpty() && st.peek().right != null){
st.pop();
}
} else {
read = new Node(c);
}
}
return root;
}
public static void main(String[] args){
TernaryParser tp = new TernaryParser();
Node root = tp.parse("a?b?c:d?e:f:c");
root.display();
}
}
[pg]ternery parser to tree
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- Given a binary treestruct TreeLinkNode {TreeLinkNode *lef...
- Installation failed with message Failed to establish sess...
- 每個女生都有一顆少女心,粉色的床單,漂亮的蝴蝶結(jié),還有各種萌寵布娃娃,只是隨著年齡的增長,身份的轉(zhuǎn)變,對生活的熱情...