struct Ternary {
char current;
bool wordend;
Ternary* left;
Ternary* mid;
Ternary* right;
Ternary(char c='@',Ternary* l=NULL, Ternary* m=NULL, Ternary* r=NULL,bool end=false)
{
wordend=end;
current=c;
left=l;
mid=m;
right=r;
}
};
void add(Ternary* t, string s, int i) {
if (t == NULL) {
Ternary* temp = new Ternary(s[i],NULL,NULL,NULL,false);
t=temp;
}
if (s[i] < t->current) {
add(t->left,s,i);
}
else if (s[i] > t->current) {
add(t->right,s,i);
}
else
{
if (i + 1 == s.length()) {
t->wordend = true;
}
else
{
add(t->mid,s,i+1);
}
}
}
जब मैं add()
का उपयोग कर स्ट्रिंग शब्द के अनुक्रम if(t==NULL)
खंड के अंदर मुद्रित रहा है लेकिन पेड़ हो रही गठन यानी नोड्स जुड़े हुए नहीं हैं नहीं है हो रही है जोड़ें।त्रिगुट खोजें ट्री
या ऐड के रूप में तर्क (त्रिगुट ** टी, स्ट्रिंग है, आई इंट) और फिर कर * टी अस्थायी –
के बजाय अस्थायी का उपयोग कर = घोषित, मैं भी निम्नलिखित की कोशिश की कथन टी = नया टर्नरी (एस [i]); और यदि मैं पेड़ का उपयोग करता हूं = ... तो मैं पेड़ के अपने रूट नोड को खो रहा हूं – CoderXX
@ प्रैटिक: 'कोड()' के अंत में 'वापसी टी' को छोड़कर और 'जोड़' का उपयोग करके अपने कोड में कुछ भी बदले बिना जैसा कि मैंने संकेत दिया है, आप कुछ खोना नहीं करेंगे। – Mat