现在的位置: 首页 > 综合 > 正文

trie树

2012年08月08日 ⁄ 综合 ⁄ 共 852字 ⁄ 字号 评论关闭
public class Trie {
	
	public Node root = new Node(' ');
	
	public void insert(Node root,String s){
		Node temp = root;
		if(s == null || s.length() == 0){
			return ;
		}
		
		for(int i = 0; i < s.length(); i++){
			int index = (int)(s.charAt(i) - 'a');
			if(temp.list[index] == null){
				temp.list[index] = new Node(s.charAt(i));
			}
			temp = temp.list[index];
		}
		temp.b = true;
	}
	
	public boolean isContain(String s){
		Node temp = root;
		for(int i = 0; i < s.length(); i++){
			int index = (int)(s.charAt(i) - 'a');
			if(temp.list[index] == null){
				return false;
			}
			temp = temp.list[index];
		}
		return temp.b;
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Trie t = new Trie();
		
		t.insert(t.root, "apple");
		t.insert(t.root, "cook");
		t.insert(t.root, "banana");
		System.out.println(t.isContain("cook"));
		System.out.println(t.isContain("ban"));
		System.out.println(t.isContain("cooka"));
	
	}

}
class Node{
	char c;
	boolean b;
	Node[] list;
	
	public Node(char c){
		this.c = c;
		this.b = false;
		this.list = new Node[26];
	}
}

抱歉!评论已关闭.