एक पेड़ है कि द्विआधारी नहीं है में सर्च कर रहे हैं

वोट
0

अरे दोस्तों, मैं एक पेड़ जो एक द्विआधारी पेड़ नहीं है बनाया है। अब, क्या मैं चाहता हूँ एक तत्व के लिए खोज करने के लिए है। मुख्य बात यह है: जब से मैं एक द्विआधारी पेड़ के विपरीत कोई तुलना मौका है, मैं कोड लागू करने के लिए कुछ अन्य तरीके खोजने के लिए है। यहाँ मैं क्या सोचा था:

public TreeNode<City> search(City parent, TreeNode<City> t){
//As you guess, City class is irrelevant to the issue, I have no problem with City class.
    if (t.getCity().equals(parent)) {
        return t;
    }
    else if (t.hasLeftChild()){
        search(parent,t.getLeftChild());
    }
    else if(t.hasNextSibling()){
        search(parent,t.getNextSibling());
    }
    else//Since I know that case will never happen, the returned value is unimportant
        return t;
    }

बेशक, यह कोड काम नहीं किया। कठिन हिस्सा मैं जितनी जल्दी मैं इसे खोजने के रूप में मैं तलाश कर रहा हूँ मान देने के लिए होता है। फिर भी, मैं यह नहीं मिल सकता है, तो मैं अभी भी कुछ वापस लौटाना होगा। मैं कैसे है कि करने जा रहा हूँ ???

25/05/2011 को 15:03
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

प्रारंभ करने के लिए, आप के लिए (किसी भी तरह) के लिए पुनरावर्ती कॉल द्वारा दिए गए मान का उपयोग की जरूरत है search()- शायद returnयह:

public TreeNode<City> search(City parent, TreeNode<City> t){
    if (t.getCity().equals(parent)) {
        return t;
    }
    else if (t.hasLeftChild()){
        return search(parent,t.getLeftChild());
    }
    else if(t.hasNextSibling()){
        return search(parent,t.getNextSibling());
    }
    return null;
}
25/05/2011 को 15:07
का स्रोत उपयोगकर्ता

वोट
0

पुनरावर्ती क्रिया आप देख रहे हैं के लिए metacode

public TreeNode<City> search(City parent, TreeNode<City> t){
    if (t.getCity().equals(parent)) {
        return t;
    }

    if (t.hasLeftChild()) {
        if (tmp = search(parent,t.getLeftChild())) {
            return tmp;            
        }
    }

    if (t.hasnextSibling()) {
        if (tmp = search(parent,t.getnextSibling())) {
            return tmp;            
        }
    }

    return false;
}
25/05/2011 को 15:15
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more