将二叉搜索树写入 C++ 中的文件

writing a binary search tree to file in C++

本文关键字:C++ 文件 搜索树      更新时间:2023-10-16

我创建了一个二叉搜索树,该树将文本文件输入其中,然后将其按字母顺序排列,我可以将树直接打印到控制台,但是当我尝试将其写入文本文件时,我得到的只是胡言乱语,无论如何我可以使用fprintf(fp, "%s",rootPtr->单词);?还是我应该将每个根 Ptr-> 单词放入一个数组中,然后将该数组写入文件?

正在打印的代码:

if (rootPtr == NULL)
return;
InOrder(rootPtr->left,fp);
if(rootPtr->word != "m")
fprintf(fp, "%s",rootPtr->word );
//cout << rootPtr->word << endl;
InOrder(rootPtr->right,fp);
}

胡言乱语:

d0ÈõAجAˆ_0({0 ̈^Aø@A€A0þAÐ BØA ̧z0 Û0À›0з0ÉAØ'A°i0 ƒ0Èõ0ÈAÈAØ)A ̈[AØ;A@p0ìAðãAðÓAøOA˜‰0è®0­A0B°s0°Ê0°r00™A u00ýAøßA Bàˆ0X BxrAÅAÈì0€¼0€½0¨ÊAÐÖAÈA8A0‹AØ v0@Ä0°q0°É0ˆA ÿA8ü0ÝA€ Bˆ9A Ü08WA€ø0hË0@JA8UAx€é0û0èBøÍ0YAXA¨èAÄAp˜0øCAhAA°AHØ0ðWA€æ0ˆ0ˆEAë0 ÿ0Û0°g0Èû0ˆAˆGA°Ý0º0À…AðSAâ0@0A€åA ̈ZAèjA ,A8þ0P•AðÙA ̃™0ˆQAÈí0øÞ0(zA°(A(}0P¤A ;AˆAÐA AA&A ̈3/4AÐk0ñAˆßAB(}A8AH®Aø'Aˆm0Àœ0x“A¨AXˆAxBhµA¸“0©Aµ0Èë0€å08SA¨ã0êA ¤0ˆBè¡0ðÐAÃA8¼AX³0йAÀ«00©0X§0ÐA8AøÜ00qAÀB kAÀ'AÀöAXð0ð¿0Èμ0Èï0ø³Að ÌAÈö0@b0€±0@Í0 ÐPAZA†0ð Að4A ×0AˆCAhÚ0€¶0ðA ̧"0 ̈$AAÐ&A@h08½Aó0@1Ax­0€æA°ÕA€ÜAoA€²0ÐAˆÑ0˜‹00Ÿ0éAðAðAšAðä0è‰AÀ¬0€ý0ð¾0¹0@Ì08ÎAÈü0 ̃"Ax÷A dAhf0gA lAP›AHA0‰Ah=A B@ÕAÈñ0 ðîAAÐÀ0ÈiAƒA˜0h/AÀ˜AP0AøBXeAhe0 úAïAÐïAпA@j0OAà–0AØ=Aèª0o0˜~0@Ç08ÌAøÔ0FA8MAðºAÐBAðáAp¡AKAàœAŸA ̃tA83/40è£0Èù0 ̈AXôAèeAð]A ̃sAØØ0à0ÈóAÐJAxž0ð!A(–0€Aõ0ô0Èþ08ê0 fA(xAp{AèùA@IAht0PŽ08óA 0è¥0ˆHAX ̈0Ð\ABø.AˆAøb0hÞ0 0¨ê0°Õ0°:AxA Â0à—AH±A0†A€cAp~AÐ"AØd0€pA’0˜š0ˆÄAè¯00„0ÀšAà˜0Ðo0@Á0hÒ0@¹A€bA(|AXmAÈA8AÈ°0Aøl0Ðà0°¶A8aA?APvA·0è0@a0èBX¦0'0 +AØ>Aè©0x0à}0x€00ƒ0pªA6A ’0°Å0Ø«Aˆ·AðÒA(£A¨ÍA8 A¨ëA8!AðÑA8RA¸}A@³AA8VAï0 Ó0xøAðÎA€÷0á0Hx0ˆOAÔAP˜A0B8çAháA˜wA(žAˆ08 AàvAðÏAÐ1A8AðAˆÉAp•0Ø×0Œ0h´A€0x’AH*AÐÝA8jAh)AX°0à AH¦AðäAPœA¨A¨NAÀƒAð¶0ÀüA¸§AˆÂA€A8ù0@ÇAÙ08NAØw0ˆÆA8ö0دAüA8îAÐÁA7AÐFA ̈5A4Aˆ_Aè†AÀ€Aç0P›0¨3AèqAA‚A@ÖAÈÚAðØA˜uA…A%A@È0@:AȦ0 Ö0ˆ'Aè÷A00À0 0ˆÏ0€ÿ0Â0_A°Á0ð BˆB°<AÐ8AAà£AðAXAðæ0hc00Œ AxB@i0èB øp0ŽAˆl0Ø0 ŒAøÈ0ðÜAÐÞAAðAØu0 ‡A@BP–AÈgAøÄ0Xñ0àzA ¢0°àApyA ̈ AÐÔAøÑ0p|0 ̈#A ̧—0iA0¥0h@A8ãA Ø ̈Ah-A(—A2AàŒ0ÐÀA…0A0ùAX A€ BÐÐ0@.阿埃u000bAè 0AÈÛAÈu000bB ŽA ̄Ax'0XõAHv0ËAXnAhÆ0àŠ0ðº0@BÐDA€è0@Ã0xŠAXò0ÐêA€òAÐÅAh‘0¨LA¨¸0ðìA@¸A «Ap¢AXAøÓ0ˆÎ0ðçAÀ†0 ¶AÈoAðaA"A°BèþA ̈1/2A'¿A

我通过简单地添加.c_str()添加我的单词结尾来修复它:

fprintf(fp, "%sn",rootPtr->word.c_str());