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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- Given a binary treestruct TreeLinkNode {TreeLinkNode *lef...
- Installation failed with message Failed to establish sess...
- 每个女生都有一颗少女心,粉色的床单,漂亮的蝴蝶结,还有各种萌宠布娃娃,只是随着年龄的增长,身份的转变,对生活的热情...