[Powered by Google Translate] [பகுதி 7] [குறைவான வசதியான]
[நேட் Hardison] [ஹார்வர்ட் பல்கலைக்கழகம்]
[இந்த CS50 உள்ளது.] [CS50.TV]
>> பகுதி 7 வரவேற்கிறது.
, சூறாவளி சாண்டி நன்றி
அதற்கு பதிலாக, இந்த வாரம் ஒரு சாதாரண பிரிவில் இருந்து,
நாங்கள் கேள்விகள் பிரிவு மூலம், தேர்வு மூலம் இந்த செய்கிறீர்கள்.
நான், 6 குறிப்பு அமை பிரச்சினை இணைந்து தொடர்ந்து இருக்க போகிறேன்
மற்றும் எல்லா கேள்விகளுக்கும் நடக்கிறது
கேள்விகள் பிரிவின் ஒரு பகுதி.
எந்த கேள்விகள் இருந்தால்,
CS50 Discuss இந்த பதிவு செய்யவும்.
>> அது சரி. அது துவங்கட்டும்.
இப்போது நான் பிரச்சினை அமை குறிப்பு ஒரு பக்கம் 3 பார்த்துக்கொண்டிருக்கிறேன்.
நாம் முதலில் பைனரி மரங்கள் பற்றி தொடங்க போகிறீர்கள்
அந்த இந்த வாரம் சிக்கல் ஜோடி தொடர்பு நிறைய இருந்து -
ஹஃப்மேன் மரம் குறியாக்க.
நாம் CS50 மீது பேசினார் முதல் தரவு கட்டமைப்புகள் ஒரு வரிசை இருந்தது.
ஒரு வரிசைக்கு தனிமங்களின் வரிசை என்று ஞாபகம் -
அதே வகை அனைத்து - நினைவகத்தில் சரி ஒருவருக்கொருவர் அடுத்த சேமிக்கப்படும்.
நான் இந்த பெட்டிகள், எண்கள், முழு எண்கள் பாணியில் பயன்படுத்தி வரைய முடியும் என்று ஒரு முழு எண் வரிசை இருந்தால் -
நாம் நான் முதல் பெட்டியில் 5 சொல்ல, நான், இரண்டாவது 7 வேண்டும்
நான் இறுதி பெட்டியில் 8, 10, மற்றும் 20 இருக்கிறது.
இந்த வரிசை பற்றி நினைவில், இரண்டு நல்ல விஷயங்கள்
நாங்கள் எந்த குறிப்பிட்ட உறுப்பு இந்த நிலையான நேர இணைப்பு இல்லை
வரிசையில் நாம் அதன் குறியீட்டு தெரிந்தால்.
உதாரணமாக, நான் வரிசையில் மூன்றாவது உறுப்பு அடைய விரும்பினால் -
குறியீட்டு 2 எங்கள் பூஜ்யம் சார்ந்த அட்டவணையிடுதல் கணினியை பயன்படுத்தி -
நான் மொழியில் மட்டும், ஒரு எளிய கணித கணக்கீடு செய்ய வேண்டும்
, வரிசையில் அந்த நிலைக்கு ஹாப்
அங்கு சேமிக்கப்படும் என்று 8, வெளியே இழுக்க
நான் போய் நல்ல இருக்கிறேன்.
>> இந்த வரிசை பற்றி தவறாக ஒன்று - நாங்கள் பேசினார் என்று
நாம் இணைக்கப்பட்ட பட்டியல்கள் விவாதிக்கப்படும் போது -
நான் இந்த வரிசையில் ஒரு உறுப்பு சேர்க்க வேண்டும் என்று, தான்
நான் சில சுற்றி மாற்றுவதால் செய்ய வேண்டும் போகிறேன்.
இங்கே எடுத்துக்காட்டாக, இந்த வரிசை
வரிசைப்படுத்தப்பட்ட வரிசையில் உள்ளது - இன் படி ஏறுவரிசையில் வரிசைப்படுத்தப்பட்டுள்ளது -
5, பின்னர் அந்த 7, 8, 10, மற்றும் 20 -
ஆனால் நான் இந்த வரிசையில் இந்த எண் 9 சேர்க்க விரும்பினால்,
நான் இடத்தை அடைவதற்காக உறுப்புகள் சில மாற்ற வேண்டும் போகிறேன்.
நாம் இங்கே இந்த வரைய முடியும்.
நான் 5, 7 நகர்த்த வேண்டும், பின்னர் 8;
, நான் 9 முடியும் ஒரு இடைவெளி உருவாக்க
பின்னர் 10 மற்றும் 20 9 வலது செல்லலாம்.
இந்த ஒரு வலி வகையான ஏனெனில் மிக மோசமான சூழ்நிலையில் -
நாம் தொடக்கத்தில் அல்லது இறுதியில் அல்லது செருக கொண்ட போது
வரிசைக்கு, எப்படி பொறுத்து நாம் மாற்றுவதால் -
நாம் கூறுகள் அனைத்தையும் மாற்ற கொண்ட கூடும்
நாம் தற்போது வரிசையில் சேமித்து என்று.
>> எனவே, இந்த சுற்றி வழி என்ன?
இந்த சுற்றி வழி எங்கே எங்கள் இணைக்கப்பட்ட பட்டியலில் முறை சென்று இருந்தது -
அதற்கு பதிலாக கூறுகள் 5, 7, 8, 10, மற்றும் நினைவகத்தில் ஒருவருக்கொருவர் அடுத்த 20 அனைத்து சேமிக்கும் -
நாம் பதிலாக நாம் சேமிக்க வேண்டும் எங்கிருந்தாலும் அவர்களை வகையான சேமிக்க என்ன
இந்த இணைக்கப்பட்ட பட்டியலில் புள்ளிகளில் இது நான், இங்கே தற்காலிக வகையான வெளியே இழுத்து.
மற்றும் நாம் இந்த அடுத்த சுட்டிகள் பயன்படுத்தி அவர்களை ஒன்றாக இணைக்கப்பட்டுள்ளது.
நான், 5 முதல் 7 மணி வரை ஒரு சுட்டிக்காட்டி முடியும்
7 இருந்து 8 ஒரு சுட்டிக்காட்டி,
8 முதல் 10 வரை சுட்டிக்காட்டி,
இறுதியாக, 10 முதல் 20 ஒரு சுட்டிக்காட்டி,
பின்னர் 20 மணிக்கு பூஜ்ய சுட்டிக்காட்டி இடது ஒன்றுமில்லை என்று சுட்டிக்காட்டியது.
நாம் இங்கே வேண்டும் என்று வர்த்தக பரிமாற்றம்
நாம் வரிசைப்படுத்தப்பட்ட பட்டியலில் எண் 9 சேர்க்க வேண்டும் என்று, இப்போது
நாம் செய்ய வேண்டியதெல்லாம், 9 புதிய கணு உருவாக்க உள்ளது
, பொருத்தமான இடத்தில் சுட்டிக்காட்ட அது கம்பி
பின்னர் மீண்டும் கம்பி 8 9 கீழே சுட்டிக்காட்ட.
என்று நாம் 9 செருக வேண்டுமோ அந்த இடத்தில் நாம் சரியாக தெரியும் அனுமானித்து, மிகவும் சீக்கிரமாக தான்.
ஆனால் இந்த பங்கு வர்த்தக பரிமாற்றத்தை நாம் இப்போது மாறா நேரம் அணுகல் இழந்துவிட்டேன் என்று
எங்கள் தரவு கட்டமைப்பில் எந்த குறிப்பிட்ட உறுப்பு வேண்டும்.
உதாரணமாக, நான் இந்த இணைக்கப்பட்ட பட்டியலில் நான்காவது உறுப்பு கண்டறிய வேண்டும் என்றால்,
நான் பட்டியல் மிக ஆரம்பத்தில் தொடங்க வேண்டும் போகிறேன்
நான் நான்காவது ஒரு கண்டறிய வரை மற்றும் முனை மூலம் கணு எண்ணி மூலம் என் வேலை.
>> ஒரு இணைக்கப்பட்ட பட்டியலில் விட அணுகல் செயல்திறன் பெறுவதற்காக -
ஆனால் நாம் அந்த நன்மைகள் சில தக்கவைத்து
ஒரு இணைக்கப்பட்ட பட்டியலில் இருந்து செருகும் நேர அடிப்படையில் -
ஒரு பைனரி மரம் ஒரு சிறிய மேலும் நினைவக பயன்படுத்த வேண்டும் போகிறது.
குறிப்பாக, அதற்கு பதிலாக ஒரு பைனரி மரம் முனை ஒரு சுட்டிக்காட்டி கொண்டிருக்கும் -
இணைக்கப்பட்ட பட்டியலில் போன்ற முனை இல்லை -
நாம் பைனரி மரம் முனை இரண்டாவது சுட்டிக்காட்டி சேர்க்க போகிறோம்.
மாறாக தான், அடுத்த உறுப்பு ஒரு சுட்டிக்காட்டி கொண்டிருக்கும்
நாம் ஒரு இடது குழந்தை மற்றும் ஒரு சரியான குழந்தை ஒரு சுட்டிக்காட்டி போகிறது.
>> இது உண்மையில் தெரிகிறது என்று பார்க்க ஒரு படம் வரைய வேண்டும்.
மீண்டும், நான் இந்த பெட்டிகள் மற்றும் அம்புகள் பயன்படுத்த போகிறேன்.
ஒரு பைனரி மரம் முனை ஒரு எளிய பெட்டியில் தொடங்குகின்றன.
இது, மதிப்பு ஒரு இடைவெளி வேண்டும் நடக்கிறது
பின்னர் இது இடது குழந்தை மற்றும் வலது குழந்தை ஒரு இடைவெளி வேண்டும் நடக்கிறது.
நான் இங்கே லேபிள் போகிறேன்.
நாம் இடது குழந்தை பெற போகிறோம், மற்றும் நாம் சரியான குழந்தை போகிறது.
இதை பல வழிகள் உள்ளன.
சில நேரங்களில் விண்வெளி மற்றும் வசதிக்காக,
நான் கீழே இங்கே எடுப்பது போல் நான் உண்மையில் அதை வரைய வேண்டும்
நான் மேலே மதிப்பு போகிறேன் எங்கே,
பின்னர் கீழ் வலது வலது குழந்தை,
கீழே இடது மற்றும் இடது குழந்தை.
இந்த உயர்மட்ட வரைபடம் செல்கிறேன்,
நாம், மிக உயர்ந்த மதிப்பு
நாம் இடது குழந்தை சுட்டிக்காட்டி வேண்டும், மற்றும் நாம் வலது குழந்தை சுட்டிக்காட்டி இருக்கிறது.
>> சிக்கல் அமை குறிப்பு இல்,
நாம், ஒரு மதிப்பு 7 என்று ஒரு முனை வரையும் பற்றி பேச
பின்னர் பூஜ்ய என்று ஒரு இடது குழந்தை சுட்டிக்காட்டி, ஒரு வலதுசாரி குழந்தை சுட்டிக்காட்டி பூஜ்ய என்று.
நாம் ஒன்று இடைவெளி மூலதனம் NULL எழுதலாம்
இடது குழந்தை மற்றும் வலது குழந்தை, அல்லது நாங்கள் இருவரும் இந்த குறுக்கு சாய்வு வரைய முடியும்
பெட்டிகள் ஒவ்வொரு மூலம் அது வெற்று என்று குறிக்க.
நான் அந்த எளிமையான விஷயம் தான் அதை செய்ய போகிறேன்.
ஒரு மிக எளிய பைனரி மரம் முனை வரைபட இரண்டு வழிகளில் இங்கு என்ன பார்க்க வேண்டும்
நாம் மதிப்பு 7 மற்றும் பூஜ்ய குழந்தை சுட்டிகள் எங்கே.
>> எப்படி இணைக்கப்பட்ட பட்டியலில் சுமார் எங்கள் விவரக்குறிப்பு பேச்சு இரண்டாம் பகுதி -
நினைவி, நாம் மட்டுமே பட்டியலில் முதல் உறுப்பு மீது நடத்த வேண்டும்
முழு பட்டியலை நினைவில் -
மற்றும் இதேபோல், ஒரு பைனரி மரம் கொண்டு, நாம் மட்டும் மரம் ஒரு சுட்டிக்காட்டி மீது நடத்த வேண்டும்
முழு தரவு அமைப்பு மீதான கட்டுப்பாட்டை தக்க வைத்து கொள்ள.
மரம் இந்த சிறப்பு உறுப்பு மரத்தின் வேர் கணு அழைக்கப்படுகிறது.
உதாரணமாக, இந்த ஒரு முனை - மதிப்பு 7 கொண்ட இந்த கணு
- பூஜ்ய இடது மற்றும் வலது குழந்தை சுட்டிகள் கொண்ட
, நம் மரம் மட்டுமே மதிப்பு இருந்தது
இந்த நம் வேர் கணு வேண்டும்.
அது நம் மரத்தின் ஆரம்பத்தில் தான்.
நாம் மரம் இன்னும் முனைகளில் சேர்க்க முறை நாம் இன்னும் தெளிவாக இந்த ஒரு சிறிய பார்க்க முடியும்.
எனக்கு ஒரு புதிய பக்கம் மேலே நாம்.
>> இப்போது நாம், ரூட் 7 என்று ஒரு மரம் பெற போகிறோம்
மற்றும் இடது குழந்தை, மற்றும் சரியான குழந்தை 9 உள்ளே 3 உள்ளே.
மீண்டும், இந்த அழகான எளிது.
நாம் 7 கிடைத்துவிட்டது, 3 ஒரு முனை, 9 ஒரு முனை, வரைய
மற்றும் நான், 3 கொண்ட முனை சுட்டிக்காட்ட 7 இடது குழந்தை சுட்டிக்காட்டி அமைக்க போகிறேன்
மற்றும் 9 கொண்ட முனை 7 கொண்ட முனையத்தின் வலது குழந்தை சுட்டிக்காட்டி.
இப்போது, 3 முதல் 9, எந்த குழந்தைகள் இல்லை
நாம் பூஜ்ய இருக்கும் தங்கள் குழந்தை சுட்டிகள் அனைத்து அமைக்க போகிறீர்கள்.
இங்கே, நம் மரத்தின் வேர் எண் 7 கொண்ட முனை ஒத்துள்ளது.
நாம் அனைவரும் அந்த வேர் கணு ஒரு சுட்டிக்காட்டி நீங்கள், அந்த பார்க்கலாம்
நாம் நமது மரம் வழியாக நடக்க மற்றும் குழந்தை முனைகள் இரண்டு அணுக முடியும் -
3 மற்றும் 9 ஆகிய இரண்டு.
எந்த மரத்தில் ஒவ்வொரு கணு சுட்டிகளையும் பராமரிக்க வேண்டும்.
அது சரி. இப்போது நாம் இந்த வரைபடம் மற்றொரு முனை சேர்க்க போகிறோம்.
நாம், 6 கொண்ட ஒரு முனை சேர்க்க போகிறோம்
நாங்கள் 3 கொண்ட முனை வலது குழந்தை இந்த சேர்க்க போகிறோம்.
அதை செய்ய, நான் 3-முனை என்று பூஜ்ய சுட்டிக்காட்டி அழிக்க போகிறேன்
மற்றும் 6 கொண்ட முனை சுட்டிக்காட்ட அது கம்பி. அது சரி.
>> இந்த கட்டத்தில், இன் சொல் சிறிது மீது செல்லலாம்.
, இந்த குறிப்பிட்ட ஒரு பைனரி மரம் என்று காரணம் தொடங்க
இரண்டு குழந்தை சுட்டிகள் இருக்கிறது.
மேலும் குழந்தை சுட்டிகள் என்று மரங்கள் மற்ற வகையான உள்ளன.
குறிப்பாக, நீங்கள் ஒரு பிரச்சினை அமை 5 ல் 'முயற்சி' என்று.
நீங்கள் முயற்சித்து என்று கவனிக்க வேண்டும், நீங்கள் வேறு குழந்தைகளுக்கு 27 வெவ்வேறு சுட்டிகள் இருந்தது -
ஆங்கிலம் எழுத்துக்களில் 26 எழுத்துக்கள் ஒவ்வொன்றும் ஒரு,
பின்னர் மேற்கோளைச் க்கு 27 -
எனவே, அந்த மரத்தில் ஒரு வகை போல தான்.
ஆனால் இங்கே, அது பைனரி இருந்து, நாம் மட்டும் இரண்டு குழந்தை சுட்டிகள் வேண்டும்.
>> நாம் பற்றி பேசினார் என்று இந்த வேர் கணு கூடுதலாக,
நாம் இந்த கால சுற்றி எறிந்து 'குழந்தை.'
ஒரு முனை மற்றொரு முனை ஒரு குழந்தை இருக்கிறது அது என்ன அர்த்தம்?
அது உண்மையில் ஒரு குழந்தை முனை மற்றொரு முனை ஒரு குழந்தை என்று தான் அர்த்தம்
மற்ற முனை என்று முனை சுட்டிக்காட்ட அமைக்க அதன் குழந்தை சுட்டிகள் ஒன்று இருந்தால்.
இந்த, இன்னும் உறுதியான விதிமுறைகளை கொண்டு வைக்க
3 7 குழந்தை சுட்டிகள் ஒருவர் சுட்டிக்காட்டினார் என்றால், பிறகு 3 7 ஒரு குழந்தை உள்ளது.
- நாங்கள் 7 குழந்தைகள் என்ன கண்டுபிடிக்க இருந்தால்
நன்றாக, நாம், 7 3 ஒரு சுட்டிக்காட்டி மற்றும் 9 ஒரு சுட்டிக்காட்டி உள்ளது என்று பார்க்க
அதனால் 9 மற்றும் 3 7 குழந்தைகள்.
ஒன்பது அதன் குழந்தை சுட்டிகள் பூஜ்ய ஏனெனில் குழந்தைகள் உள்ளது,
மற்றும் 3 ஒரே ஒரு குழந்தை, 6 கொண்டுள்ளது.
அதன் சுட்டிகள் இருவரும் நாம் இப்போது வரைய வேண்டும் என்ற வெற்று, ஏனெனில் ஆறு கூட இல்லை குழந்தைகள் உள்ளன.
>> மேலும், நாம், ஒரு குறிப்பிட்ட முனை பெற்றோர் பற்றி பேச
நீங்கள் எதிர்பார்க்க அப்படியே இந்த, இந்த குழந்தை விளக்கம் தலைகீழ் ஆகும்.
அதற்கு பதிலாக இரண்டு மனிதர்களின் உடன் எதிர்பார்க்க முடியும் என - ஒவ்வொரு முனையும் ஒரு பெற்றோர் உள்ளது.
உதாரணமாக, 3 பெற்றோர் 7.
9 பெற்றோர் மேலும் 7 மற்றும் 6 பெற்றோர் 3. அது ஒன்றும் இல்லை.
நாங்கள், தாத்தா, பாட்டி மற்றும் பேரப்பிள்ளைகள் பற்றி பேச வார்த்தைகள் இல்லை
மேலும் பொதுவாக நாம் முன்னோர்கள் பற்றி பேச
ஒரு குறிப்பிட்ட முனை வம்சாவளிகள்.
ஒரு முனை என்ற மாறாக அல்லது முன்னோர்கள்,, - ஒரு முனையத்தின் மூதாதையர் -
ரூட் இருந்து அந்த முனை பாதையில் பொய் என்று முனைகளில் அனைத்தும்.
உதாரணமாக, நான் முனை 6 பார்த்துக்கொண்டிருக்கிறேன் என்றால்,
பின்னர் முன்னோர்கள் 3 மற்றும் 7 ஆகிய இரு போகிறீர்கள்.
9 முன்னோர்கள், உதாரணத்திற்கு, அவை - நான் முனை 9 பார்த்துக்கொண்டிருக்கிறேன் என்றால் -
பின்னர் 9 மூதாதையர் தான் 7.
மற்றும் மரபினர் சரியாக தலைகீழ் இருக்கும்.
நான் 7 வம்சாவளியினரை அனைத்து பார்க்க விரும்பினால்,
நான் அதை கீழே முனைகள் அனைத்து பார்க்க வேண்டும்.
எனவே, நான் 7 வம்சாவளிகள் 3, 9, மற்றும் 6 அனைத்து வேண்டும்.
>> நாம் பற்றி பேசுவேன் என்று இறுதி கால ஒரு சகோதரர் என்று இந்த கருத்து உள்ளது.
உடன்பிறப்புகளின் - இந்த குடும்ப நிபந்தனைகளை சேர்த்து தொடர்ந்து வகையான -
மரம் அதே அளவில் இருக்கும் என்று முனைகள் இருக்கும்.
அவர்கள் மரம் அதே அளவில் இருப்பதால் எனவே, 3 மற்றும் 9 உடன்பிறப்புகள் உள்ளனர்.
அவர்கள் இருவரும் அதே பெற்றோர், 7 வேண்டும்.
9 எந்த குழந்தைகள் இல்லை, ஏனெனில் 6 உடன்பிறப்புகளின் உள்ளது.
அது நம் மரத்தின் வேர் காரணம் மற்றும் 7, எந்த உடன்பிறப்புகள் இல்லை
தான் எப்போதும் 1 ரூட் உள்ளது.
7 உடன்பிறப்புகள் வேண்டும் அங்கு 7 மேலே ஒரு முனை இருக்க வேண்டும்.
இனி மரத்தின் வேர் என வழக்கு 7 7 ஒரு பெற்றோர், இருக்க வேண்டும்.
பின்னர் 7 புதிய பெற்றோர் கூட, ஒரு குழந்தை வேண்டும்
மற்றும் அந்த குழந்தை 7 உறவினருடன் வேண்டும்.
>> அது சரி. செல்லும்.
நாம் பைனரி மரங்கள் எங்கள் விவாதம் தொடங்கிய போது,
நாம் அவற்றை பயன்படுத்த போகிறோம் என்பதை பற்றி பேசினார்
கோவை மற்றும் தொடர்புடைய பட்டியல்கள் இரு மீது அனுகூலத்தையும் பெற.
மற்றும் நாம் அதை செய்ய போகிறோம் வழி இந்த ஆர்டர் சொத்து உள்ளது.
நாம், விவரக்குறிப்பு படி, ஒரு பைனரி மரம் உத்தரவிட்டார் என்று கூற
எங்கள் மரம் ஒவ்வொரு முனையின் என்றால், இடது அதன் சந்ததிகள் அனைத்து -
இடது குழந்தை மற்றும் இடது குழந்தையின் சந்ததிகள் அனைத்து -
குறைந்த மதிப்புகள், மற்றும் வலது முனைகளில் அனைத்து வேண்டும் -
வலது குழந்தை மற்றும் வலது குழந்தையின் சந்ததிகள் அனைத்து -
நாம் பார்த்து வருகிறோம் என்று தற்போதைய முனை மதிப்பை விட முனைகளில் வேண்டும்.
ஒரு எளிமை வேண்டும், நாம் நமது மரம் எந்த பிரதி முனைகளில் இல்லை என்று கருதி போகிறோம்.
எடுத்துக்காட்டாக, இந்த மரத்தில் நாங்கள் வழக்கு சமாளிக்க போவதில்லை
நாம் வேரில் மதிப்பு 7 எங்கே
பின்னர் நாங்கள் மதிப்பு வேறு கிளையில் 7 வேண்டும்.
இந்த வழக்கில், நீங்கள் இந்த மரம் உண்மையில் உத்தரவிட்டார் என்று கவனிக்க வேண்டும்.
நாம் வேரில் மதிப்பு 7 வேண்டும்.
7 இடது எல்லாம் -
நான் இங்கே இந்த சிறிய மதிப்பெண்கள் அனைத்து மீளமை என்றால் -
7 இடது எல்லாம் - 3 மற்றும் 6 -
அந்த மதிப்புகளை இரண்டு 7 விட குறைவாக, மற்றும் உரிமை அனைத்தையும் - இந்த 9 என்பது -
7 அதிகமாக இருக்கும்.
>> இந்த மதிப்புகள் கொண்ட மட்டும் உத்தரவிட்டார் மரம் அல்ல,
ஆனால் அவர்களுக்கு ஒரு சில வரைய வேண்டும்.
நாம் இதை செய்ய முடியும் என்று பல வழிகளில் மொத்தமாக உண்மையில் உள்ளது.
நான் எங்கே விஷயங்களை எளிமையாக வைத்து ஒரு சுருக்கெழுத்து பயன்படுத்த போகிறேன் -
மாறாக பெட்டிகள் மற்றும் அம்புகள் முழுவதும் வெளியே இழுத்து விட -
நான் எண்களை வரைந்து அவற்றை இணைக்கும் அம்புகள் சேர்க்க போகிறேன்.
, ஒரு 3 பின், தொடங்க நாங்கள் 7 எங்கே நாம் மீண்டும் எமது உண்மையான மரம் எழுத வேண்டும், மற்றும்
பின்னர் 3, 6 உரிமை மீண்டும் சுட்டிக்காட்டினார்
மற்றும் 7 9 என்று ஒரு சரியான குழந்தை இருந்தது.
அது சரி. இந்த மரம் எழுத முடியும் என்று மற்றொரு வழி என்ன?
3 கொண்டு, 7 இடது குழந்தை பதிலாக
நாங்கள் 6, 7 இடது குழந்தை முடியும்
பின்னர் 3 6 இடது குழந்தை.
நான் 7 கிடைத்தது அந்த இங்கே, இந்த மரம் போன்று இருக்கும்
பின்னர் 6, 3, மற்றும் சரியான ஒரு 9.
நாம் நம் வேர் கணு 7 வேண்டும் இல்லை.
நாம் நம் வேர் கணு போன்ற 6 முடியும்.
என்ன இருக்க முடியும் என்று?
இந்த உத்தரவு சொத்து பராமரிக்க போகிறீர்கள் என்றால்,
6 இடது எல்லாம் அதை விட குறைவாக இருக்க வேண்டும்.
அங்கு ஒரே ஒரு வாய்ப்பு, அதாவது 3 உள்ளது.
ஆனால் பின்னர் 6 உரிமை குழந்தை, நாம் இரண்டு சாத்தியக்கூறுகள் உள்ளன.
முதல், நாம், 9 பின்னர் 7 மற்றும் முடியும்
அல்லது நாம் அதை பெற முடியும் - நான் இங்கே செய்ய உள்ளேன் போல் -
நாங்கள் 6 உரிமை குழந்தை 9 எங்கே,
பின்னர் 9 இடது குழந்தை 7.
>> இப்போது, 7 மற்றும் 6 ரூட் மட்டுமே சாத்தியம் மதிப்புகள் இல்லை.
நாங்கள் 3 ரூட் இருக்க முடியும்.
3 ரூட் உள்ளது என்றால் என்ன நடக்கும்?
இங்கே, சிறிது சுவாரசியமான கிடைக்கும்.
மூன்று, அதை விட குறைவாக எந்த மதிப்புகள் இல்லை
அதனால் மரத்தின் முழு இடது பக்க வெறும் வெற்று போகிறது.
அங்கு எதுவும் இருக்க போவதில்லை.
சரி, நாம் ஏறுவரிசையில் விஷயங்களை பட்டியலிட முடியும்.
நாம் பின்னர் 3, பின்னர் 6, 7, 9 முடியும்.
அல்லது, நாம் 7, பின், பிறகு, 9 6 3 செய்ய.
அல்லது, நாம் 9, பின், பிறகு, 6 ​​7 3 செய்ய.
அல்லது, 3, 7 - உண்மையில் இல்லை, நாம் இனி ஒரு 7 செய்ய முடியாது.
அங்கு நம் ஒரு விஷயம்.
நாம் 9 செய்ய முடியும், அதன் பிறகு 9 இருந்து நாம் 7 பிறகு 6 செய்ய முடியும்.
அல்லது, நாம், பின், 7, 9 3 செய்ய, பின்னர் 6 முடியும்.
>> இங்கே உங்கள் கவனத்திற்கு ஒரு விஷயம்
இந்த மரங்கள் சற்றே காணப்படும் என்று.
குறிப்பாக, நாம் வலது புறத்தில் 4 மரங்கள் பாருங்கள் -
நான் இங்கே, அவர்கள் வட்டமிட்டு வேண்டும் -
இந்த மரங்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் போன்ற கிட்டத்தட்ட சரியாக இருக்கும்.
ஒவ்வொரு முனையும், ஒரே ஒரு குழந்தை உள்ளது
அதனால் நாம், உதாரணமாக, நாம் பார்க்க இந்த மரம் போன்ற அமைப்பு எந்த இல்லை
கீழே இடது இங்கு இந்த ஒரு தனி மரம்.
இந்த மரங்கள் உண்மையில், பைனரி மரங்கள் சிதைந்த அழைக்கப்படுகின்றன
நாம் எதிர்காலத்தில் இந்த அதிக பற்றி பேசுவோம் -
நீங்கள் மற்ற கணினி அறிவியல் படிப்புகள் எடுத்து சென்று குறிப்பாக.
இந்த மரங்கள் சிதைந்த இருக்கும்.
உண்மையில், இந்த அமைப்பு தன்னை வழங்கியிருக்கிறது ஏனெனில் அவர்கள் மிகவும் பயனுள்ளதாக இருக்கும்
ஒரு இணைக்கப்பட்ட பட்டியலில் ஒத்த முறை தேடல் வேண்டும்.
நாம் கூடுதல் நினைவகத்தை பயன்படுத்தி கொள்ள கூடாது - இந்த கூடுதல் சுட்டிக்காட்டி -
ஏனெனில் எங்கள் அமைப்பு இந்த வழியில் மோசமான இருப்பது.
போ மற்றும் ரூட் உள்ள 9 என்று பைனரி மரங்கள் வெளியே இழுத்து விட,
நாம் என்று இறுதி நிகழ்வில், அது
நாம் இந்த மற்ற கால பற்றி கொஞ்சம் பேச போகிறேன், இந்த கட்டத்தில், அதற்கு பதிலாக தான்
உயரம் அழைக்கப்படும் மரங்கள், பற்றி பேசும் போது நாம் பயன்படுத்தும்.
>> ஒரு மரத்தின் உயரம், ரூட் இருந்து மிகவும் தொலைவில் உள்ள முனை தூரத்தில் இல்லை
அல்லது நீங்கள் பொருட்டு செய்ய வேண்டும் என்று ஹாப்ஸ் எண்ணிக்கை
ரூட் இருந்து ஆரம்பித்து பின்னர் மரம் மிக-தொலைதூர முனை மணிக்கு முடிவடையும்.
நாம் இங்கே வரையப்பட்ட செய்த இந்த மரங்கள் சில, பார்த்தால்
நாம், 3 மணிக்கு நாங்கள் மேல் இடது மூலையில் இந்த மரம் எடுத்து நாம் தொடங்கலாம் என்று பார்க்கலாம்
நாம் 1 ஹாப் 6 பெற, 7 பெற இரண்டாவது ஹாப், செய்ய வேண்டும்
ஒரு மூன்றாவது ஹாப் 9 பெற.
எனவே, இந்த மரத்தின் உயரம் 3.
நாம், இந்த பச்சை மூலம் கோடிட்டு மற்ற மரங்கள் அதே உடற்பயிற்சி செய்ய
நாம் இந்த மரங்கள் அனைத்தும் உயரம் உண்மையில் மேலும் 3 என்று பார்க்க.
அவர்களுக்கு சிதைந்த என்பதை ஒரு பகுதி -
அவற்றின் உயரம், முழு மரம் முனைகளுக்கிடையே எண்ணிக்கை விட ஒரு குறைந்த என்று.
நாம் மறுபுறத்தில் சிவப்பு உடன் படர்ந்துள்ளன என்று இந்த மற்ற மரம், பார்த்தால்
நாம் மிகவும் தொலைவில் இலை முனைகள் 6 மற்றும் 9 என்று பார்க்க -
குழந்தைகள் இல்லை என்று அந்த முனைகளில் இருந்து விட்டு.
எனவே, வேர் கணு இருந்து 6 அல்லது 9 அல்லது பெற வேண்டும்,
நாம், 7 பெற ஒரு ஹாப் செய்ய வேண்டும் பின்னர் 9 பெற இரண்டாவது ஹாப்
மற்றும் இதேபோல், 7 மட்டுமே இரண்டாவது ஹாப் 6 பெற.
எனவே, இங்கு இந்த மரத்தின் உயரம் மட்டுமே 2.
நீங்கள் திரும்பி சென்று நாம் முன்னரே விவாதிக்கப்பட்ட மற்ற மரங்களை எல்லாம் செய்ய முடியும்
7 மற்றும் 6 தொடங்கி,
நீங்கள் அந்த மரங்கள் அனைத்தும் உயரம் மேலும் 2 என்று கண்டுபிடிக்க வேண்டும்.
>> நாம் பற்றி பேசி கொண்டிருக்கிறேன் காரணம் பைனரி மரங்கள் உத்தரவிட்டார்
நீங்கள் அவர்களை மூலம் தேட முடியும் என்பதால் மற்றும் அவர்கள் ஏன் அமைதியாக இருக்கிறீர்கள் என்று
ஒரு வரிசைப்படுத்தப்பட்ட வரிசை தேட ஒரு ஒத்த வழி.
இந்த நாங்கள் மேம்பட்ட தேடல் நேரம் கிடைக்கும் பற்றி பேச எங்கே
எளிய இணைக்கப்பட்ட பட்டியலில் மேல்.
ஒரு இணைக்கப்பட்ட பட்டியல் - நீங்கள் ஒரு குறிப்பிட்ட உறுப்பு கண்டுபிடிக்க வேண்டும் என்றால் -
நீங்கள் சிறந்த நேர்கோட்டு தேடல் ஒருவித செய்ய இருக்கிறாய்
நீங்கள் ஒரு பட்டியல் மற்றும் ஹாப் ஒரு மூலம் ஒரு ஆரம்பத்தில் தொடங்க அங்கு -
ஒரு முனை ஒரு முனை -
நீங்கள் தேடும் என்ன வரும் வரை முழு பட்டியல் மூலம்.
, இந்த நல்ல வடிவம் சேமிக்கப்பட்டுள்ள ஒரு பைனரி மரம் இருந்தால், அதேசமயம்
நீங்கள் உண்மையில் நடக்கிறது ஒரு பைனரி தேடல் இன்னும் பெற முடியும்
நீங்கள் பிரித்து வெற்றி உள்ளூரில்
ஒவ்வொரு படியிலும் மரத்தின் பொருத்தமான பாதி மூலம் தேடல்.
அது அந்த பணிகளை எப்படி என்று பார்ப்போம்.
>> நாம் இருந்தால் - மீண்டும், நமது உண்மையான மரம் செல்கிறேன் -
நாம், வலது, நாம் இடது 3 வேண்டும், 7 மணிக்கு 9 தொடங்க
மற்றும் 3 அடியில் நாங்கள் 6 வேண்டும்.
இந்த மரத்தில் எண் 6 தேட வேண்டும் என்றால், நாம் ரூட் துவங்க விரும்புகிறோம்.
நாம், 6 கூற, தேடும் மதிப்பு ஒப்பிட்டு என்று
நாம் தற்போது 7, மணிக்கு தேடும் முனை சேமிக்கப்படும் மதிப்பு,
6 உண்மையில் குறைவாக 7, எனவே நாம் இடது நகர என்று கண்டறிய.
6 மதிப்பு 7 அதிகமாக இருந்தால், நாம் அதற்கு சென்றார்.
எங்களுக்கு தெரியும் என்பதால் - நமது உத்தரவிட்டார் பைனரி மரம் கட்டமைப்பு காரணமாக -
7 குறைவான மதிப்புகள் அனைத்து, 7 இடது சேமித்து வைக்க போகிறோம்
கூட மரம் வலது பக்க வழியாக பார்த்து கவலை தேவையில்லை.
ஒருமுறை நாங்கள் இடது செல்ல நாங்கள் 3 கொண்ட முனை இப்போது தான்
நாங்கள் 3 மற்றும் 6 ஒப்பிட்டு அங்கு நாம் மீண்டும் அதே ஒப்பீடு செய்ய முடியும்.
, 3 விட அதிகமாக இருக்கும் - நாம் தேடும் மதிப்பு - நாம் போது 6 என்று கண்டறிய
நாங்கள் 3 கொண்ட முனை வலது பக்க செல்லலாம்.
இல்லை இடது பக்க இங்கே தான், நாம் அந்த அலட்சியம் முடியும்.
ஆனால் நாம் மட்டும், நாம் மரம் தன்னை தேடும் காரணம் என்று
நாம் மரம் குழந்தைகள் என்று பார்க்கலாம்.
>> அதை, நாம் மனிதர்கள் என நம்மை செய்கிறீர்கள் என்றால் இந்த கிளையில் 6 பார்க்க கூட அழகாக எளிதாக
ஆனால் என்ன என்று ஒரு கணினி போன்ற இயந்திர இந்த செயல்முறை பின்பற்ற நாம்
உண்மையில் வழிமுறை புரிந்து கொள்ள.
இந்த கட்டத்தில், நாம் இப்போது, 6 கொண்ட ஒரு முனை பார்க்க
நாம், மதிப்பு 6 தேடுகிறீர்கள்
எனவே, உண்மையில், நாம் சரியான கணு எதுவும் காணப்படவில்லை.
நாம் கிளையில் மதிப்பு 6 கண்டு, நாம் நமது தேடலை நிறுத்த முடியும்.
இந்த கட்டத்தில், என்ன நடக்கிறது என்பதை பொறுத்து,
நாம் சொல்ல முடியும், ஆம், நாம் மதிப்பு 6 கிடைத்தது, அது எங்கள் மரம் உள்ளது.
நாம் ஏதாவது ஒரு முனை செருக அல்லது செய்ய திட்டம் என்றால் அல்லது, நாம் இந்த நேரத்தில் அதை செய்ய முடியும்.
>> எப்படி இந்த வேலை பார்க்க இன்னும் இரண்டு ஐ செய்வோம்.
நாம் முயற்சி மற்றும் மதிப்பு 10 வரை இருக்கும் என்றால் என்ன பார்க்கிறேன்.
நாம் மதிப்பு 10 பார்க்க இருந்தால், நாம் ரூட் துவங்க வேண்டும்.
நாங்கள் 10 7 விட அதிகம் என்று பார்க்க விரும்புகிறேன், எனவே சரியான செல்ல விரும்புகிறேன்.
நாம் 9 பெற மற்றும் 10 9 ஒப்பிட்டு மற்றும் 9 உண்மையில் குறைவாக 10 என்று பார்க்க விரும்புகிறேன்.
எனவே மீண்டும், நாம் சரியான செல்ல முயற்சி என்று.
ஆனால் இந்த கட்டத்தில், நாம் ஒரு வெற்று முனை இருக்கும்போது என்று கவனிக்க வேண்டும்.
ஒன்றும் இல்லை. 10 இருக்க வேண்டும், அங்கு ஒன்றுமில்லை.
மரம் இல்லை 10 உண்மையில் இல்லை என்று - நாம் தோல்வி குறித்து முடியும் இது.
இறுதியாக, நாம் கிளையில் 1 தேட முயற்சிக்கும் அங்கு வழக்கு வழியாக செல்லலாம்.
இந்த, நாங்கள் 10 வரை இருக்கும் என்றால் என்ன பதில் சொல்வது செல்லும் தவிர, அது போல
நாம் இடது செல்ல போகிறோம்.
நாம் 7 மணிக்கு தொடங்கி 1 7 குறைவாக உள்ளது என்று பார்க்க, நாம் இடது நகர்த்த.
நாங்கள் 3 பெற மற்றும் 1 3 விட குறைவாக உள்ளது என்று பார்க்க, எனவே மீண்டும் நாம் இடது செல்ல முயற்சி.
இந்த இடத்தில் நாம் ஒரு வெற்று முனை வேண்டும், எனவே மீண்டும் நாம் தோல்வி குறித்து முடியும்.
>> நீங்கள், பைனரி மரங்கள் பற்றி மேலும் அறிய வேண்டும் என்றால்
நீங்கள் செய்ய முடியாது என்று வேடிக்கையாக சிறிய பிரச்சினைகள் ஒரு மொத்தமாக உள்ளன.
நான் இந்த வரைபடங்களை ஒரு மூலம் ஒரு சித்திரம் அவுட் பயிற்சி
மேலும், பல்வேறு நடவடிக்கைகளை அனைத்து மூலம் தொடர்ந்து
இந்த சூப்பர் கைக்குள் வரும் என்பதால்
நீங்கள் ஹஃப்மேன் எழுத்துரு பிரச்சினை தொகுப்பு செய்கிறீர்கள் மட்டும் போது
ஆனால் எதிர்காலத்தில் பாடத்திட்டங்களில் -
நான் இந்த தரவு கட்டமைப்புகளை வரைந்து பிரச்சினைகள் மூலம் என்று எப்படி கற்றல்
இந்த பேனா மற்றும் காகிதம் அல்லது, இந்த வழக்கில், ஐபாட் மற்றும் ஸ்டைலஸ்.
>> எனினும் இந்த கட்டத்தில், நாங்கள் சில குறியீட்டு நடைமுறையில் செய்ய செல்ல போகிறோம்
உண்மையில் இந்த பைனரி மரங்கள் விளையாட மற்றும் பார்க்க.
நான் என் கணினியில் மீது மீண்டும் மாற்ற போகிறேன்.
அதற்கு பதிலாக CS50 ரன் அல்லது CS50 இடைவெளி பயன்படுத்தி பிரிவு, இந்த பகுதியில்,
நான் சாதனம் பயன்படுத்த போகிறேன்.
>> சிக்கல் அமை விவரக்குறிப்பு இணைந்து தொடர்ந்து,
நான், நான் பயன்பாட்டிற்கான திறக்க வேண்டும் என்று நான் பார்க்கிறேன்
என் டிராப்பாக்ஸ் கோப்புறையை சென்று, பகுதி 7 என்று ஒரு கோப்புறையை உருவாக்க
பின்னர் binary_tree.c என்று ஒரு கோப்பு உருவாக்க.
இங்கே நாம். நான் பயன்பாடு முன்பே திறந்த கிடைத்துவிட்டது.
நான் ஒரு முனை மேலே செல்கிறேன்.
நான் டிராப்பாக்ஸ் கோப்புறையை போக போகிறேன், section7 என்று ஒரு அடைவு வைக்க,
இது முற்றிலும் காலியாக தான் பார்க்க.
இப்போது நான் binary_tree.c திறக்க போகிறேன்.
அது சரி. இங்கே நாம் - காலியாக கோப்பு.
>> இந்த விவரக்குறிப்பு திரும்பி செல்லலாம்.
விவரக்குறிப்பு ஒரு புதிய வகை வரையறை உருவாக்க கேட்கும்
int மதிப்புகள் கொண்ட பைனரி மரம் முனைக்கு -
நாங்கள் எங்கள் முன் வரைபட வெளியே வந்தது என்று மதிப்புகள் போன்ற.
நாம் இங்கேயே செய்த இந்த பாய்லர் typedef பயன்படுத்த போகிறோம்
நீங்கள் பிரச்சனை அமை 5 இருந்து அங்கீகரிக்க வேண்டும் என்று -
நீங்கள் வெல்ல speller திட்டத்தின் ஹாஷ் அட்டவணை வழி செய்தால்.
நீங்கள் கடந்த வாரம் பிரிவில் இருந்து அதை அங்கீகரிக்க வேண்டும்
நாம் இணைக்கப்பட்ட பட்டியல்கள் பற்றி பேசினர்.
நாம், ஒரு struct முனையும் இந்த typedef கிடைத்துவிட்டது
நாம் இந்த struct முனை முன்பு struct முனையும் இந்த பெயர் கொடுத்துள்ளேன்
நாம் struct முனை சுட்டிகள் வேண்டும் நான் இருந்து நாம் அதை பார்க்கவும் முடியும்
எங்கள் struct பகுதியாக, ஆனால் நாம் இந்த படர்ந்துள்ளன நான் -
அல்லது மாறாக, இந்த இணைக்கப்பட்டுள்ளது - ஒரு typedef உள்ள
அதனால், பின்னர் குறியீடு, நாம் அதற்கு பதிலாக ஒரு struct முனை மட்டும் ஒரு முனையில் இந்த struct பார்க்கவும் முடியாது.
>> இந்த நாங்கள் கடந்த வாரம் பார்த்தேன் என்று தனித்தனி தொடர்புடைய பட்டியல் வரையறை மிகவும் ஒத்த போகிறது.
இதை செய்ய, அது வெறும் பாய்லர் அவுட் எழுதி ஆரம்பிப்போம்.
நாம், நாம் ஒரு முழு எண் மதிப்பை வேண்டும் என்று
நாம் எண்ணாக மதிப்பு வைத்து, பின்னர் அதற்கு பதிலாக அடுத்த உறுப்பு ஒரே ஒரு சுட்டிக்காட்டி கொண்டிருக்கும் நான் -
நாம் தனித்தனி தொடர்புடைய பட்டியல்கள் செய்ததை போல -
நாம் இடது மற்றும் வலது குழந்தை சுட்டிகள் போகிறது.
அதுவும் அழகான எளிது - struct முனை * இடது குழந்தை;
மற்றும் struct முனை * வலது குழந்தை;. Cool.
ஒரு நல்ல தொடக்கத்தை தெரிகிறது.
இந்த விவரக்குறிப்பு திரும்பி செல்லலாம்.
>> இப்போது நாம் ஒரு மரத்தின் வேர் ஒரு உலக முனை * மாறி அறிவிக்க வேண்டும்.
நாம் கூட உலக எங்கள் இணைக்கப்பட்ட பட்டியலில் முதல் சுட்டிக்காட்டி செய்து போல் இந்த உலக போகிறாய்.
இந்த அதனால் தான் நாம் எழுத என்று செயல்பாடுகள்
நாம் இந்த ரூட் சுற்றி செல்லும் வைக்க இல்லை -
நாங்கள், நீங்கள் செய்தால் மீண்டும் மீண்டும் இந்த செயல்பாடுகளை எழுத வேண்டும் என்று நான் பார்க்கிறேன் என்று
அது முதல் இடத்தில் கூட ஒரு உலகளாவிய அதை சுற்றி கடக்க முடியாது நல்லது இருக்கலாம்
அதற்கு பதிலாக உங்கள் முக்கிய இடத்தில் அதை துவக்க.
ஆனால், நாம் தொடங்க உலகளவில் அதை செய்கிறேன்.
மீண்டும், நாம் இடைவெளிகளை ஒரு ஜோடி தருகிறேன், நான் ஒரு முனை * ரூட் அறிவிக்க போகிறேன்.
இப்போது நான் இந்த uninitialized விட்டு இல்லை என்று உறுதி செய்ய, நான் பூஜ்ய சமமாக அமைக்க போகிறேன்.
இப்போது, முக்கிய செயல்பாடு - நாம் இங்கு மிகவும் விரைவாக எழுத வேண்டும் என்பது -
int முக்கிய (int argc, கான்ஸ்ட் எரிப்பதை * argv []) -
மற்றும் நான் நான் என்று கான்ஸ்ட் என் argv வரிசை அறிவித்தார் தொடங்க போகிறேன்
அந்த வாதங்களை நான் ஒருவேளை மாற்ற வேண்டாம் என்று வாதங்கள் என்று.
நான் அவர்களை மாற்ற வேண்டும் என்றால் நான் அவர்களை பிரதிகளை உருவாக்கும்.
இந்த குறியீடு நிறைய காணலாம்.
அது சரி அல்லது வழி. நீங்கள் விரும்பினால் கான்ஸ்ட் மாட்டா - அது அதை விட்டு நல்லது.
நான் பொதுவாக நான் நினைவூட்ட என்று தான் போட்டது
நான் அநேகமாக அந்த வாதங்கள் மாற்ற விரும்பவில்லை என்று.
>> எப்போதும் போல், நான் முக்கிய இறுதியில் இந்த பதிலுக்கு 0 வரி ஆகியவை அடங்கும் போகிறேன்.
இங்கே, நான் என் வேர் கணு துவக்க வேண்டும்.
அது இப்போது உள்ளது போல, நான், பூஜ்ய அமைக்க என்று ஒரு சுட்டிக்காட்டி கிடைத்துவிட்டது
அது எதுவும் சுட்டி காட்டும்.
வரிசையில் உண்மையில், கணு கட்டி தொடங்க
நான் முதலில் நினைவகம் ஒதுக்க வேண்டும்.
நான் malloc பயன்படுத்தி குவியல் மீது நினைவகம் மூலம் அதை செய்ய போகிறேன்.
நான், malloc விளைவு சமமாக ரூட் அமைக்க போகிறேன்
நான் ஒரு முனை அளவு கணக்கிட sizeof ஆபரேட்டர் பயன்படுத்த போகிறேன்.
பதிலாக நான் sizeof முனை பயன்படுத்த காரணம், என்று
malloc (4 + 4 +4) அல்லது malloc 12 - இப்படி ஏதோ செய்து -
நான் என் குறியீடு கூடுமானவரை உடையதாக இருக்க வேண்டும், ஏனெனில் இது.
நான் இந்த. கேட்ச் கோப்பு எடுக்க முடியும் வேண்டும், சாதனம் அதை தொகுக்க
பின்னர் என் 64 பிட் மேக் இது தொகுத்தல் -
அல்லது முற்றிலும் வேறுபட்ட கட்டமைப்பு மீது -
நான் இந்த அனைத்து அதே வேலை செய்ய வேண்டும்.
>> நான் மாறிகள் அளவு பற்றி ஊகங்கள் செய்கிறேன் என்றால் -
ஒரு முழு எண்ணாக அல்லது ஒரு சுட்டிக்காட்டி அளவு அளவு -
நான் கூட கட்டமைப்புகள் வகையான அனுமானங்கள் செய்கிறேன்
ரன் போது எனது குறியீடு வெற்றிகரமாக தொகுத்தல் முடியாது.
கைமுறையாக struct துறைகளில் கூட்டலாம் எதிராக எப்போதும் sizeof பயன்படுத்த.
மற்ற காரணம் கூட தொகுப்பி struct மீது வைக்கும் திணிப்பு இருக்கலாம் என்று.
கூட தனிப்பட்ட துறைகள் கூட்டலாம், நீங்கள் வழக்கமாக செய்ய வேண்டும் என்று ஒன்று இல்லை
எனவே, அந்த வரியை நீக்க.
இப்போது, உண்மையில், இந்த வேர் கணு துவக்க
நான் அதன் பல்வேறு துறைகளில் ஒவ்வொரு மதிப்புகள் அடைப்பை வேண்டும் போகிறேன்.
எடுத்துக்காட்டாக, மதிப்பு நான் 7 துவக்க வேண்டும் என்று,
இப்போது நான் இடது குழந்தை பூஜ்ய இருக்கும் அமைக்க போகிறேன்
வலது குழந்தை கூட பூஜ்ய வேண்டும். கிரேட்!
நாம் குறிப்பிட்ட அந்த பகுதி செய்துவிட்டேன்.
>> பக்கம் 3 கீழே உள்ள குறிப்புகளை கீழே மூன்று முனைகளில் உருவாக்க என்னை கேட்டால் -
9 3, 6 கொண்ட ஒன்று கொண்ட ஒரு -
பின்னர் அது சரியாக நம் மரம் வரைபடம் போல் அவர்களை கம்பி
நாம் முன்னர் பற்றி என்று.
நாம் இங்கே அந்த அழகான விரைவாக செய்ய.
நான் நகல் குறியீடு ஒரு கொத்து எழுத ஆரம்பிக்க போகிறேன் என்று மிகவும் விரைவாக காண முடியும்.
நான் ஒரு முனை * உருவாக்க போகிறேன், நான் மூன்று அழைக்க போகிறேன்.
நான் malloc (sizeof (முனை)) அது சம அமைக்க போகிறேன்.
நான் மூன்று> மதிப்பு = 3 அமைக்க போகிறேன்.
மூன்று -> left_child = NULL; மூன்று -> உரிமை _child = NULL; அதே.
என்று ரூட் ஆரம்பிக்கும் என்று அழகாக அதே போல், அந்த சரியாக என்ன
நான் அதே 6 மற்றும் 9 ஆரம்பிக்கும் ஆரம்பித்தால் செய்ய வேண்டும் போகிறேன்.
நான் விரைவில் இங்கே அதை செய்கிறேன் - உண்மையில், நான் ஒரு சிறிய நகல் மற்றும் பேஸ்ட் செய்ய போகிறேன்,
சரி - என்று நான் உறுதி.
இப்போது, நான் அதை நகல் மற்றும் நான் போய் 6 இந்த சமமாக அமைக்க முடியும்.
இந்த சிறிது எடுத்து சூப்பர் திறன் இல்லை என்று பார்க்கலாம்.
ஒரு சிறிதுநேரத்தில், நாம் இந்த செய்வேன் என்று ஒரு செயல்பாடு எழுத வேண்டும்.
நான் ஒரு 9 இந்த பதிலாக வேண்டும், ஒரு 6 என்று மாற்றவும்.
>> இப்போது நாங்கள் எங்கள் முனைகளில் அனைத்து உருவாக்கப்பட்ட மற்றும் துவக்கப்படும் கிடைத்துவிட்டது.
நாம், நமது ரூட் 7 சமமாக அமைக்க கிடைத்தது, அல்லது மதிப்பு 7 கொண்ட
3 கொண்டிருக்கும் எங்கள் முனை, 9 கொண்டுள்ள 6 கொண்ட நம் முனை, மற்றும் நம் முனை.
இந்த கட்டத்தில், நாம் செய்ய வேண்டிய அனைத்து வரை கம்பி எல்லாமே.
நான் வெற்று அனைத்து சுட்டிகளையும் துவக்கப்படும் காரணம் நான் நிச்சயமாக அந்த செய்ய தான் என்று
நான் விபத்தில் அங்கு எந்த uninitialized குறிப்புகள் இல்லை.
மேலும் பின்னர், இந்த இடத்தில், நான் மட்டுமே உண்மையில் ஒன்றுக்கொன்று முனைகளில் இணைக்க வேண்டும் -
அவர்கள் உண்மையில் இணைக்கப்படும் என்று ஒன்றை - நான் வழியாக சென்று செய்ய வேண்டாம்
அனைத்து nulls பொருத்தமான இடங்களில் அங்கு உள்ளன என்று.
>> ரூட் தொடங்கி, நான் ரூட் இடது குழந்தை 3 என்று எனக்கு தெரியும்.
நான் ரூட் உரிமையை குழந்தை 9 என்று எனக்கு தெரியும்.
பின்னர், நான் கவலைப்பட விட்டார்கள் என்று மட்டுமே மற்ற குழந்தை
6 இது 3 உரிமையை குழந்தை உள்ளது.
இந்த கட்டத்தில், அது அனைத்து நல்ல தெரிகிறது.
நாம் இந்த வரிகளை சில நீக்க வேண்டும்.
இப்போது எல்லாம் நல்ல தெரிகிறது.
நமது விவரக்குறிப்பு சென்று, நாம் அடுத்த என்ன செய்ய வேண்டும் என்று பார்ப்போம்.
>> இந்த கட்டத்தில், நாங்கள் என்று ஒரு செயல்பாடு 'உள்ளது' எழுத வேண்டும்
'bool கொண்டுள்ளது (int மதிப்பு)' ஒரு ப்ரோட்டோடைப்.
இந்த செயல்பாடு உண்மை திரும்ப போகிறது கொண்டுள்ளது
மரம் எங்கள் உலக ரூட் மாறி மூலம் சுட்டிக்காட்டினார் என்றால்
செயல்பாடு மற்றும் தவறான இல்லையெனில் கடந்து மதிப்பு உள்ளது.
தான் போய் அதை செய்ய விடுங்கள்.
இந்த துல்லியமாக நாம் தான் சற்று முன்பு iPad இல் கையால் அந்த பார்வை இருக்க வேண்டும்.
நாம் சற்று திரும்பி பெரிதாக்கவும் மற்றும் மேலே.
நம் முக்கிய செயல்பாடு மேலே இந்த விழாவில் வைத்து போகிறாய்
அதனால் நாம் மூலப்பொருளுக்கு எந்த செய்ய இல்லை.
எனவே, bool (int மதிப்பு) கொண்டுள்ளது.
அங்கு நாம். எங்கள் பாய்லர் அறிவிப்பு உள்ளது.
இப்போது, இந்த தொகுக்கலாம் என்று உறுதி செய்ய
நான் போய் ஒரு தவறான திரும்ப சமமாக அமைக்க போகிறேன்.
இப்போது இந்த செயல்பாடு தான் எதையும் செய்ய முடியாது, எப்போதும் அந்த அறிக்கை
நாம் தேடும் மதிப்பு மரம் இல்லை.
>> இந்த கட்டத்தில், இது அநேகமாக ஒரு நல்ல யோசனை -
நாம் குறியீடு ஒரு மொத்தமாக எழுதப்பட்ட நாங்கள் இன்னும் அதை சோதனை முயற்சி இல்லை என்பதால் -
இது அனைத்து தொகுக்கும் உறுதி செய்ய.
நாம் இந்த உண்மையில் தொகுக்கலாம் என்று உறுதி செய்ய வேண்டும் என்று விஷயங்களை ஒரு ஜோடி உள்ளன.
நாம் இன்னும் சேர்க்கப்படவில்லை என்று எந்த நூலகங்கள் எந்த செயல்பாடுகளை பயன்படுத்தி வருகிறேன் என்றால், முதலில் பார்க்க.
நாம் இதுவரை பயன்படுத்தி செயல்பாடுகள், malloc இருக்கும்
மற்றும் நாம் இந்த வகை பயன்படுத்தி - 'bool' என்று இந்த நிலையான வகை -
இது வழக்கமான bool தலைப்பு கோப்பு சேர்க்கப்பட்டுள்ளது.
நாம் நிச்சயமாக bool வகை நிலையான bool.h, சேர்க்க வேண்டும்
மற்றும் நாம் # நிலையான நூலகங்கள் நிலையான lib.h சேர்க்க வேண்டும்
அந்த malloc, மற்றும் இலவச, மற்றும் அனைத்து அடங்கும்.
எனவே, ஜூம் அவுட், நாம் வெளியேற போகிறோம்.
முயற்சி மற்றும் இந்த உண்மையில் தொகுப்பு என்று உறுதி செய்யலாம்.
நாம் அது என்று பார்க்க, நாம் சரியான பாதையில் தான்.
>> மீண்டும் binary_tree.c திறந்து விட.
அதை தொகுக்கும். போய் நாம் கொண்டிருக்கும் செயல்பாடு சில அழைப்புகள் செருக என்று நாம் -
அந்த அனைத்து நல்ல என்று உறுதிப்படுத்தி கொள்ள.
உதாரணமாக, நாம் முன்னர் நமது மரம் சில லுக்அப்களுக்கு செய்த போது,
, நாம் மதிப்புகள் 6, 10, மற்றும் 1 பார்க்க முயற்சி, மற்றும் நாம் 6 மரம் என்று தெரியும்
10 மரம் இல்லை, மற்றும் 1 அல்லது மரம் இல்லை.
இது கண்டுபிடிக்க ஒரு வழியாக அந்த மாதிரி அழைப்புகளை பயன்படுத்த அனுமதிக்க அல்லது இல்லையா
எங்கள் கொண்டுள்ளது செயல்பாடு வருகிறது.
அந்த வகையில், நான், printf செயல்பாட்டை பயன்படுத்த போகிறேன்
மற்றும் நாம் கொண்டிருக்கும் அழைப்பை விளைவாக அவுட் அச்சிட போகிறோம்.
நான் ஒரு சரம் போட்டு போகிறேன் "கொண்டுள்ளது (% d) = ஏனெனில்
நாம் பார்க்க போகிறோம் என்று மதிப்பு பிளக் போகிறோம்,
மற்றும் =% s \ n "என்று பயன்படுத்த எங்கள் வடிவம் சரம் போன்ற.
உண்மையில் திரையில் அவுட் அச்சிட - நாம் பார்க்க போகிறோம் -
என்ன ஒரு செயல்பாடு அழைப்பு தெரிகிறது.
இந்த உண்மையில் செயல்பாடு அழைப்பு அல்ல.
இந்த ஒரு சார்பு அழைப்பு போல் வடிவமைக்கப்பட்ட ஒரு சரம்.
>> இப்போது, நாம் மதிப்புகள் அடைப்பை போகிறோம்.
நாம், 6 கொண்டுள்ளது முயற்சி செய்ய போகிறோம்
மற்றும் நாம் இங்கு செய்ய போகிறோம் என்ன என்று மும்மை ஆபரேட்டர் பயன்படுத்த உள்ளது.
6 கொண்டுள்ளது - - நாம் பார்க்க மிகவும், இப்போது நான் 6 கொண்டிருந்தது நான் மற்றும் 6 கொண்டிருந்தால் உண்மைதான்,
நாங்கள்% கள் வடிவம் தன்மை அனுப்ப போகிறோம் என்று சரம்
சரம் "உண்மை" இருக்க போகிறது.
நாம் சிறிது மீது உருட்டவும்.
இல்லையெனில், நாங்கள் தவறான 6 வருமானத்தை கொண்டிருந்தால் சரம் "தவறான" அனுப்ப வேண்டும்.
இந்த ஒரு சிறிய முட்டாள்தனமான காணப்படும், ஆனால் நான் நன்றாக விளக்க வேண்டும் விளங்கும்படியான
என்ன மும்மை ஆபரேட்டர் நாங்கள் கொஞ்ச அதை பார்க்கவில்லை இருந்து தெரிகிறது.
இந்த எங்கள் கொண்டுள்ளது செயல்பாடு வேலை செய்தால் கண்டுபிடிக்க ஒரு நல்ல, எளிது இருக்கும்.
நான், இடது மீது மீண்டும் உருட்டும் போகிறேன்
நான் ஒரு சில முறை நகலெடுத்து இந்த வரி ஒட்டவும் போகிறேன்.
அது, சுமார் இந்த மதிப்புகள் சில மாற்றம்
எனவே இந்த 1 போகிறது, மற்றும் இந்த 10 ஆக போகிறது.
>> இந்த இடத்தில் நாம் ஒரு நல்ல கொண்டுள்ளது செயல்பாடு கிடைத்துவிட்டது.
நாம் சில பரிசோதனைகள், மற்றும் இந்த அனைத்து வேலைகளையும் நாம் பார்க்கலாம்.
இந்த இடத்தில் நாம் சில குறியீடு எழுதியுள்ளேன்.
வெளியே விட்டுவிட்டு எல்லாம் இன்னும் தொகுக்கும் உறுதி நேரம்.
வெளியே விட்டு, இப்போது மீண்டும் பைனரி மரம் உருவாக்கும் முயற்சி செய்வோம்.
நாம் ஒரு பிழை கிடைத்தது போல நன்றாக, அது, தெரிகிறது
நாம் இந்த வெளிப்படையாக printf நூலகம் செயல்பாடு அறிவித்தார்.
நாம் போய் # standardio.h சேர்க்க வேண்டும் போல் இருக்கிறது.
அத்துடன் எல்லாம் தொகுக்க வேண்டும். நாம் அனைவரும் நல்ல இருக்கும்.
இப்போது பைனரி மரம் இயங்கும் முயற்சி மற்றும் என்ன நடக்கிறது என்று பார்க்கலாம்.
இங்கே நாம். / Binary_tree,, இல்லை
மற்றும் நாம் எதிர்பார்த்தபடி, என்று பார்க்க -
நாம் செயல்படுத்தப்படவில்லை ஏனெனில், இன்னும் உள்ளது
அல்லது மாறாக, நாம் தான் தவறான பதிலுக்கு சேர்த்திருக்கிறேன் -
நாம், அது அவர்களுக்கு அனைத்து தவறான திரும்பி என்று பார்க்க
அதனால் அனைத்து நன்றாக பெரும்பாலான வேலை.
>> இந்த கட்டத்தில் உள்ளது திரும்பி சென்று உண்மையில் செயல்படுத்த வேண்டும்.
நான், கீழே பெரிதாக்க போகிறேன், மற்றும் -
நினைவி, நாம் பயன்படுத்திய படிமுறை நாம் வேர் கணு மணிக்கு தொடங்கியது என்று
பின்னர் நாம் சந்திக்கும் ஒவ்வொரு முனையும் போது, நாம், ஒரு ஒப்பீடு செய்ய
அந்த ஒப்பீட்டு அடிப்படையில் நாம் ஒன்று இடது குழந்தை அல்லது வலது குழந்தை செல்ல.
இந்த நாங்கள் முந்தைய கால எழுதினார் என்று இரும தேடல் குறியீடு போலவே இருக்கும் போகிறது.
நாம் துவங்க போது, நாம் தற்போதைய முனை மீது நடத்த வேண்டும் என்று
நாம் பார்க்கும், மற்றும் தற்போதைய கணு மூல கணு துவக்கப்படும் வேண்டும் என்று.
இப்போது, நாம், மரம் வழியாக செல்ல போகிறோம்
எங்கள் நிறுத்தும் நிலை என்பதை நினைவில் -
நாம் உண்மையில் கை எடுத்துக்காட்டாக மூலம் வேலை போது -
நாம் ஒரு வெற்று முனை ஏற்பட்டது போது, அவர்
நாம் ஒரு வெற்று குழந்தை பார்த்தபோது,
மாறாக நாம் உண்மையில் மரம் ஒரு முனை சென்றார் போது
நாம் ஒரு வெற்று முனை இருக்கும்போது கண்டறியப்பட்டது.
நடப்பு பூஜ்ய சமமாக இல்லை வரை நாம் மீண்டும் கூறு போகிறோம்.
மற்றும் நாம் என்ன செய்ய போகிறோம்?
நாம் சோதிக்க போகிறீர்கள் என்றால் (நடப்பு -> மதிப்பு == மதிப்பு),
நாங்கள் உண்மையில் நாம் தேடும் கணு எதுவும் காணப்படவில்லை என்று எனக்கு தெரியும்.
இங்கு, நாம் உண்மையான திரும்ப முடியும்.
இல்லையெனில், நாங்கள் மதிப்பு குறைவாக இருக்கிறதா அல்லது இல்லையா என்பதை பார்க்க வேண்டும்.
தற்போதைய முனை மதிப்பு மதிப்பு குறைவாக இருந்தால் நாம், தேடுகிறீர்கள்
நாம் சரியான செல்ல போகிறோம்.
எனவே, நடப்பு = நடப்பு -> right_child; இல்லையெனில் மற்றும், நாம் இடது செல்ல போகிறோம்.
நடப்பு = நடப்பு -> left_child;. அழகான எளிமையான.
>> ஒருவேளை நீங்கள் இந்த போலவே தெரிகிறது என்று வளைய அங்கீகரிக்க
முந்தைய கால இரும தேடல், பின்னர் தவிர நாம் குறைந்த, நடுத்தர, மற்றும் உயர் கையாள்வதில்.
இங்கே, நாம் தான், தற்போதைய மதிப்பு பார்க்க வேண்டும்
அது நல்ல மற்றும் எளிது.
நாம் இந்த குறியீடு வேலை உறுதி.
முதல், அது தொகுக்கும் உறுதி. அது போல்.
அது இயங்கும் பார்க்கலாம்.
உண்மையில், அது நாம் எதிர்பார்க்கப்படுகிறது என்று எல்லாம் அவுட் அச்சிடுகிறது.
10 மரம் இல்லை, ஏனெனில் அது மரத்தில் 6 காண்கிறார், 10 கண்டறிய இல்லை
1 மரம் கூட இல்லை, ஏனெனில் மற்றும் அல்லது 1 தெரியாது.
Cool stuff.
>> அது சரி. நமது விவரக்குறிப்பு சென்று, அடுத்த என்ன என்று பார்ப்போம்.
இப்போது, அது எங்கள் மரம் இன்னும் சில முனைகளில் சேர்க்க விரும்புகிறார்.
அது 5, 2, மற்றும் 8 சேர்க்க, மற்றும் நம் குறியீடு உள்ளது என்பதை உறுதி செய்ய வேண்டும்
இன்னும் எதிர்பார்த்தபடி வேலை.
நாம் அதை செய்ய வேண்டும்.
இந்த கட்டத்தில், மாறாக மீண்டும் அந்த எரிச்சலூட்டும் நகல் மற்றும் பேஸ்ட் செய்து விட,
அது உண்மையில் ஒரு முனை உருவாக்க ஒரு செயல்பாடு எழுத அனுமதிக்க.
நாங்கள் முக்கிய அனைத்து வழி கீழே இருந்தால், நாம் இந்த பண்ணினீங்க என்று பார்க்க
நாம் ஒரு முனை உருவாக்க வேண்டும் என்று ஒவ்வொரு முறையும் மீது மீண்டும் மீது மிகவும் ஒத்த குறியீடு.
>> அது உண்மையில் எங்களுக்கு ஒரு முனை உருவாக்க மற்றும் அதை திருப்பி என்று ஒரு செயல்பாடு எழுத அனுமதிக்க.
நான் அதை build_node அழைக்க போகிறேன்.
நான் ஒரு குறிப்பிட்ட மதிப்பு ஒரு முனை உருவாக்க போகிறேன்.
இங்கே உள்ள பெரிதாக்கவும்.
நான் செய்ய போகிறேன் முதல் என்னவென்றால் குவியல் மீது கணு இடைவெளி உருவாக்க வேண்டும்.
எனவே, கணு * n = malloc (sizeof (முனை)); n -> மதிப்பு = மதிப்பு;
பின்னர் இங்கே, நான் சரியான மதிப்புகள் இருக்கும் துறைகளில் அனைத்து துவக்க போகிறேன்.
மிகவும் இறுதியில், நாங்கள் எங்கள் முனை தருகிறேன்.
அது சரி. கவனிக்க ஒன்று இந்த செயல்பாடு என்று இங்கே இருக்கிறது
குவியல்-ஒதுக்கீடு உள்ளது என்று நினைவகம் ஒரு சுட்டிக்காட்டி திரும்ப போகிறது.
என்ன இது நல்லது இப்போது இந்த முனை ஆகும் -
நாம் நாம் ஸ்டேக் அதை அறிவித்தார் ஏனெனில் குவியல் அதை அறிவிக்க வேண்டும்
நாம் இந்த விழாவில் அதை செய்ய முடியாது.
அந்த நினைவக திறன் வெளியே செல்ல வேண்டும்
நாம் பிறகு அணுக முயற்சி என்றால் தவறானது என்று.
நாம் குவியல்-ஒதுக்கப்பட்டுள்ள நினைவகத்தை அறிவித்தார் பின்னர்,
நாம் பின்னர் அதை பெறலாம் பார்த்துக்கொள்ள வேண்டும்
எங்கள் நிரல் எந்த நினைவகத்தை கசியவிடுகிறது இல்லை.
நாம் குறியீடு எல்லாமே அந்த மீது punting
ஒரு நேரத்தில் எளிமை மீது ஆணையாக,
ஆனால் நீங்கள் எப்போதாவது இந்த மாதிரி ஒரு செயல்பாடு எழுத வேண்டும்
நீங்கள் கிடைத்துவிட்டது, அங்கு - சில உள்ளே ஒரு malloc அல்லது realloc அழைப்பு -
நீங்கள், நீங்கள் சொல்வது இங்கே கருத்து ஒருவித போட என்பதை உறுதி செய்ய வேண்டும்
ஏய், உனக்கு தெரியுமா, கடந்து-ல் மதிப்பு துவக்கப்படும் ஒரு குவியல்-ஒதுக்கீடு முனை திரும்பும்.
பின்னர் நீங்கள் சொல்வது குறிப்பு ஒருவித வைக்க உறுதி செய்ய வேண்டும்
அழைப்பவர் மீண்டும் நினைவு விடுவிக்க வேண்டும்.
அந்த வழியில், ஒருவர் எப்போதும் சென்று என்றால், அந்த செயல்பாடு பயன்படுத்துகிறது
அவர்கள் அந்த விழாவில் இருந்து திரும்ப பெற என்ன என்று தெரியும்
சில கட்டத்தில் விடுதலை வேண்டும்.
>> , அனைத்து இங்கே நல்ல என்று அனுமானித்து
நாம் குறியீடு இறங்கி சென்று வலது இங்கே இந்த வரிகளை அனைத்து மாற்ற முடியும்
எங்கள் உருவாக்க முனையும் செயல்பாடு அழைப்புகள் மூலம்.
உலகின் மிகவும் விரைவாக செய்வோம்.
நாம் பதிலாக போவதில்லை என்று ஒரு பகுதி கீழே இங்கே இந்த பகுதி
நாம் உண்மையில் ஒருவருக்கொருவர் சுட்டிக்காட்ட முனைகள் வரை கம்பி அங்கு கீழே,
என்று நாம் நமது செயல்பாடு செய்ய முடியாது.
ஆனால், நாம் என்ன செய்ய ரூட் = build_node (7); முனை * மூன்று = build_node (3);
கணு * ஆறு = build_node (6); முனை * ஒன்பது = build_node (9);.
இப்போது, நாங்கள் ஐந்து முனைகளில் சேர்க்க வேண்டும் -
கணு * ஐந்து = build_node (5); முனை * எட்டு = build_node (8);
மற்ற முனை என்ன? இங்கே பார்க்கலாம். நாம் ஒரு 2 சேர்க்க வேண்டும் -
கணு * இரண்டு = build_node (2).
அது சரி. இந்த கட்டத்தில், நாங்கள் 7, 3, 9, மற்றும் 6 கிடைத்துவிட்டது என்று
அனைத்து சரியான வரை கம்பி, ஆனால் என்ன 5, 8 மற்றும் 2 பற்றி?
சரியான வரிசையில் எல்லாம் வைத்து,
நாங்கள் மூன்று உரிமையை குழந்தை 6 என்று எனக்கு தெரியும்.
எனவே, நாங்கள் 5 சேர்க்க போகிறோம் என்றால்,
5 மேலும், 3 ரூட் இது மரம் வலதுபுறம் சொந்தமானது
எனவே 5 6 இடது குழந்தை சொந்தமானது.
நாம், ஆறு என்று செய்யலாம் -> left_child = ஐந்து;
;> left_child = எட்டு - பின்னர் 8 ஒன்பது எனவே, 9 இடது குழந்தை சொந்தமானது
பின்னர் 2 3 இடது குழந்தை, எனவே நாம் இங்கு அதை செய்ய முடியும் - உம்மை -> left_child = இரண்டு;.
நீங்கள் மிகவும் என்று சேர்த்து பின்பற்ற முடியவில்லை என்றால், நான் உங்களை வெளியே இழுக்க தெரிவிக்கின்றன.
>> அது சரி. இந்த காப்பாற்ற நாம். நாம், வெளியே சென்று அதை தொகுக்கும் உறுதி
பின்னர் நாங்கள் எங்கள் கொண்டுள்ளது அழைப்புகளில் சேர்க்க முடியும்.
எல்லாம் இன்னும் தொகுக்கும் தெரிகிறது.
இது போக சில அழைப்புகளை கொண்டுள்ளது உள்ள சேர்க்க.
மீண்டும், நான் நகல் மற்றும் பேஸ்ட் சிறிது செய்ய போகிறேன்.
இப்போது நாம் 5 8, மற்றும் 2, தேட. அது சரி.
நாம் இந்த அனைத்து இன்னும் நன்றாக இருக்கிறது என்று. கிரேட்! சேமிக்க மற்றும் விலகினார்.
இப்போது தொகுத்தல், அது செய்யலாம், இப்போது தான் இயக்க வேண்டும்.
எல்லாம் நல்ல நன்றாக வேலை போன்ற முடிவுகளில் இருந்து, அது தெரிகிறது.
கிரேட்! எனவே இப்போது நாம் கொண்டிருக்கும் எழுதப்பட்ட தரக்குறியீடுகள் கிடைத்துவிட்டது.
நாம் மேலே மரத்தில் முனைகளில் செருக எப்படி வேலை
நாம் இப்போது அதை செய்கிறீர்கள் என பின்னர், விஷயங்களை அழகாக இல்லை.
>> நாம் விவரக்குறிப்பு திரும்பி சென்றால்,
ஒரு bool திரும்பி, மீண்டும் - இது செருக என்று ஒரு செயல்பாடு எழுத எங்களுக்கு கேட்கும்
அல்லது நாம் உண்மையில் மரத்தில் முனை சேர்க்க முடியும் -
பின்னர் மரம் செருக, மதிப்பை குறிப்பிடப்படும்
எங்கள் சேர்த்த செயல்பாடு மட்டுமே வாதம்.
நாம் உண்மையில் மரத்தில் முனை கொண்ட மதிப்பை செருக என்று நாம், உண்மை வந்துடுவாங்க
இது, நாம், ஒரு, போதுமான நினைவகம் என்று அர்த்தம்
பின்னர் இரண்டு, என்று முனை ஏற்கனவே இருந்து மரம் இல்லை -
நினைவி, நாம் தான் எளிதாக்குவது, மரம் உள்ள நகல் மதிப்புகள் வேண்டும் போவதில்லை.
அது சரி. குறியீடு செல்ல.
அதை திறக்க. ஒரு பிட் பெரிதாக்கு, பின்னர் கீழே.
வலது கொண்டுள்ளது மேலே சேர்த்த செயல்பாடு வைக்கிறேன்.
மீண்டும், இது (int மதிப்பு) bool நுழைவு என்றழைக்கப்படும் நடக்கிறது.
ஒரு முன்னிருப்பு, அது இன்னும் சிறிது இடைவெளி கொடுத்து, மற்றும்,
மிக இறுதியில் தவறான பதிலுக்கு வைத்து விடுங்கள்.
இப்போது கீழே கீழே, மேல் மற்றும் பதிலாக கைமுறையாக முனைகளில் கட்டியெழுப்புவதற்கான செல்லலாம்
முக்கிய நம்மை மற்றும் வயரிங் அவற்றை நாம் செய்கிறோம் போன்ற ஒருவருக்கொருவர் சுட்டிக்காட்ட,
நாங்கள் அதை செய்ய நம் சேர்த்த செயல்பாடு தங்கியிருக்க வேண்டும்.
நாங்கள், இன்னும் புதிதாக முழு மரம் உருவாக்க எங்கள் சேர்த்த செயல்பாடு நம்ப மாட்டேன்
மாறாக நாம் இந்த வரிகளை அகலும் - we'll இந்த வரிகளை அவுட் கருத்து -
அந்த முனைகளில் 5, 8 மற்றும் 2 கட்ட.
அதற்கு பதிலாக, நாம் சேர்த்த செயல்பாடு அழைப்புகள் சேர்க்க வேண்டும்
உண்மையில் வேலை என்று உறுதிப்படுத்தி கொள்ள.
இங்கே நாம்.
>> இப்போது நாம் இந்த வரிகளை அவுட் கருத்து.
நாம் இந்த நேரத்தில் நம் கிளையில் 7, 3, 9, மற்றும் 6 வேண்டும்.
இந்த அனைத்து உழைக்கும் என்று உறுதி செய்ய,
நாம், நம் பைனரி ட்ரீ செய்ய, அவுட் பெரிதாக்கவும் முடியும்
அதை இயக்க, மற்றும் நாம் இப்போது நாங்கள் முற்றிலும் சரி என்று சொல்வதை தான் உள்ளது என்று பார்க்கலாம் -
5 8, மற்றும் 2, மரம் இல்லை.
குறியீடு மீண்டும் சென்று,
எப்படி நாம் நுழைக்க போகிறோம்?
நாம் உண்மையில் முன்னர், 8, மற்றும் 2 5 சேர்த்த போது நாம் என்ன ஞாபகம்.
நாம் ரூட் மணிக்கு தொடங்கியது அங்கு நாங்கள், அந்த Plinko விளையாட்டு
ஒருவர் பின் ஒருவராக மூலம் மரம் ஒன்று கீழே சென்றது
நாம் சரியான இடைவெளி காணப்படுகிறது வரை,
மற்றும் நாம் சரியான இடத்தில் முனை உள்ள கம்பி.
நாம் தான் செய்ய போகிறோம்.
இந்த நாம் பயன்படுத்திய குறியீடு எழுதி போன்ற அடிப்படையில் செயல்பாடு உள்ளது
கணு வேண்டும் இடத்திலிருந்து கண்டுபிடிக்க,
மற்றும் நாம் சரியாக இருக்கிறது முனை நுழைக்க போகிறோம்.
நாம் என்று ஆரம்பித்தாய்.
>> எனவே நாம் ஒரு முனை * நடப்பு = ரூட் வேண்டும்; நாங்கள் குறியீடு உள்ளது பின்பற்ற போகிறோம்
நாம் அது மிகவும் எங்களுக்கு வேலை இல்லை என்று கண்டுபிடிக்கும் வரை.
தற்போதைய உறுப்பு பூஜ்ய அல்ல போது நாம் மரம் செல்ல போகிறோம்,
நாம் கண்டறிய வேண்டும் என்று நடப்பு மதிப்பு நாம் சேர்க்க முயற்சிக்கும் மதிப்பு சமமாக இருக்கும் -
நன்றாக, இந்த நாம் உண்மையில் முனை நுழைக்க முடியவில்லை இதில் நிகழ்வுகளில் ஒன்றாக
மரம் இந்த ஒரு போலி மதிப்பு ஆகும் என்பதால்.
இங்கே நாம் உண்மையில் தவறான திரும்ப போகிறோம்.
இப்போது, நடப்பு மதிப்பு, மதிப்பு குறைவாக இருந்தால்,
இப்போது நாம் சரியான நடவடிக்கை என்று
மதிப்பு நடப்பு மரம் வலது பகுதியில் சொந்தமானது என்பதால்.
இல்லையெனில், நாங்கள் இடது செல்ல போகிறோம்.
அந்த அடிப்படையில் எமது கொண்டுள்ளது அங்கு செயல்பட வேண்டும்.
>> இந்த கட்டத்தில், நாம், இந்த நேரத்தில் வளைய முடித்துவிட்டேன்
எங்கள் நடப்பு சுட்டிக்காட்டி பூஜ்ய குறிக்கின்ற போகிறது
விழாவில் ஏற்கனவே திரும்பி வரவில்லை என்றால்.
நாம் புதிய கணு செருக வேண்டுமோ அந்த இடத்தில் நாம் எனவே இடத்தில் நடப்பு நேர்கிறது.
என்ன செய்ய வேண்டும், உண்மையில் புதிய கணு உருவாக்க வேண்டும்
இது நாம் மிகவும் எளிதாக செய்ய முடியும்.
நாம், நமது சூப்பர் எளிது உருவாக்க முனையும் செயல்பாட்டை பயன்படுத்தலாம்
நாம் முன்பே செய்யவில்லை என்று ஒன்று -
நாம் தான் வகையான வழங்கப்படும் எடுத்து ஆனால் இப்போது நாம் உறுதி செய்ய வேண்டும் -
நாம் புதிய கணு வந்தார் மதிப்பு உண்மையில் என்று உறுதி செய்ய சோதிக்க வேண்டும்
பூஜ்ய இல்லை, நாம் அதை வெற்று இருந்தால் அந்த நினைவு அணுகும் தொடங்க வேண்டாம், ஏனெனில்.
நாம் புதிய கணு பூஜ்ய சமமாக இல்லை என்பதை உறுதி செய்ய சோதிக்க முடியும்.
அது உண்மையில் பூஜ்ய இருந்தால் அல்லது அதற்கு பதிலாக, நாம், பார்க்க முடியும்
அது வெற்று இருந்தால் மற்றும், நாம் தான் ஆரம்பத்தில் தவறான திரும்ப முடியும்.
>> இந்த கட்டத்தில், நாங்கள் மரம் அதன் சரியான இடத்தில் புதிய முனை கம்பி வேண்டும்.
நாங்கள் முக்கிய வந்து பார் மற்றும் நாம், முன் உண்மையில் மதிப்புகள் வயரிங் இருந்தது
நாம் அது செய்துகொண்டு வழியில் நாம் கிளையில் 3 வைக்க வேண்டும் என்று பார்க்க
நாம் ரூட் இடது குழந்தை அணுக வேண்டும்.
நாம் மரம் 9 வைத்து போது, நாம் ரூட் உரிமையை குழந்தை அணுக வேண்டும்.
நாம் மரம் ஒரு புதிய மதிப்பை வைத்து பொருட்டு தாய் ஒரு சுட்டிக்காட்டி கொண்டிருக்க வேண்டும்.
செருக மீண்டும் உருட்டுதல், என்று இங்கே மிகவும் வேலைக்கு போகவில்லை
நாம் ஒரு தாய் சுட்டிக்காட்டி இல்லை என்பதால்.
நாம் என்ன செய்ய முடியும் வேண்டும், இந்த இடத்தில், தான்
பெற்றோர் மதிப்பு சரிபார்த்து பார்க்க - நன்றாக, ஐயோ,
பெற்றோர் மதிப்பு தற்போதைய மதிப்பு குறைவாக இருந்தால்,
பின்னர் பெற்றோர் உரிமை குழந்தை புதிய கணு இருக்க வேண்டும்;
இல்லையெனில், பெற்றோர் இடது குழந்தை புதிய கணு இருக்க வேண்டும்.
ஆனால், நாம் மிகவும் இன்னும் இந்த பெற்றோர் சுட்டிக்காட்டி இல்லை.
>> நாம் மரம் வழியாக சென்று அதை பெறுவதற்காக, நாம் உண்மையில் அது கண்காணிக்க வேண்டும்
மேலே எங்கள் வட்டத்திற்கு பொருத்தமான இடத்தை கண்டறிய.
நாம் சேர்த்த செயல்பாடு மேல் திரும்பி வரை ஸ்க்ரோலிங் மூலம் அதை செய்ய முடியும்
மற்றொரு சுட்டிக்காட்டி மாறி தேடும் பெற்றோர் என்று.
நாம் முதலில் பூஜ்ய சமமாக அதை அமைக்க போகிறீர்கள்
பின்னர் ஒவ்வொரு முறையும் நாம், மரம் செல்ல
நாம் தற்போதைய சுட்டிக்காட்டி பொருத்த பெற்றோர் சுட்டிக்காட்டி அமைக்க போகிறீர்கள்.
நடப்பு சமமாக பெற்றோர் அமைக்க.
இந்த வழியில், நாம் செல்ல ஒவ்வொரு முறையும்,
நாம் தற்போதைய சுட்டிக்காட்டி வாங்கியவுடன் incremented உறுதி செய்ய போகிறீர்கள்
பெற்றோர் சுட்டிக்காட்டி அது பின்வருமாறு - மரம் தற்போதைய சுட்டிக்காட்டி விட ஒரு நிலை உயர்.
அனைத்து நல்ல தெரிகிறது.
>> நான் நாம் சரி செய்ய வேண்டும் என்று ஒன்று இந்த முனை திரும்பி பூஜ்ய கட்ட நினைக்கிறேன்.
உண்மையில் வெற்றிகரமாக பூஜ்ய திரும்ப முனை கட்ட பெறுவதற்காக,
நாம், அந்த குறியீடு மாற்ற வேண்டும்
இங்கே ஏனெனில், நாம் malloc சரியான சுட்டிக்காட்டி மீண்டும் உறுதி செய்ய சோதனை.
எனவே, நீங்கள் (n = NULL!), பின் -
malloc சரியான சுட்டிக்காட்டி வந்தார் என்றால், நாம் அதை துவக்க வேண்டும்;
இல்லையெனில், நாங்கள் மட்டும் தருகிறேன், அது எங்களுக்கு பூஜ்ய திரும்பி கதிதான்.
இப்போது அனைத்து நல்ல தெரிகிறது. இந்த உண்மையில் தொகுக்கும் உறுதி செய்யலாம்.
பைனரி ட்ரீ செய்ய, மற்றும் ஓ, நாம் இங்கே ஏதோ ஒரு பொருள் கிடைத்திருக்கிறது.
>> நாம் செயல்பாடு ஒரு தெளிவான அறிவிப்பை முனை கட்ட கிடைத்துவிட்டது.
மீண்டும், இந்த கம்பைலர்களை கொண்டு, நாம் மேலே தொடங்க போகிறோம்.
என்ன அர்த்தம் வேண்டும் நான் உண்மையில் அது பிரகடனம் செய்த முன் நான் முனை கட்ட போன் செய்கிறேன் என்று.
உலகின் மிகவும் விரைவாக குறியீடு திரும்பி செல்லலாம்.
கீழே, மற்றும் நிச்சயமாக போதுமான, என் சேர்த்த செயல்பாடு அறிவித்தார் உள்ளது
உருவாக்க முனையும் செயல்பாடு மேலே,
ஆனால் நான் சேர்த்த உள்ளே முனை உருவாக்க பயன்படுத்த முயற்சி செய்கிறேன்.
நான் மற்றும் நகல் போக போகிறேன் - பின்னர் மேல் இங்கு உருவாக்க முனையும் செயல்பாடு வழி ஒட்டவும்.
அந்த வழியில், வட்டம் என்று வேலை செய்யும். இந்த மற்றொரு போய் கொடுக்கலாம்.
இப்போது அனைத்து தொகுத்தெழுதுகிறது. அனைத்து நல்லது.
>> ஆனால் இந்த கட்டத்தில், நாம் உண்மையில் நம் சேர்த்த செயல்பாடு என்று இல்லை.
நாம் அதை தொகுக்கும் என்று, எனவே சென்று சில அழைப்புகளை உள்ளே போட அனுமதிக்க
எங்கள் முக்கிய செயல்பாடு அதை செய்ய விடுங்கள்.
இங்கே, நாங்கள், 5, 8, மற்றும் 2, வெளியே கருத்து
மற்றும் நாம் கீழே இங்கே அவர்களை கம்பி இல்லை.
நாட்டின் சில அழைப்புகள் செருக செய்யலாம்,
மற்றும் அது கூட நாம் பயன்படுத்திய பொருட்களை அதே வகையான பயன்படுத்த அனுமதிக்க
நாங்கள் எல்லாம் ஒழுங்காக செருகிய நடந்தது என்பதை உறுதி செய்ய இந்த printf அழைப்புகள் போது.
நான், நகலெடுத்து ஒட்டவும் போகிறேன்
நாம் சேர்த்த செய்ய போகிறோம் பதிலாக உள்ளது.
அதற்கு பதிலாக 6, 10, மற்றும் 1, நாங்கள் 5 8, மற்றும் 2, பயன்படுத்த போகிறோம்.
இந்த வட்டம் மரத்தில் 5 8, மற்றும் 2, நுழைக்க வேண்டும்.
தொகுத்தல். அனைத்து நல்லது. இப்போது நாம் உண்மையில் நம் நிரலை இயக்க வேண்டும்.
>> எல்லாம் பொய் திரும்பினார்.
எனவே, 5, 8, மற்றும் 2 செல்லவில்லை, மற்றும் கொண்டுள்ளது அல்லது அவர்களை கண்டுபிடிக்க முடியவில்லை போல் தெரிகிறது.
என்ன நடக்கிறது? வெளியே பெரிதாக்க வேண்டும்.
முதல் பிரச்சனை, நுழைவு தவறான திரும்ப தோன்றியது என்று
அதை நாம் மீண்டும் தவறான அழைப்பு விட்டு ஏனெனில் அது போல், தெரிகிறது
நாம் உண்மையில் உண்மை திரும்பினார்.
நாம் அமைக்க முடியும்.
நாம் கூட இரண்டாவது பிரச்சனை இப்போது, தான் - இந்த சேமிக்க, இந்த விலகினார்
மீண்டும் செய்ய ரன், அதை இயக்கவும், தொகுத்தல் -
நாம் வேறு ஏதாவது இங்கே நடந்தது என்று பாருங்கள்.
5, 8 மற்றும் 2 இன்னமும் மரம் காணப்படுகிறது.
அதனால், என்ன நடக்கிறது?
>> இந்த குறியீடு இந்த ஒரு பார்க்கலாம்.
நாம் இந்த கண்டுபிடிக்க முடியும் என்றால் பார்க்கலாம்.
நாம் பெற்றோர் பூஜ்ய இல்லை தொடங்க.
நாம், ரூட் சுட்டிக்காட்டி சமமாக தற்போதைய சுட்டிக்காட்டி அமைக்க
நாம் மரம் வழியாக நம் வழி கீழே வேலை செய்ய போகிறீர்கள்.
தற்போதைய முனை வெற்று இல்லையெனில், நாங்கள் கொஞ்சம் கீழே நகர்த்த முடியும் என்பது எனக்கு தெரியும்.
நாம், தற்போதைய சுட்டிக்காட்டி சமமாக இருக்கும் எங்கள் பெற்றோர் சுட்டிக்காட்டி அமைக்க
மதிப்பு சரி - மதிப்புகள் அதே நாம் தவறான திரும்பினார்.
மதிப்புகள் குறைவாக இருந்தால், நாம் சரி சென்றார்;
இல்லையெனில், நாங்கள் இடது சென்றார்.
நாம் ஒரு முனை உருவாக்க. நான் கொஞ்சம் பெரிதாக்க வேண்டும்.
இங்கே, நாங்கள் அதே இருக்கும் மதிப்புகள் வரை கம்பி முயற்சி செய்ய போகிறோம்.
என்ன நடக்கிறது? ஒருவேளை Valgrind எங்களுக்கு ஒரு குறிப்பை கொடுக்க முடியும் என்றால் பார்க்கலாம்.
>> நான் தான் மிகவும் விரைவாக ரன்கள் Valgrind Valgrind பயன்படுத்த விரும்புகிறேன்
எந்த நினைவக பிழைகள் இருந்தால் நீங்கள் சொல்கிறது.
நாம், குறியீடு மீது Valgrind ரன் போது
நீங்கள் பார்க்க முடியும் என உரிமை here--Valgrind./binary_tree--and வெற்றி உள்ளிடவும்.
நாம் எந்த நினைவக பிழை இல்லை என்று பார்க்க, அதனால் எல்லாம் இதுவரை பரவாயில்லை போல் தெரிகிறது.
நாங்கள் இல்லை, ஏனெனில் நாங்கள், நாங்கள் என்று சில நினைவக கசிவை வேண்டும்
எங்கள் முனைகளில் எந்த விடுவிக்க நடக்கிறது.
அது உண்மையில் என்ன நடக்கிறது என்பதை GDB இயங்கும் பார்க்கலாம்.
நாம் gdb ஐ செய்வேன். / Binary_tree. அது நன்றாக வரை துவங்கியதும்.
தான் சேர்த்த ஒரு பிரேக் பாயிண்ட் அமைக்கலாம்.
தான் இயக்க வேண்டும்.
நாம் உண்மையில் நுழைவு என்று எப்போதும் போல தெரிகிறது.
பிரச்சனை இப்போது நான் முக்கிய இங்கு கீழே மாற்றப்பட்ட போது அது போல -
கொண்டிருக்கும் இந்த printf அழைப்புகள் அனைத்து -
நான் உண்மையில் நுழைவு அழைக்க இந்த மாற்றம்.
இப்போது அதை முயற்சித்து கொடுக்கலாம். அது தொகுக்க வேண்டும்.
அனைத்து அங்கு நல்ல தெரிகிறது. இப்போது அது இயங்கும் முயற்சி செய்யலாம், என்ன நடக்கிறது என்று பார்க்கலாம்.
அது சரி! எல்லாம் நல்ல தெரிகிறது.
>> யோசிக்க இறுதி விஷயம், இந்த நுழைவு எந்த விளிம்பில் உள்ளன?
அது மாறிவிடும் எப்போதும் யோசிக்க சுவாரஸ்யமான என்று ஒரு முனை வழக்கில், அந்த
இது, உங்கள் மரம் காலியாக இருந்தால் என்ன நடக்கும் இந்த நுழைவு செயல்பாடு அழைப்பு?
இது வேலை செய்யும்? சரி, அது ஒரு முயற்சி கொடுக்க வேண்டும்.
- Binary_tree கேட்ச். -
நாம் இந்த சோதிக்க போகிறோம் வழி, நாம், நமது முக்கிய செயல்பாடு கீழே போக போகிறோம்
மற்றும் பதிலாக இந்த இணைப்பு இந்த முனைகள் வரை விட,
நாம் தான், இந்த விஷயம் வெளியே கருத்து போகிறாய்
அதற்கு பதிலாக முனைகளில் நம்மை வரை வயரிங் பற்றிய,
நாம் உண்மையில் நான் போய் இந்த அனைத்து நீக்க முடியும்.
நாங்கள் எல்லாம் செருக ஒரு அழைப்பு செய்ய போகிறோம்.
எனவே, செய்வோம் - பதிலாக 5, 8, மற்றும் 2, 3, 7 செருக, மற்றும் 9 போகிறோம்.
பின்னர் நாங்கள் அதே 6 சேர்க்க வேண்டும் என்று நான் நினைக்கிறேன்.
சேமிக்க. விலகினார். பைனரி ட்ரீ செய்ய.
இது அனைத்து தொகுத்தெழுதுகிறது.
நாம் அதை அப்படியே ரன் மற்றும் என்ன பார்க்க முடியும்
ஆனால் இது என்று மிகவும் முக்கியமான இருக்கும் நடக்கிறது
நாம், எந்த நினைவக பிழைகள் இல்லை
இந்த நாங்கள் தெரியும் என்று எங்கள் விளிம்பில் நிகழ்வுகளில் ஒன்றாக இருந்து.
>> நாம், அதை Valgrind கீழ் நன்றாக வேலை உறுதி
நாம் தான் Valgrind. / binary_tree இயங்கும் மூலம் செய்யலாம் இது.
நாம் உண்மையில் ஒரு சூழலில் இருந்து ஒரு பிழை உள்ளது போல் -
இந்த அடுக்கு தவறு இல்லை.
என்ன நடந்தது?
அது எங்கே Valgrind உண்மையில் நமக்கு சொல்கிறது.
சிறிது சிறிதாக்குக.
அது நம் நுழைவு விழாவில் நடக்கிறது போல், தெரிகிறது
நாம் நுழைவு உள்ள அளவு 4 ஒரு தவறான வாசிக்க வேண்டும், அங்கு, வரி 60.
பின் போய் இங்கே என்ன நடக்கிறது என்று பார்க்கலாம்.
உண்மையில் விரைவாக அவுட் பெரிதாக்கவும்.
நாங்கள் எல்லாம் பார்க்க முடியும் அதை திரையில் விளிம்பில் சென்று இல்லை என்று உறுதி செய்ய வேண்டும்.
சிறிதுநேரத்தில் என்று இழுக்க. அது சரி.
கீழே, மற்றும் சிக்கல் இங்கே இருக்கிறது.
, நாம் இறங்கி என்ன நடக்கும் நமது தற்போதைய முனை ஏற்கனவே பூஜ்ய உள்ளது
நாம் மிக சிறந்த, சரியான இங்கே பாருங்க எனவே எங்கள் பெற்றோர் முனை, பூஜ்யம் என்பது -
இந்த நிலையில் வளைய உண்மையில் செயல்படுத்தி இருந்தால்,
நமது தற்போதைய மதிப்பு பூஜ்ஜிய ஏனெனில் - நடப்பு பூஜ்யம் என்பது நமது ரூட் பூஜ்ய இல்லை -
பிறகு நமது பெற்றோர், நடப்பு அல்லது சரியான மதிப்பு அமைக்கப்பட்டால்
எனவே, பெற்றோர் கூட வெற்று இருக்கும்.
நாம் அந்த சரிபார்க்க நினைவில் கொள்ள வேண்டும்
அந்த நேரத்தில் நாம் இறங்கி, மற்றும் பெற்றோர்களாகிய நாம் மதிப்பு அணுகும் தொடங்கும்.
அதனால், என்ன நடக்கும்? நன்றாக, என்று பெற்றோர் பூஜ்ய இல்லை -
(பெற்றோர் == NULL) என்றால் - நாம் தெரியும்
மரத்தில் எதுவும் இருக்க கூடாது.
நாம் ரூட் அது நுழைக்க முயற்சி.
நாம் இப்போது ஒரு புதிய கணு சமமாக ரூட் மூலம் அதை செய்ய முடியும்.
இந்த கட்டத்தில், நாம் உண்மையில் இந்த விஷயங்களை செல்ல விரும்பவில்லை.
அதற்கு பதிலாக, இங்கே, நாம், ஒரு வேறு-என்றால், வேறு ஏதேனும் செய்ய முடியும்
அல்லது நாம், ஒரு வேறு இங்கு எல்லாவற்றையும் சேர்த்து முடியும்
ஆனால் இங்கே நாம் தான் வேறு பயன்படுத்த மற்றும் அது வழி செய்வேன்.
இப்போது, நாம் நம் பெற்றோர் பூஜ்ய இல்லை என்று உறுதி செய்ய சோதிக்க போகிறோம்
பின்னர் முன் உண்மையில் அதன் துறைகளில் அணுக முயற்சி.
இந்த நம்மை பிரிவு தவற்றை தவிர்க்க உதவும்.
எனவே, நாம் விட்டு, வெளியே பெரிதாக்கவும் தொகுத்தல், ரன்.
>> இல்லை பிழைகள், ஆனால் நாம் இன்னும் நினைவு கசிவுகள் ஒரு கொத்து வேண்டும்
நாம் முனைகளில் எந்த விடுவித்து ஏனெனில்.
நாம் இங்கே சென்று இருந்தால், ஆனால், நாம், நம் நகல் பாருங்கள்
நாம் நல்ல இது, உண்மை திரும்பி கொண்டு, நன்றாக, எங்கள் செருகி அனைத்து தெரிகிறது என்று பார்க்க.
செருகி அனைத்து உண்மை,
பின்னர் பொருத்தமான கொண்டுள்ளது அழைப்புகளை கூட உண்மை.
>> வேலை நல்ல! நாம் வெற்றிகரமாக நுழைவு எழுதப்பட்ட நான் தெரிகிறது.
என்று நாம் இந்த வாரம் சிக்கல் அமை குறிப்புகள் இடம் இல்லை அவ்வளவுதான்.
யோசிப்பதற்கு ஒரு வேடிக்கை சவாலை நீங்கள் உண்மையில் போய் எப்படி இருக்கும்
இந்த மரம் முனைகளுக்கிடையே அனைத்து இலவச.
நாம், அதனால் வேறு பல வழிகளில் செய்ய முடியும்
ஆனால் நான், சோதனை செய்ய உங்களுக்கு என்று ஒரு செல்கிறேன்
ஒரு வேடிக்கை சவாலாக, முயற்சி மற்றும் நிச்சயமாக செய்ய முடியும் என்று
இந்த Valgrind அறிக்கை பிழைகள் மற்றும் கசிவை இல்லை கொடுக்கிறது என்று.
>> நல்ல அதிர்ஷ்டம் இந்த வாரம் ஹஃப்மேன் கோடிங் பிரச்சினை தொகுப்பில்,
நாம் அடுத்த வாரம் பார்!
[CS50.TV]