[Powered by Google Translate] [ஒத்திகை - சிக்கல் அமை 5] [Zamyla சான் - ஹார்வர்ட் பல்கலைக்கழகம்] [இந்த CS50 உள்ளது. - CS50.TV] எல்லாம் சரி. அனைவருக்கும் வணக்கம், மற்றும் ஒத்திகையும் 5 வரவேற்க. Pset5 நாம் ஒரு பிழைத்திருத்தி செய்து விடும் இதில், எழுத்துப்பிழைகள் ஆகும். உச்சரிக்க-செக்கர்ஸ் மிகவும் முக்கியம். இந்த எப்போதாவது நடந்தது? நீங்கள் மிகவும் வேலை, மிகவும் ஒரு மோதல் ஒரு காகிதத்தில் சேகரிப்பு பின்னர் இன்னும் ஒரு டி அல்லது டி = போன்ற மிகவும் பிரகாசம் rade பெற முடியும் மற்றும் அனைத்து நீ திமிங்கிலம் பரந்த வார்த்தையில் லிவர்ஒர்ஸ்ட் ஸ்பாய்லர் ஏனெனில். ஆமாம், உங்கள் மிளகுத்தூள் சரிபார்த்தல் ஒரு விஷயம், மிகுந்த பலவீனம் ஆகும். இந்த துணிச்சல், துணிச்சல் மாணவர்கள் பாதிக்கிறது என்று ஒரு பிரச்சனை. நான் ஒருமுறை நான் ஒரு நல்ல சக பெற முடியாது என்று என் முதற்கொண்டு தர கொடுமை மூலம் கூறப்பட்டது. என்று, அனைத்து எந்த குழந்தை என் வயதில் வேண்டும் என்று நான் விரும்பினேன் அனைத்து, தான் ஒரு நல்ல சக பெற. இல்லை எந்த சக. இல்லை நான் ஒரு ஐவரி சட்ட சக செல்ல வேண்டும். நான் முன்னேற்றம் இல்லை என்றால், போய், ஹார்வர்ட் செல்லும் என் கனவுகள் இருக்கும் ஜலே, அல்லது சிறைச்சாலை - உங்களுக்கு தெரியும், சிறையில், நியூ ஜெர்சி. அதனால் நான் ஒரு பிழைத்திருத்தி கிடைத்தது. என்று எனக்கு பிடித்த பேச்சு வார்த்தை கலைஞர்கள், டெய்லர் மாலி ஒரு இருந்து ஒரு சிறிய பகுதி தான். அவர் சொல்வது போல் இருந்தாலும், ஒரு பிழைத்திருத்தி முக்கியத்துவத்தை மிகவும் முக்கியமானது. நாம் pset5 பற்றி நான் இதில், ஒத்திகையும் 5 வரவேற்க: எழுத்துப்பிழைகள், இதில் நாம் மிகவும் சொந்த பிழைத்திருத்தி செய்யும். இந்த வாரம் கருவி பெட்டி, விநியோகம் குறியீடு, ஆனால் முக்கியமான போகிறது உங்கள் அகராதியில் இல்லை என்று பல்வேறு செயல்பாடுகளை புரிந்து கொள்ள. நாம் உண்மையில் நமது pset என்று பல. கேட்ச் கோப்புகளை கொண்டு போகிறாய். எனவே நாம் உண்மையில் திருத்த முடியாது கூட, பல்வேறு அம்சங்கள் மூலம் தேடும் இது dictionary.c தொடர்பாக உடன் வேலை எப்படி கோப்புகளை ஒன்று, speller.c,, நாம் எழுதும் வேண்டிய, அழகான முக்கியமான போகிறது. pset ஸ்பெக் மேலும் பயனுள்ள தகவல்கள் நிறைய உள்ளது நீங்கள் தொடரலாம் என்று விஷயங்களை பொறுத்தவரை, அந்த விதிகள் மற்றும் பொருட்கள், எனவே உதவிக்குறிப்புகளை கவனமாக pset ஸ்பெக் கண்டிப்பாக படிக்கவும். மற்றும் போது ஒரு விதி அல்லது ஏதாவது சந்தேகம், பின்னர் எப்போதும் pset ஸ்பெக் பார்க்கவும் அல்லது ஆலோசிக்க. இந்த pset, சுட்டிகள் சார்ந்தே போகிறது எனவே நாம் சேர்த்து நட்சத்திரங்கள் இடையிலான வித்தியாசத்தை புரிந்து கொள்ள வேண்டும் என்று உறுதி செய்ய வேண்டும் அவர்களை விடுவிக்க எப்படி சுட்டிக்காட்டி பெயர் மற்றும் ampersands, பல முன் எனவே சுட்டிகள் ஒரு ஆசானாக இந்த பிரச்சனை தொகுப்பில் மிகவும் பயனுள்ளதாக இருக்கும். நாம், ஒரு பிட் மேலும் தொடர்புடைய பட்டியல்கள் பார்க்க போகிறோம் நாம் ஒரு மதிப்பு, அத்துடன் ஒரு சுட்டிக்காட்டி இரண்டு என்று முனைகளில் அழைப்பு கூறுகள் எங்கே அடுத்த முனை, அதனால் essentially பல்வேறு கூறுகளை ஒன்றன் பின் ஒன்றாக இணைக்கும். உங்கள் உண்மையான அகராதி செயல்படுத்த ஒரு சில பல்வேறு வழிமுறைகள் உள்ளன. நாம் இரண்டு முக்கிய வழிமுறைகள், ஹெஷ் அட்டவணைகள் மற்றும் பிறகு முயற்சி இது பார்க்க போகிறோம். அந்த இரண்டிலும், அவர்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் கருத்து சில வகையான உள்ளடக்கியது நீங்கள் ஒரு மற்றொரு கூறுகள் இணைக்கப்பட்ட எங்கே. அதனால் நாம், நீங்கள் இணைக்கப்பட்ட பட்டியல்கள் சுற்றி செயல்பட முடியும் என எப்படி பார்க்க போகிறோம் , அவற்றை உருவாக்க எப்படி அடிப்படையில் செல்லவும், உதாரணமாக, அதை ஒரு முனை செருக அல்லது அதே முனைகளில் அனைத்து இலவச. பெறலாம் முனைகளில் அடிப்படையில், அந்த மிக முக்கியம் என்று நாம் malloc நினைவகம், அதன் பிறகு நாம் விடுவித்து போதெல்லாம். எனவே நாம் எந்த நினைவக கசிவை இல்லை என்று, எந்த சுட்டிக்காட்டி unfreed செல்கிறது என்பதை உறுதி செய்ய வேண்டும். உங்கள் திட்டத்தை இயங்கும் Valgrind என்று ஒரு கருவியை அறிமுகப்படுத்த போகிறோம் நீங்கள் ஒதுக்கப்பட்ட அனைத்து நினைவக என்பதை காசோலைகளை பின்னர் விடுவிக்கப்பட்டது. , அது வேலை செய்யும் போது உங்கள் pset மட்டுமே முடிக்க அது முழு செயல்பாடு உள்ளது ஆனால், Valgrind நீங்கள் எந்த நினைவக கசிவை இல்லை என்று நீங்கள் சொன்னால். இறுதியாக, இந்த pset நான் மிகவும் வலியுறுத்தி வேண்டும் - அதாவது, வழக்கம் போல், நான் நிச்சயமாக உங்கள் பிரச்சினை தடவைகளில் பேனா மற்றும் காகித பயன்படுத்தி ஒரு ஆதரவாளர் இல்லை, ஆனால் இந்த ஒரு, நான் பேனா மற்றும் காகிதம் முக்கியமாக இருக்கும் என்று நினைக்கிறேன் நீங்கள் விஷயங்களை செய்ய அம்புகள் வரையும் மற்றும் பொருட்களை எவ்வாறு புரிந்து கொள்ள வேண்டும் போது. அதனால் கண்டிப்பாக நீங்கள் coding செய்து முன் விஷயங்கள் வெளியே வரைய பேனா மற்றும் காகித பயன்படுத்த முயற்சி அது ஒரு பிட் குளறுபடியாக பெற முடியும் என்பதால். முதல், அது தொடர்புடைய பட்டியல்கள் ஒரு பிட் செல்லலாம். இணைக்கப்பட்ட பட்டியலில் ஒவ்வொரு கணு அது தொடர்புடைய ஒரு மதிப்பு உள்ளது, அங்கு முனைகள், கொண்டுள்ளன அத்துடன் அது அடுத்த முனையில் ஒரு சுட்டிக்காட்டி. இணைக்கப்பட்ட பட்டியலில் முக்கியமான விஷயங்களை ஒரு ஜோடி நாம் நினைவில் கொள்ள வேண்டும் என்று உள்ளது முதல் முனை எங்கே எங்கள் முதல் முனை எங்கே, பின்னர் மீண்டும் நாம், தெரியுமா அந்த வழியில் நாம் முனை அணுகலாம் என்று முதல் முனை புள்ளிகள் அதன் பின்னர் ஒரு மற்றும் பின்னர் ஒரு. பின்னர் உங்கள் இணைக்கப்பட்ட பட்டியலில் கடைசி உறுப்பு அந்த முனைக்கு தான் சுட்டிக்காட்டி உள்ளது எப்போதும் வெற்று சுட்டி போகிறது. ஒரு முனை புள்ளிகள் பூஜ்ய போது, நீங்கள் பட்டியலை இறுதி அடைந்துவிட்டீர்கள் என்று, அந்த முனை பிறகு எதுவும் இல்லை என்று, கடைசியாக ஒன்று. இங்கே இந்த திட்ட உள்ள, நீங்கள், அம்புகள் குறிப்புகள் உள்ளன என்று பார்க்க மற்றும் நீல பிரிவில் மதிப்பு சேமிக்கப்பட்ட அமைந்துள்ள, பின்னர் அதை சுட்டிக்காட்டி சிவப்பு பெட்டியில் முனை அது சுட்டிக்காட்டி உள்ளது அது பின்னர் அடுத்த முனை சுட்டி காட்டியது. இது பட்டியலில் கடைசி உறுப்பு ஏனெனில் அதனால் நீங்கள் இங்கே பார்க்க, டி முனை பூஜ்ய சுட்டி என்று. நாம் ஒரு முனை ஒரு struct வரையறை எப்படி பார்க்கிறேன். மற்றும் நாம் பல முனைகளில் வேண்டும் என்பதால், இந்த ஒரு typedef struct போகிறாள் இதில் நாம் முனையங்களின் பல்வேறு நிகழ்வுகளை போகிறது. எனவே நாம் ஒரு புதிய தரவு வகை என வரையறை. இங்கே, நாங்கள் ஒரு typedef struct முனை வேண்டும். இந்த எடுத்துக்காட்டில், நாம், முழு முனைகளில் கையாள்வதில் எனவே ஒரு முழு எண் என்ற மதிப்பு மற்றும் நாம் இன்னொரு சுட்டிக்காட்டி உள்ளது இந்த வழக்கில், ஒரு முனை ஒரு சுட்டிக்காட்டி, நாம் அடுத்த ஒரு struct முனை * வேண்டும். மற்றும் நாம் இந்த விஷயத்தை முனை நினைத்தீர்கள். இந்த இலக்கணத்தை பின்பற்ற என்று உறுதி. அந்த முனை உண்மையில் அதே சுருள் ப்ரேஸ் கீழே மேலே மேலே குறிப்பிடப்பட்ட அறிவிப்பு. என் முதல் முனை இந்த இணைக்கப்பட்ட பட்டியலில் எங்கே கண்காணிப்பதற்காக, நான் தலை என்று ஒரு முனை சுட்டிக்காட்டி உள்ளது, மற்றும் ஒரு முனை அளவு போதுமான நான் malloc இடம். அறிவிப்பு, எனினும், அந்த தலைவர் உண்மையில் ஒரு உண்மையான முனை தன்னை எதிர்த்து ஒரு முனை சுட்டிக்காட்டி இருக்கிறது. எனவே தலை உண்மையில், எந்த மதிப்பு இல்லை அது மட்டுமே என் இணைக்கப்பட்ட பட்டியலில் முதல் முனை எது என்று சுட்டிக்காட்டியுள்ளது. அது ரொம்ப முக்கியம், ஏனெனில், இணைக்கப்பட்ட பட்டியல்கள் ஒரு நல்ல உணர்வை பெற நீங்கள் சங்கிலி பராமரிக்க என்று உருவாக்கும் கண்காணிப்பதற்கு, ஒரு வரியில் மக்கள் கைகளை பிடித்து நான், இது என்று விரும்புகிறேன் ஒவ்வொரு நபரின் அடுத்த ஒரு கை கோர்த்திருக்கும். இந்த வரைபடத்தின் பார்க்க முடியாது, ஆனால் அடிப்படையில் அவர்கள் அடுத்த நபர் சுட்டிக்காட்டி வருகிறோம் அவர்களின் சங்கிலி உள்ளது. எனவே நீங்கள் எங்கு இந்த மக்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் நடந்தே செல்கிறார்கள் விரும்பினால் - அந்த மக்களின் அனைத்து கற்பனை தொடர்புடைய மதிப்புகளை கொண்டுள்ளது மேலும் வரிசையில் அடுத்த நபர் சுட்டி - நீங்கள் இணைக்கப்பட்ட பட்டியலில் நடந்தே செல்கிறார்கள் விரும்பினால், உதாரணமாக, அல்லது மதிப்புகள் திருத்த அப்படி ஒரு மதிப்பு அல்லது ஏதாவது அல்லது தேடல், பின் நீங்கள் குறிப்பிட்ட நபர் ஒரு சுட்டிக்காட்டி வேண்டும் நான். எனவே நாம் ஒரு தரவு வகையை முனை சுட்டிக்காட்டி போகிறது. இந்த உதாரணமாக, அதை கர்சர் அழைப்பு விடுங்கள். இந்த பெயரை மற்றொரு பொதுவான வழி இயக்கி அல்லது அது போன்ற ஏதாவது இருக்க வேண்டும் அதை தேடி உண்மையில் அது சுட்டி காட்டும் எந்த முனை நகர்வு ஏனெனில். இந்த இங்கே நமது கர்சர் இருக்கும். எங்கள் கர்சர் முதல் எங்கள் பட்டியலில் முதல் உறுப்பு சுட்டி. அதனால் நாம் என்ன செய்ய வேண்டும் நாம் அடிப்படையில், கர்சர் தொடர்ந்து பக்கத்தில் இருந்து பக்க அது நகரும். இந்த வழக்கில், நாம் பட்டியலில் அடுத்த உறுப்பு அதை நகர்த்த வேண்டும். வரிசைகள் கொண்ட, நாம் என்ன செய்ய வேண்டும் நாம் தான் நாம் 1 குறியீட்டெண் அதிகரிக்கும் என்றும் கூறுவேன். இந்த வழக்கில், நாம் என்ன செய்ய வேண்டும், உண்மையில், இந்த தற்போதைய நபர் சுட்டி இது நபரை கண்டுபிடிக்க என்று அடுத்த மதிப்பு இருக்க போகிறது. கர்சர் நாம் என்ன செய்யவேண்டும் பின்னர், ஒரு முனையில் சுட்டிக்காட்டி இருக்கும் பட்சத்தில் நாம் கர்சர் குறிக்கும் என்று மதிப்பு பெற வேண்டும். நாம் அந்த முனை பெற மற்றும் அதை சுட்டி காட்டும் இடத்தில் பிறகு, நாம் அந்த முனை இருக்கும்போது, கண்டுபிடிக்க வேண்டும். கர்சர் குறிக்கும் என்று உண்மையான முனை பெற, பொதுவாக நாம் (* கர்சரை) அது குறிப்பிடுகிறது. என்று நீங்கள் கர்சரை குறிக்கும் என்று உண்மையான முனை கொடுக்க வேண்டும். அதன் பின்னர், நாம் என்ன செய்ய வேண்டும் நாம் அணுக வேண்டும் என்பது கணு அடுத்த மதிப்பு என்பது என்ன. Struct உள்ளே மதிப்புகள் அணுக, அதை செய்ய, நாம் டாட் ஆபரேட்டர் வேண்டும். எனவே அது (* கர்சரை) இருக்கும். அடுத்த. ஆனால் இந்த * கர்சரை சுற்றி அடைப்புக்குறிக்குள் என்ற வகையில் ஒரு பிட் அசுத்தமாக உள்ளது அதனால் நாம் கர்சர்-> இந்த முழு அறிக்கை பதிலாக. இது ஒரு அம்புக்குறி செய்து, ஒரு கோடு, பின் ஒரு விட அடையாளம் ஆகும். கர்சர்-> அடுத்த. என்று உண்மையில் நீங்கள் முனை வரும் என்று கர்சர் புள்ளிகள். அந்த மதிப்பு அடுத்த உள்ளது. அதற்கு பதிலாக நட்சத்திரம் மற்றும் டாட் என்ற எனவே, நீங்கள் ஒரு அம்புக்குறி என்று மாற்றுகிறது. இந்த இலக்கணத்தை பயன்படுத்த முயற்சி என்று மிகவும் கவனமாக இருக்க வேண்டும். நாம் மதிப்பு அணுக வேண்டும் என்றால் இப்போது நாம், நமது கர்சர் வேண்டும் முன்னர், நாம், கர்சர்-> அடுத்த இருந்தது ஆனால் கர்சர் குறிக்கும் என்று முனை உள்ள மதிப்பு அணுக, நாங்கள் வெறுமனே என்று முனை> மதிப்பு. அங்கு இருந்து, அதை நாம் மதிப்புகள் மற்றும் வேண்டும் முனைகளில் வரையறுக்கப்பட்ட நான் என்ன தரவு வகை தான். அது ஒரு முழு எண்ணாக முனை என்றால் கர்சரை-> மதிப்பு ஒரு முழு எண்ணாக இருக்க வேண்டும். எனவே அந்த இயக்கங்கள் செய்ய முடியும், அது வேறுபட்ட மதிப்புகள், போன்ற ஒதுக்க, equalities சோதனை எனவே நீங்கள் அடுத்த நபர் உங்கள் கர்சரை நகர்த்த வேண்டும் என்றால் நீங்கள் என்ன செய்யவேண்டும் என்று, நீங்கள் உண்மையில் கர்சர் மதிப்பை மாற்ற. கர்சர் ஒரு முனை சுட்டிக்காட்டி என்பதால், நீங்கள் உண்மையான சுட்டிக்காட்டி முகவரியை மாற்ற உங்கள் பட்டியலில் அடுத்த முனையத்தின் முகவரிக்கு. இது நீங்கள் கூறு என்று சில குறியீடு உள்ளது. நான் கருத்து ஏதாவது செய்ய வேண்டும் எங்கே, ஒருவேளை நீங்கள் மதிப்பு அணுக போகிறீர்கள் எங்கே என்று அல்லது அந்த குறிப்பிட்ட முனை செய்ய ஏதாவது செய்ய. இது தொடங்க நான் என் கர்சர் ஆரம்பத்தில் சொல்ல இணைக்கப்பட்ட பட்டியலில் முதல் உறுப்பு சுட்டி போகிறது. எனவே மேலே மேலே, நான் முனை தலைவர் என வரையறுக்கப்பட்டுள்ளது. நான் முன்பு கூறியது போல, பெறலாம் மிகவும் முக்கியமானது. நீங்கள் அதை முடித்திருப்பார் முறை நீங்கள் பட்டியலில் ஒவ்வொரு உறுப்பு விடுவித்து என்பதை உறுதி செய்ய வேண்டும். நீங்கள் இனி அந்த சுட்டிகள் எந்த குறிக்க தேவையில்லை போது, நீங்கள் அந்த சுட்டிகள் அனைத்து விடுவித்து என்பதை உறுதி செய்ய வேண்டும். நீங்கள் எந்த நினைவக கசிவை தடுக்க வேண்டும் என்று ஆனால் நீங்கள் இங்கே மிகவும் கவனமாக இருக்க வேண்டும். சுட்டிகள் அனைத்து அந்த முனை புள்ளிகள் என்று பிறகு, நீங்கள் இலவச ஒருவர் முன்கூட்டியே என்றால் இழக்க போகிறோம். அது சற்று அதிக பங்குகளை செய்ய நபர் எடுத்துக்காட்டாக செல்கிறேன், நாம் இந்த வழக்கில் அவர்கள் ஒரு அசுரன் ஒரு ஏரி மீதுள்ள தவிர, இந்த மக்கள். நாம் விடுவித்து போதெல்லாம், நாம் இழக்க கூடாது என்பதை உறுதி செய்ய வேண்டும் நாம் உண்மையில் அவர்களை விடுவிக்க நான் முன் எந்த கணுக்களின் செல்லலாம். உதாரணமாக, நீங்கள் வெறுமனே இங்கே இந்த பையன் இலவச போன் இருந்தால், பின்னர் அவர் விடுதலை, ஆனால் பின்னர் இந்த தோழர்களே அனைத்து பின்னர் இழந்து வேண்டும் அவர்கள் ஆஃப் நோக்கி கீழே விழும் என்று. எனவே, அதற்கு பதிலாக, நாம் மற்ற இணைப்பை பராமரிக்க வேண்டும் என்பதை உறுதி செய்ய வேண்டும். பட்டியலில் முதல் உறுப்பு சுட்டி காட்டும் என்று எங்கள் தலைவர் சுட்டிக்காட்டி,. அது முதல் நபர் நிலைநிறுத்த ஒரு கயிறு போன்ற வகையான தான். உன்னை விடுவிக்க போது நீங்கள் செய்ய விரும்பலாம் என்ன ஒரு பட்டியல் உள்ளது - நீங்கள் முதல் முதல் உறுப்பு விடுவிக்க வேண்டும் என்றால், நீங்கள் ஒரு தற்காலிக சுட்டிக்காட்டி முடியும் அந்த புள்ளிகள் முதல் உறுப்பு என்ன ஆகும். எனவே நீங்கள் உங்கள் தற்காலிக சுட்டிக்காட்டி இங்கே சுட்டி உள்ளது. அந்த வழியில், நாங்கள் முதல் முனையத்தின் இடத்திலேயே வேண்டும். பின்னர், பின்னர் நாம், முதல் முனை விடுவிக்க வேண்டும் என்று எனக்கு தெரியும் நாம் இந்த கயிறு, இந்த தொகுப்பு, எங்கள் தலைவர், நகர முடியும் உண்மையில் முதலில் ஒரு சுட்டி காட்டியது என்பது என்ன சுட்டிக்காட்ட. இந்த தலைவர் உண்மையில் இப்போது இரண்டாவது உறுப்பு சுட்டி காட்டும். இப்போது நாம், temp சேமிக்கப்படுகிறது என்ன விடுவித்து அனுமதிக்கப்படுகிறது எனவே நாம் நமது பட்டியலில் உள்ள மற்ற கணுக்களின் அனைத்து பாதிக்கின்றது இல்லாமல் அழிக்க முடியாது. நீங்கள் இதை செய்ய முடியும் என்று மற்றொரு வழி இருக்க முடியும் ஒவ்வொரு முறையும் நீங்கள் பட்டியலில் கடைசி உறுப்பு மட்டும் விடுவித்து அவர்கள் உத்தரவாதம் தான் காரணம் எதையும் அவர் சுட்டிக்காட்டினார் முடியாது. அதனால் தான் இந்த ஒரு, பின்னர் இலவச இந்த ஒரு கட்டற்ற இந்த விடுவிக்க முடியும். நிச்சயமாக வேலை ஆனால், ஏனெனில் இணைக்கப்பட்ட பட்டியல்கள் இயல்பு மூலம், ஒரு பிட் மெதுவாக என்று நாங்கள் உடனடியாக கடந்த ஒரு செல்ல முடியாது. நாம் இணைக்கப்பட்ட பட்டியலில் ஒவ்வொரு உறுப்பு தொடரவேண்டும் என்று ஒரு வெற்று சுட்டி காட்டியது என்பதை, ஒவ்வொரு முறையும் சோதனை பின்னர் மீண்டும் நாம், பின்னர் இலவச அடையும். இந்த செயல்முறை செய்ய இருந்தால், நீங்கள் உண்மையில், இங்கே சோதனை அதை பெறலாம், பின்னர் இங்கே சோதித்து, இங்கே சோதித்து, பின்னர், அதை பெறலாம், இங்கே சரி, இங்கே சோதித்து, செல்லும் இங்கு சோதனை, பின்னர் அதை பெறலாம். என்று சற்று நேரம் எடுக்கிறது. Yeah. [மாணவர்] இது இறுதியில் ஒரு வெளியேறவும் சுட்டிக்காட்டி சேமித்து ஒரு இணைக்கப்பட்ட பட்டியலில் செய்ய முடியும் என்று? என்று நிச்சயமாக முடியும் என்று. கேள்வி மீண்டும், இது ஒரு இணைக்கப்பட்ட பட்டியலில் கட்டமைப்பு வேண்டும் சாத்தியம் நீங்கள் இணைக்கப்பட்ட பட்டியலில் இறுதி சுட்டும் ஒரு சுட்டிக்காட்டி வேண்டும் என்று? நான் சாத்தியமாகும் என்று, மற்றும் உங்கள் இணைக்கப்பட்ட பட்டியலில் ஒன்று சேர்க்க வேண்டும் என்று ஒவ்வொரு முறையும் நான் நீங்கள் அப்படி என்று சுட்டிக்காட்டி மற்றும் பொருட்களை மேம்படுத்த வேண்டும். நீங்கள் உதாரணமாக, ஒரு முனை * வால் வேண்டும். ஆனால் நீங்கள் இந்த அம்சத்தை செயல்படுத்த போது, நீங்கள், வர்த்தக பரிமாற்ற சமாதானங்களை யோசிக்க வேண்டும் இப்படி எத்தனை முறை நான், இந்த மேல் தேடி போகிறேன் எப்படி கடினமாக அது வால் கண்காணிக்கும் அத்துடன் தலை வைத்து இருக்கும் அத்துடன் என் இயக்கி, மற்றும் போன்ற விஷயங்கள். அப்படி -? >> [மாணவர்] சரி. அது சாத்தியம், ஆனால் வடிவமைப்பு முடிவுகளின் அடிப்படையில், நீங்கள் விருப்பங்கள் எடையை வேண்டும். இங்கே நீங்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் ஒவ்வொரு உறுப்பு விடுவித்து அனுமதிக்கும் என்று குறியீடு ஒரு எலும்புக்கூடு உள்ளது. மீண்டும், நான் ஒரு இணைக்கப்பட்ட பட்டியலில் மேல் தேடி நான் இருந்து, நான் கர்சர் சில வகையான வேண்டும் போகிறேன் அல்லது இயக்கி. கர்சர் NULL வரை நாம் தேடி வருகின்றனர். உங்கள் கர்சர் NULL போது மீண்டும் கூறு விரும்பவில்லை அந்த பட்டியலில் எதுவும் இல்லை என்று காரணம். அப்படியென்றால், இங்கே நான் ஒரு தற்காலிக முனை * செய்ய நான் கருத்தில் நான் என்ன சுட்டி, என் பட்டியலில் முதல் பின்னர் நான் மேலே 1 மற்றும் நான் தற்காலிக சேமிப்பு இருந்தது என்ன இலவச என் நகர்த்து. இப்போது நாம் தொடர்புடைய பட்டியல்கள் செருகுவது வந்து. நான் என் இணைக்கப்பட்ட பட்டியலில் மூன்று முனைகளில் வேண்டும், மற்றும் எளிய வழக்கு போகலாம் நாம் நமது இணைக்கப்பட்ட பட்டியலில் இறுதியில் மற்றொரு முனை சேர்க்க விரும்பும். அதை செய்ய, நாம் செய்யும் அனைத்து நாம் பயணிக்கும் என்று தான் இணைக்கப்பட்ட பட்டியலில் தற்போதைய முடிவு எங்கே கண்டுபிடிக்க, பூஜ்ய குறிக்கும் என்பது எந்த முனை எனவே - இந்த ஒரு விஷயம் - பின்னர், என்ன உண்மையில், இந்த கடைசி முனை இருக்க போவதில்லை; நாம் உண்மையில் மற்றொரு போகிறது. எனவே நாம் சேர்க்கைக்கு நீங்கள் என்ன இந்த தற்போதைய ஒரு கட்டத்தில் வேண்டும். எனவே இப்போது இந்த சிவப்பு மனிதன் இங்கே இணைக்கப்பட்ட பட்டியலில் கடைசி முனை ஆகிறது. அதனால் இணைக்கப்பட்ட பட்டியலில் கடைசி முனை தன்மை அது வெற்று சுட்டி காட்டும் என்று. அதனால் என்ன, நாம் செய்ய வேண்டும் null இந்த சிவப்பு பையனின் சுட்டிக்காட்டி அமைக்க உள்ளது. அங்கு. ஆனால் நாம் இரண்டாவது மற்றும் மூன்றாவது ஒரு இடையே ஒரு முனை செருக என்ன தேவை என்றால்? நாம் உறுதி செய்ய வேண்டும், ஏனெனில் ஒரு மிக எளிய என்று நாம் நமது இணைக்கப்பட்ட பட்டியலில் எந்த முனை போக விடமாட்டேன் என்று. நாம் என்ன செய்ய வேண்டும் நாம் ஒவ்வொருவரும் நம்மை தொகுப்பாளராக என்று உள்ளது. உதாரணமாக, இந்த இரண்டாவது ஒரு அழைப்பு நாம். நீங்கள் கூறியது என்றால் இரண்டாவது இப்போது இந்த புதிய ஒரு புள்ளியை நீங்கள் இந்த பையன் தொலைந்து போன ஏற்படுத்தும் என்று பின், அங்கு ஒரு சுட்டிக்காட்டி செய்து அவருக்கு எந்த இணைப்பு இல்லை என்பதால். அதற்கு பதிலாக - நான் மீண்டும் இந்த வரைய வேண்டும். என் கலை திறன்களை மன்னிக்கவும். நாம் தான் நேரடியாக புதிய ஒரு 2 இணைக்க முடியாது என்று. நாம் கடந்த ஒரு பிடி என்பதை உறுதி செய்ய வேண்டும். நாம் என்ன செய்ய வேண்டும், ஒரு தற்காலிக சுட்டிக்காட்டி உள்ளது அன்று சேர்க்கப்பட்டிருக்கும் வேண்டும் நடக்கிறது என்று உறுப்பு வேண்டும். எனவே நாம் ஒரு தற்காலிக சுட்டிக்காட்டி இருக்கிறது. இந்த மூன்றாவது ஒரு பாடல் வைக்கப்பட்டுள்ளார் என்று தெரியும், 2 இப்போது எங்கள் புதிய இணைப்பு பெறலாம். இந்த புதிய சிவப்பு பையன் 2 முதல் 3 இருக்க போகிறார் என்றால், பிறகு என்ன அந்த பையனின் சுட்டிக்காட்டி சுட்டி போகிறது? >> [மாணவர்] டெம்ப். Temp. Yeah. எனவே இந்த சிவப்பு பையன் அடுத்த மதிப்பு திறக்க போகிறது. நீங்கள் தொடர்புடைய பட்டியல்கள் செருகுவது போது, நாம் எப்படி என்று பார்த்தேன் எளிதில், ஒரு தற்காலிக அணி உருவாக்கப்படுவது முடிவில் ஏதாவது சேர்க்க அல்லது எங்கள் அணி மத்தியில் மீண்டும் ஒன்று சேர்க்க வேண்டும் என்றால், அது இன்னும் சுற்றி உரசிக்கொண்டு ஒரு பிட் எடுக்கும். நீங்கள் விரும்பினால், உதாரணமாக, ஒரு வரிசைப்படுத்தப்பட்ட இணைக்கப்பட்ட பட்டியலில் இல்லை பின்னர் நீங்கள் அந்த செலவுகள் மற்றும் பயன்களை மதிப்பிட வகையான வேண்டும் நீங்கள் ஒரு வரிசைப்படுத்தப்பட்ட வரிசை வேண்டும் என்றால், நீ அதை செருக என்று ஒவ்வொரு முறையும் பொருள், ஏனெனில் அது சற்று நேரம் எடுத்து நடக்கிறது. உங்களுக்கு பிறகு விரும்பினால் எனினும், நாம் காணலாம் என நாம், வேண்டும் நீங்கள் எல்லாம் சரியாக இருக்கிறதா என்று ஒரு இணைக்கப்பட்ட பட்டியலில் மூலம் தேடல், அது எளிதாக இருக்கும். எனவே நீங்கள் அதை செலவுகள் மற்றும் பயன்களை மதிப்பிட வேண்டும். ஒரு இணைக்கப்பட்ட பட்டியலில் சேர்க்க வேறு வழி ஒரு பட்டியல் ஆரம்பத்தில் செருக உள்ளது. நாம் இங்கே நமது ஆதார வரைந்து என்றால் - இந்த எங்கள் தலைவர் - பின்னர் இந்த மக்கள், அதை இணைக்க வேண்டும் பின்னர் நாம், தொடக்கத்தில் செருக ஒரு புதிய கணு வேண்டும் பிறகு நாம் என்ன செய்ய வேண்டும்? இப்போது, நான் நீல சிவப்பு இணைக்க வேண்டும் என்று தவறு என்ன என்று முதல் ஒரு காரணம்? இங்கே என்ன நடக்கும்? இந்த மூன்று அனைத்து இழந்தது. நாங்கள் அதை செய்ய விரும்பவில்லை. மீண்டும், நாம் தற்காலிக சுட்டிக்காட்டி சில வகையான வேண்டும் என்று புரிந்துகொண்டேன். இந்த நபர் ஒரு தற்காலிக புள்ளி வேண்டும் என்பதை தேர்வு செய்யலாம். நாம் தற்காலிக நீல ஒரு புள்ளியில் முடியும் பின்னர் நீல சிவப்பு புள்ளி. நாம் உண்மையில் பார்க்க வேண்டும், ஏனெனில் நான் இங்கே மக்கள் பயன்படுத்தி நான் ஏன் காரணம் மக்கள் மீது வைத்திருக்கும் நாம் அவர்களுக்கு ஒரு இணைப்பு என்று உறுதி செய்யும் நாம் அது போன்ற மற்றொரு கையால் அல்லது வேறு ஏதாவது செல்லலாம் முன். இப்போது நாம் இணைக்கப்பட்ட பட்டியல்கள் ஒரு உணர்வு உள்ளது - நாங்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் உருவாக்க எப்படி மற்றும் ஒரு முனைக்கு வகை வரையறை கொண்ட ஒரு அமைப்பு உருவாக்க பின்னர் அந்த இணைக்கப்பட்ட பட்டியலில் தலையில் சுட்டிக்காட்டி வேண்டும் என்று செய்து - ஒரு முறை, நாம் என்று நாம் ஒரு வரிசை பயணிக்க எப்படி தெரியும் , பல்வேறு கூறுகளை அணுக, நாம் செருக எப்படி தெரியும் நாம் அவர்களை விடுவிக்க வேண்டும் என்று எனக்கு தெரியும் நாம் எழுத்துப்பிழைகள் பெற முடியும். வழக்கம் போல், நீங்கள் தொடர்புடைய பட்டியல்கள் இயக்க பயன்படுத்தப்படும் விடும் என்று கேள்விகள் ஒரு பகுதி இல்லை மற்றும் வரிசைகளை மற்றும் அடுக்குகள் வெவ்வேறு கட்டமைப்புகள். நாம் எழுத்துப்பிழைகள் செல்ல முடியும். எழுத்துப்பிழைகள் விநியோகம் குறியீடு உள்ள முக்கியத்துவம் கோப்புகள் ஒரு ஜோடி உள்ளது. முதலில் நாம், நாம் இங்கே இந்த Makefile வேண்டும் என்று நோட்டீஸ் நாம் உண்மையில் முன் ஏற்பட்டது இல்லை. நீங்கள் pset5 கோப்புறையை உள்ளே பார்த்து, நீங்கள், நீங்கள் ஒரு. H கோப்பு என்று கவனிக்க என்று நீங்கள் இரண்டு. கேட்ச் கோப்புகள் இல்லை. என்ன இந்த Makefile செய்யும் முன், நாம் தான் நிரல் பெயர் பின்னர் செய்ய தட்டச்சு மற்றும் வேண்டும் மற்றும் நாம் தொகுப்பி இல் இயற்றப்பட்ட இந்த வாதங்கள் மற்றும் கொடிகள் அனைத்து பார்க்க வேண்டும். என்ன செய்வது Makefile நமக்கு ஒரே நேரத்தில் பல கோப்புகளை தொகுக்க அனுமதிக்கிறது நாம் விரும்பும் கொடிகள் இல் அனுப்ப. இங்கே நாம் ஒரு தலைப்பு கோப்பு இங்கே இருக்கிறது பார்க்க. நாம் உண்மையில் இரண்டு மூல கோப்புகள் இல்லை. நாம் speller.c மற்றும் dictionary.c வேண்டும். நீங்கள் விரும்பினால் Makefile திருத்த வரலாம். நீங்கள் சுத்தமாக தட்டச்சு என்று இங்கே கவனிக்க, அது என்ன எதுவும் நீக்குகிறது உண்மையில் அந்த அடிப்படை ஆகும். நீங்கள் ஒரு அடுக்கு தவறு செய்து இருந்தால், அடிப்படையில் ஒரு முக்கிய டம்ப் கிடைக்கும். இந்த அசிங்கமான சிறிய கோப்பு மைய என்று உங்கள் அடைவில் தோன்றும். அதை சுத்தம் செய்ய என்று நீக்க வேண்டும் என்று நான் நினைக்கிறேன். அது எந்த exe கோப்புகளை நீக்குகிறது மற்றும். ஓ கோப்புகள். அது dictionary.h ஒரு பார்க்கலாம். இது ஒரு அகராதி செயல்பாட்டை அறிவிக்கிறது என்கிறார். நாம் அகராதியில் எந்த வார்த்தை ஒரு அதிகபட்ச நீளம் உள்ளது. இந்த நீண்ட வார்த்தைகளை போகிறது என்று. இது நீளம் 45 தான். எனவே நாம் அந்த நீளம் தாண்டும் என்று எந்த வார்த்தைகளை வேண்டும் போவதில்லை. இங்கே நாம் வெறும் செயல்பாடு முன்மாதிரிகள் உண்டு. என்று நாம் இந்த pset செய்து இருக்க வேண்டும் என்ன காரணம், நாம் உண்மையான செயல்படுத்துவது இல்லை. நாம் இங்கே பெரிய கோப்புகளை கையாளும் என்பதை பின்னர் ஆனால் என்ன செய்கிறது என்று ஒரு பெரிய அளவில் செயல்பாடு, அது ஒரு. h கோப்பு உள்ளது பயனுள்ளதாய் உங்கள் குறியீடு படித்து அல்லது பயன்படுத்தி வேறு என்ன நடக்கிறது புரிந்து கொள்ள முடியும் என்று. நீங்கள் ஹெஷ் அட்டவணைகள் அல்லது நேர்மாறாகவும் செய்தால் மற்றும் அவர்கள் செயல்படுத்த வேண்டும் முயற்சிக்கிறது. பின்னர் அவர்கள், என் சுமை செயல்பாடு கூறுவேன் உண்மையான செயல்படுத்த வேறுபடுகின்றன போகிறது, ஆனால் இந்த மாதிரி மாற்றிக்கொள்ள மாட்டேன். இங்கே நாம் ஒரு குறிப்பிட்ட வார்த்தையை அகராதியில் என்றால் உண்மை கொடுக்கிறது இது, சோதனை. நாம் அடிப்படையில் ஒரு அகராதியை கோப்பில் எடுத்து சுமை, வேண்டும் பின்னர் சில தரவு கட்டமைப்பு அதை ஏற்றுகிறது. நாம், என போது, உங்கள் அகராதியில் அளவு கொடுக்கிறது இது, அளவு இல்லை , அது எவ்வளவு வார்த்தைகள் சேமிக்கப்படும் பின்னர் நீங்கள் எடுத்து இருக்கலாம் என்று அனைத்து நினைவக விடுவிக்கிறது, இறக்கும் உங்கள் அகராதியில் செய்யும் போது. அது dictionary.c ஒரு பார்க்கலாம். நாம் அது இப்போது அதை இந்த TODOs அனைத்து கொண்டுள்ளது தவிர, dictionary.h போலவே தெரிகிறது என்று பார்க்க. அதனால் உங்கள் வேலை. இறுதியில், இந்த குறியீடு அனைத்து speller.c நிரப்புவதன். Dictionary.c, ரன் போது, உண்மையில், எதையும் செய்ய போவதில்லை நாம் பிழைத்திருத்தி உண்மையான செயல்படுத்த பார்க்க speller.c நோக்கி பாருங்கள். நீங்கள், இந்த குறியீடு எந்த திருத்த வேண்டும் போவதில்லை கூட இது, படிக்க சுமை என்று புரிந்து கொள்ள முக்கியமானது, நான் காசோலை பேசுகிறேன், இப்போது, எனக்கு அதை வரைய, செயல்பாடு எவ்வாறு பார்க்க. நாம் அது சரியான பயன்பாட்டுக்கு சோதனை என்று பார்க்க. அடிப்படையில், யாரோ speller இயங்கும் போது, இது விருப்ப என்று குறிக்கிறது ஒரு முன்னிருப்பு அகராதி கோப்பு இருக்க நடக்கிறது ஏனெனில் அவர்கள் ஒரு அகராதியை கோப்பில் அனுப்ப வேண்டும். பின்னர் அவர்கள் எழுத்துப்பிழை சோதிக்க வேண்டும் உரையில் அனுப்ப வேண்டும். நேரம் rusage ஒப்பந்தங்கள் நாம் பின்னர் இந்த pset ஒரு பகுதியாக பேசுகிறேன் எந்த காரணம் ஒரு செயல்பாட்டை பிழைத்திருத்தி உழைக்கும் வருகிறது மட்டும் ஆனால் உண்மையில் அது வேகமாக இருக்கிறது பெறுவது. Rusage உள்ளே வர அமைந்துள்ள மற்றும் பிறகு தான் இங்கே, நாங்கள் சுமையை இது, நம் dictionary.c கோப்புகளை ஒன்று முதல் அழைப்பு பார்க்க. வெற்றி மீது உண்மையான, தோல்வி மீது பொய் - சுமை உண்மையா பொய்யா கொடுக்கிறது. அகராதி ஒழுங்காக ஏற்ற என்றால் அதனால், பின்னர் speller.c 1 திருப்பி விட்டு வெளியேறினார். அதை ஒழுங்காக சுமை செய்தால், ஆனால், அது தொடர்ந்து நடக்கிறது. , நாம் தொடர்ந்து, நாம் இங்கே நான் / சில கோப்பு ஓ பார்க்க அதை உரை கோப்பை திறந்து கையாள்வதில் வேண்டும் நடக்கிறது அங்கு. இங்கே, என்ன செய்கிறது உரை ஒவ்வொரு ஒற்றை வார்த்தை எழுத்துப்பிழை சரிபார்த்து உள்ளது. எனவே speller.c சரி இங்கே என்ன உரை கோப்பில் வார்த்தைகளில் ஒவ்வொரு தேடி பின்னர் அகராதியில் அவற்றை சரி. இங்கே, நாங்கள் சோதனை உண்மையான அல்லது கொடுக்கிறது என்பதை என்று தவறுதலாக எழுதப்பட்டதாக ஒரு பூலியன் வேண்டும். வார்த்தை அகராதியில் உண்மையில் என்றால், காசோலை உண்மை வரும். அந்த வார்த்தை தவறுதலாக எழுதப்பட்டது என்று பொருள். அதனால் தவறுதலாக எழுதப்பட்டது தவறான வேண்டும், மற்றும் நாம் அங்கு களமிறங்கினார் ஏன் என்று, அடையாளம் தான். நாம் செல்லும் வைத்து, பின்னர் அதை வார்த்தைகளை தவறுதலாக எழுதப்பட்டது எத்தனை கண்காணிக்கும் கோப்பில் உள்ளன. அதை தொடர்ந்து, மற்றும் கோப்பு நிறைவடைகிறது. பின்னர் இங்கே, அதை நீங்கள் தான் எவ்வளவு தவறுதலாக எழுதப்பட்டது வார்த்தைகள் தெரிவித்துள்ளது. அது அகராதி ஏற்ற எவ்வளவு நேரம் கணக்கிட்டு அது பார்க்க எவ்வளவு நேரம் எவ்வளவு அளவு கணக்கிட எடுத்து நேரம், இது, நாம் செல்வோம் என, மிக சிறிய இருக்க வேண்டும் பின்னர் எவ்வளவு நேரம் அகராதி இறக்கும் வரை நடந்தது. இங்கு நாம் இங்கே இறக்கும் அழைப்பை பார்க்க மேலே. நாம் இங்கே அளவு சோதிக்க விரும்பினால், நாம் இங்கே இது அகராதி அளவை நிர்ணயிக்கும் அளவு அழைப்பு என்று பார்க்க. ஆர். இந்த pset எங்கள் பணி அகராதி ஏற்ற எந்த சுமை, செயல்படுத்த வேண்டும் தரவு கட்டமைப்பு - நீங்கள் எந்த ஒரு ஹாஷ் அட்டவணை அல்லது ஒரு முயற்சி - அகராதியில் இருந்து சொற்களை. நீங்கள் அகராதியில் வார்த்தைகள் எண்ணிக்கை திரும்பி வரும் அளவு, இல்லை. நீங்கள் ஒரு ஸ்மார்ட் வழியில் சுமை செயல்படுத்த வேண்டும் மற்றும், பின்னர் அளவு மிகவும் எளிதாக இருக்க வேண்டும். பிறகு நீங்கள் ஒரு வார்த்தை அகராதியில் உள்ளதா என்பதை அறியவும் இது, சோதனை. எனவே speller.c ஒரு சரம் இல் கடந்து, பின்னர் நீங்கள் என்பதை அந்த சரம் சரிபார்க்க வேண்டும் உங்கள் அகராதியில் காணப்படுகிறது. நாம் பொதுவாக நிலையான அகராதிகள் என்று பாருங்கள், ஆனால் இந்த pset உள்ள, அடிப்படையில் எந்த அகராதியில் எந்த மொழியில் உள்ள நிறைவேற்றியது. நாம் வெறும் வார்த்தை உள்ளே இருக்கும் என கருதுவது கூடாது. வார்த்தை FOOBAR நாம் உள்ளே செல்ல ஒரு குறிப்பிட்ட அகராதியில் வரையறுக்கப்பட்ட மற்றும் நாம் நினைவு இருந்து அகராதி வெறுமையாக்கப்படுகிறது இதில், இறக்கும். முதல், நான் ஹாஷ் அட்டவணை முறை மேல் செல்ல விரும்புகிறேன் நாம் அந்த நான்கு செயல்பாடுகளை அனைத்து செயல்படுத்த எப்படி பற்றி, பின்னர் நான், நாம் அந்த நான்கு செயல்பாடுகளை செயல்படுத்த எப்படி, முறை முயற்சி மேல் செல்கிறேன் மற்றும் சில பொது குறிப்புகள் பற்றி இறுதியில் பேச்சு நீங்கள் pset செய்யும் போது மேலும் நீங்கள் பயன்படுத்த முடியும் என்பதை நினைவு கசிவுகள் சரி பார்க்கிறது Valgrind. இன் ஹாஷ் அட்டவணை முறை வர வேண்டும். ஒரு ஹாஷ் அட்டவணை வாளிகள் பட்டியலை கொண்டுள்ளது. ஒவ்வொரு மதிப்பு, ஒவ்வொரு வார்த்தையும், இந்த வாளிகள் ஒரு செல்ல போகிறது. ஒரு ஹாஷ் அட்டவணை பலவகையில் சமமாக நீங்கள் கடந்து செல்லும் என்று இந்த மதிப்புகள் அனைத்து விநியோகிக்கிறது பின்னர் அந்த வாளி அவர்களை உருவாக்கியிருக்கிறது ஒவ்வொரு வாளி இது மதிப்புகள் சமமான எண்ணிக்கையில் பற்றி கொண்டுள்ளது. ஒரு ஹாஷ் அட்டவணை கட்டமைப்பு, நாம் இணைக்கப்பட்ட பட்டியல்கள் ஒரு அணி வேண்டும். அந்த மதிப்பு சேர்ந்தவை வேண்டும் நாம் எங்கே மதிப்பு போகும்போது நாம் என்ன இருக்கிறது, நாம், சோதனை இது வாளி அது சொந்தமானது, பின்னர் அந்த வாளி தொடர்புடைய இணைக்கப்பட்ட பட்டியலில் வைக்கவும். இங்கே, நான் உங்களிடம் ஒரு ஹாஷ் சார்பு ஆகும். அது ஒரு முழு எண்ணாக ஹாஷ் அட்டவணை உள்ளது. எனவே முதல் வாளி ஐந்து, 10 கீழே எந்த முழு முதல் வாளி போக. எந்த 10 மேலே முழு ஆனால் கீழே இரண்டாவது வகையில் 20 கோ, பின்னர் மிகவும் மற்றும் மிகவும் முன்னும் பின்னும். எனக்கு, ஒவ்வொரு வாளி இந்த எண்களை குறிக்கும். எனினும், நான் உதாரணமாக, 50 செல்வதை என்று சொல்ல. முதல் மூன்று பத்து எண்கள் ஒரு வரம்பு இருக்க வேண்டும் என தோன்றுகிறது. ஆனால் நான் என் ஹாஷ் அட்டவணை, முழு எந்த வகையான கொள்ள அனுமதிக்க வேண்டும் அதனால் நான் கடந்த வாளி கொண்டு 30 எல்லாவற்றிற்கும் மேலாக எண்கள் அவுட் வடிகட்ட வேண்டும். அதனால், அந்த சமநிலையற்ற ஹாஷ் அட்டவணை ஒரு வகையான விளைவிக்கும். வலியுறுத்தி, ஒரு ஹாஷ் அட்டவணை மட்டும் வாளிகள் ஒரு வரிசை உள்ளது அங்கு ஒவ்வொரு வாளி ஒரு இணைக்கப்பட்ட பட்டியலில் உள்ளது. ஒவ்வொரு மதிப்பு சென்று அங்கு மற்றும் அது செல்கிறது இது வாளி, தீர்மானிக்க, நீங்கள் ஒரு ஹாஷ் சார்பு என்று என்ன வேண்டும் போகிறாய் பின்னர் ஒரு மதிப்பு எடுத்து இந்த மதிப்பு ஒரு குறிப்பிட்ட வாளி ஒத்துள்ளது என்கிறார். எனவே இந்த உதாரணம் மேலே, என் ஹாஷ் சார்பு ஒவ்வொரு மதிப்பு நடந்தது. அது 10 க்கும் குறைவாக இருந்தது என்பதை சோதிக்க. அது இருந்தால், அது முதல் வாளி அதை ஏற்படும். அது 20 க்கும் குறைவான என்று சரிபார்த்து உண்மை என்றால் இரண்டாவது கொண்டு அதனை, காசோலைகள் அது 30 க்கும் குறைவாக, மற்றும் என்றால், மூன்றாவது வாளி கொண்டு அதனை பின்னர் அனைத்து வேறு ஒரு நான்காவது வாளி ஆகும். நீங்கள் ஒரு மதிப்பு இருக்கிறது போதெல்லாம், உங்கள் ஹாஷ் சார்பு பொருத்தமான வாளி அந்த மதிப்பை. ஹாஷ் சார்பு அடிப்படையில் நீங்கள் எப்படி பல வாளிகள் என்று வேண்டும். உங்கள் ஹாஷ் அட்டவணை அளவு, நீங்கள் வாளிகள் எண்ணிக்கை, என்று நீங்கள் முடிவு, உங்களை ஒரு நிலையான எண் இருக்கும் நடக்கிறது ஆனால் அது ஒரு நிலையான எண் இருக்க போகிறது. ஒவ்வொரு முக்கிய செல்கிறது இது வாளி தீர்மானிக்க என்று நம்பி இருக்கும் உங்கள் ஹாஷ் சார்பு எனவே இது பரவலாக அந்த போன்ற. இப்போது இணைக்கப்பட்ட பட்டியலில் எங்கள் செயல்படுத்த, ஹாஷ் அட்டவணை ஒவ்வொரு கணு ஒத்த உண்மையில் ஒரு வகை எரிப்பதை வேண்டும் என்று. எனவே, இந்த வார்த்தை என்று ஒரு கரி வரிசை பின்னர் அடுத்த முனை மற்றொரு சுட்டிக்காட்டி உள்ளது இது ஒரு இணைக்கப்பட்ட பட்டியலில் இருக்க போகிறது என்பதால் அர்த்தமுள்ளதாக. நாம் பட்டியல்கள் இணைக்கப்பட்ட ஞாபகம், நான் தலை என்று ஒரு முனை * செய்து அந்த இணைக்கப்பட்ட பட்டியலில் முதல் முனை சுட்டி காட்டியது. ஆனால் நம் ஹாஷ் அட்டவணை, நாம் பல இணைக்கப்பட்ட பட்டியலில் இல்லாததால், என்ன வேண்டும் நாம் நம் ஹாஷ் அட்டவணை, போன்ற வேண்டும் "என்று ஒரு வாளி என்ன ஆகும்?" ஒரு வாளி, ஒரு முனை சுட்டிகள் பட்டியல் அதனால் வாளி ஒவ்வொரு உறுப்பு உண்மையில் அதன் தொடர்புடைய இணைக்கப்பட்ட பட்டியலில் சுட்டி. இந்த திட்ட செல்ல, நீங்கள், வாளிகள் தங்களை அம்புகள் என்று பார்க்க இல்லை உண்மையான முனைகள். ஹெஷ் செயல்பாடுகளை ஒரு அத்தியாவசிய சொத்து அவர்கள் தீர்மானிக்கும் என்று உள்ளது. அதாவது போதெல்லாம் நீங்கள் புல எண் 2, என்று அது எப்போதும் ஒரே வாளி திரும்ப வேண்டும். மீண்டும் மீண்டும் செய்தால், ஹாஷ் சார்பு செல்கிறது என்று ஒவ்வொரு மதிப்பு, அதே குறியீட்டு பெற உள்ளது. உங்கள் ஹாஷ் சார்பு வரிசைக்கு குறியீட்டு கொடுக்கிறது மிகவும் அந்த மதிப்பு எங்கிருந்து. நான் முன்பு கூறியது போல, வாளிகள் எண்ணிக்கை, சரி செய்யப்பட்டது எனவே நீங்கள் திரும்ப உங்கள் குறியீட்டு வாளிகள் எண்ணிக்கை குறைவாக இருக்க வேண்டும் ஆனால் 0 விட. நாம் அதற்கு பதிலாக ஒரு ஒற்றை இணைக்கப்பட்ட பட்டியலில் ஹெஷ் செயல்பாடுகளை கொண்டு காரணம் அல்லது ஒரு ஒற்றை வரிசை நாம் மிகவும் எளிதாக ஒரு குறிப்பிட்ட பகுதியை செல்ல முடியும் வேண்டும் என்று நாம் ஒரு மதிப்பு தன்மை தெரிந்தால் - அதற்கு பதிலாக முழு முழு அகராதி மூலம் தேட இருந்து, இது ஒரு குறிப்பிட்ட பகுதி செல்ல முடியும். உங்கள் ஹாஷ் சார்பு, என்று வெறுமனே கணக்கில் எடுத்து கொள்ள வேண்டும் ஒவ்வொரு வாளி சுமார் விசைகளை ஒரே உள்ளன. ஹாஷ் அட்டவணை இணைக்கப்பட்ட பட்டியல்கள் ஒரு தொடர், முதல் பின்னர் இணைக்கப்பட்ட பட்டியலில் தங்களை மேற்பட்ட முனை நடக்க போகிறது. முந்தைய எடுத்துக்காட்டில், அவர்கள் சம இல்லை என்றாலும் இரண்டு வெவ்வேறு எண்கள்,, hashed போது, அதே குறியீட்டு திரும்பலாம். எனவே வார்த்தைகளை கையாளும் போது, ஒரு சொல் hashed போது மற்றொரு வார்த்தை அதே ஹாஷ் மதிப்பு இருக்கும். நாம் hashed போது, ஒரு முனை வேண்டும் என்று, நாம் ஒரு மோதல் அழைக்க என்ன அந்த வாளி இணைக்கப்பட்ட பட்டியல் காலியாக உள்ளது. நாம் அங்கு அழைத்து அந்த நுட்பம், ஆய்வு நேராக இருக்கும் நீங்கள் இணைக்கப்பட்ட பட்டியலில் சென்று அந்த முனை சேர்க்க விரும்பும் பின்னர் கண்டறிவதற்கான நீங்கள் ஒரு மோதல் ஏனெனில். நீங்கள் சொல்வது சரி, இங்கே ஒரு வர்த்தக பரிமாற்றம் இருக்கலாம் என்று பார்க்க முடியும்? நீங்கள் ஒரு மிக சிறிய ஹாஷ் அட்டவணை, வாளிகள் ஒரு மிக சிறிய எண்ணிக்கையிலான, இருந்தால் நீங்கள் மோதல்கள் நிறைய போகிறது. ஆனால் நீங்கள், ஒரு மிக பெரிய ஹாஷ் அட்டவணை செய்தால் ஒருவேளை நீங்கள், மோதல்கள் குறைக்க போகிறோம் ஆனால் அது ஒரு மிக பெரிய தரவு கட்டமைப்பு இருக்க போகிறது. அந்த வர்த்தக பரிமாற்ற சமாதானங்களை இருக்கும் நடக்கிறது. எனவே நீங்கள் உங்கள் pset செய்யும் போது, சுற்றி விளையாட முயற்சி ஒருவேளை ஒரு சிறிய ஹாஷ் அட்டவணை தயாரித்தல் இடையே ஆனால் அது வெவ்வேறு கூறுகளை பிரயாணம் ஒரு பிட் இனி எடுக்க நடக்கிறது என்று தெரிந்தும் அந்த தொடர்புடைய பட்டியல்கள். என்ன சுமை செய்ய போகிறாள் என்று அகராதியில் ஒவ்வொரு வார்த்தையும் மீது மீண்டும் கூறு உள்ளது. அது அகராதி கோப்பு ஒரு சுட்டிக்காட்டி கடந்து செல்கிறது. எனவே நீங்கள் pset4 உள்ள மாஸ்டர் என்று நான் / O செயல்பாடுகளுடன் கோப்பை பயன்படுத்தி கொள்ள போகிறோம் மற்றும் அகராதியில் ஒவ்வொரு வார்த்தையும் மீது மீண்டும் கூறு. நீங்கள், ஒரு புதிய கணு ஆக அகராதியில் ஒவ்வொரு வார்த்தையும் வேண்டும் உங்கள் அகராதியில் தரவு கட்டமைப்பு உள்ளே அந்த முனைகளில் ஒவ்வொரு வைக்க போகிறோம். நீங்கள் ஒரு புதிய சொல் கிடைக்கும் போதெல்லாம், அதை ஒரு முனை போகிறாள் என்று. அதனால் நீங்கள் இல்லை என்று ஒவ்வொரு புதிய வார்த்தை ஒரு முனை சுட்டிக்காட்டி நேரே சென்று malloc முடியும். இங்கே நான் என் முனை சுட்டிக்காட்டி new_node அழைப்பு மற்றும் நான் என்ன mallocing நான்? ஒரு முனை அளவு. அகராதி சேமிக்கப்படும் ஏனெனில் பிறகு, ஒரு கோப்பை இருந்து உண்மையான சரம் வாசிக்க பின்னர் ஒரு வார்த்தை நாம் பயன்படுத்தி கொள்ள முடியும் என்ன ஒரு புதிய வரி மூலம் , செயல்பாடு fscanf உள்ளது அதன்படி, கோப்பு, நாம் கடந்து என்று அகராதி கோப்பு அது ஒரு சரம் கோப்பு ஸ்கேன் மற்றும் கடைசி விவாதம் இடங்களில் அந்த சரம். நீங்கள் நாம் சென்ற போது விரிவுரைகள் ஒரு, மீண்டும் நினைவு என்றால் மற்றும் வகையான, CS50 நூலகம் மீண்டும் அடுக்குகளை உரிக்கப்பட்டு நாம் அங்கு fscanf ஒரு செயல்படுத்தல் பார்த்தேன். Fscanf செல்ல, நாம், நாம் படித்து என்று கோப்பு இல்லை அந்த கோப்பு ஒரு சரம் தேடுகிறீர்கள், மற்றும் நாம் அதை வைத்து நீங்கள் new_node ஒரு முனை சுட்டிக்காட்டி ஏனெனில் இங்கு நான் new_node-> வார்த்தை இல்லை, ஒரு உண்மையான முனை. அதனால் நான் new_node சொல்கிறேன், நான் அதை சுட்டி காட்டும் என்று முனை போக வேண்டும் பின்னர் வார்த்தைக்கு மதிப்பு ஒதுக்க. நாம் அந்த வார்த்தையை எடுத்து ஹாஷ் அட்டவணை செருக, அதை விரும்பவில்லை. நாம் ஒரு முனை சுட்டிக்காட்டி new_node என்று உணர நாம் அந்த முனை முகவரி என்ன தெரிந்துகொள்ள வேண்டும் என்று நீங்கள் ஏனெனில் நாம் ஏனெனில் struct முணையங்களுக்கு தங்களை கட்டமைப்பு, இது செருக போது அவர்கள் ஒரு புதிய முனையில் ஒரு சுட்டிக்காட்டி இருக்கிறது என்று. எனவே பின்னர் சுட்டிக்காட்ட போகிறது என்று முனை முகவரி என்ன? அந்த முகவரியை new_node போகிறது. அந்த உணர்வு ஏற்படுத்தும், நாம் ஏன் ஒரு முனை பதிலாக ஒரு முனை * new_node செய்கிறாய்? சரி. நாம் ஒரு வார்த்தை உண்டு. அந்த மதிப்பு new_node-> சொல். என்று நாம் உள்ளீடு செய்ய வேண்டும் என்று அகராதியில் இருந்து சொல் உள்ளது. நாம் அது சரம் எங்கள் ஹாஷ் சார்பு அழைக்க வேண்டும், அதனால் என்ன செய்ய வேண்டும் என்று எங்கள் ஹாஷ் சார்பு, ஒரு சரம் எடுத்து பின்னர் எங்களுக்கு ஒரு முழு எண் கொடுக்கிறது ஏனெனில் அந்த முழு என்று குறியீட்டு உள்ள hashtable என்று வாளி குறிக்கப்படுகிறது குறியீட்டு எங்கே. அந்த குறியீட்டு எடுக்க வேண்டும் பின்னர் ஹாஷ் அட்டவணை அந்த குறியீட்டு சென்று பின்னர் new_node உள்ள முனை செருக என்று இணைக்கப்பட்ட பட்டியலில் பயன்படுத்த. இருப்பினும், நீங்கள் உங்கள் முனை சேர்க்க முடிவு என்று நினைவில் நீங்கள் வரிசைப்படுத்த வேண்டும் என்றால் அது மத்தியில் என்று அல்லது தொடக்கத்தில் அல்லது இறுதியில், உங்கள் கடைசி முனை எப்போதும் வெற்று சுட்டி காட்டும் என்று உறுதி நமது இணைக்கப்பட்ட பட்டியலில் கடைசி உறுப்பு எங்கே நாம் என்று ஒரே வழி என்று காரணம். அளவு ஒரு அகராதியில் வார்த்தைகள் எண்ணிக்கை பிரதிபலிக்கிறது என்று ஒரு முழு எனில், பிறகு இதை செய்ய ஒரு வழி அளவு என்று எப்போது என்று நாம் ஹாஷ் அட்டவணை ஒவ்வொரு உறுப்பு செல்ல பின்னர் ஹாஷ் அட்டவணை உள்ள ஒவ்வொரு இணைக்கப்பட்ட பட்டியலில் மூலம் மீண்டும் கூறு பின்னர் 1 நமது கவுண்டர் 1 அதிகரித்து, அந்த நீளம் கணக்கிட. ஆனால் அளவு என்று ஒவ்வொரு முறையும், ஒரு நீண்ட நேரம் எடுத்து நடக்கிறது நாம் ஒவ்வொரு இணைக்கப்பட்ட பட்டியலில் ஆய்வு நேர்கோட்டில் இருக்க போகிறோம் என்பதால். நீங்கள் கடந்து எத்தனை வார்த்தைகள் கண்காணிக்க என்றால், அதற்கு பதிலாக, இது மிகவும் எளிதாக இருக்கும் நடக்கிறது உங்கள் சுமை செயல்பாடு ஒரு கவுண்டர் ஆகியவை மிகவும் பின் தேவையான புதுப்பித்தல்கள், பின்னர் எதிர்ப்பு என்று, நீ ஒரு உலக மாறி அதை அமைக்க வேண்டும், அளவு மூலம் அணுக முடியும். அதனால் என்ன அளவு எளிமையாக செய்ய ஒரு வரி இருக்கிறது, நான், எனது மதிப்பை திரும்ப நீங்கள் ஏற்கனவே சுமை கையாளப்பட எந்த அகராதியை அளவு,. என்று, நான் சொல்லும் போது உங்களுக்கு ஒரு பயனுள்ளதாக வழியில் சுமை செயல்படுத்த நான் பொருள் என்ன பின்னர் அளவு மிகவும் எளிதாக இருக்கும். எனவே இப்போது நாம் பார்க்க வேண்டும். இப்போது நாம், உள்ளீடு உரை கோப்பு வார்த்தைகளை கையாள்வதில் எனவே நாம் அந்த உள்ளீடு வார்த்தைகள் என்பதை அனைத்து சோதனை செய்ய போகிறோம் அகராதியில் அல்லது உண்மையில். போராட்டம் போன்ற, நாங்கள் வழக்கு உணர அனுமதிக்க வேண்டும். நீங்கள், அவர்கள் கலப்பு வழக்கு என்றால் கூட, வார்த்தைகள் அனைத்து கடந்து என்பதை உறுதி செய்ய வேண்டும் சரம் ஒப்பீட்டு உடன் அழைக்கப்படும் போது, சமமானதாக இருக்கும். அகராதியில் உரை கோப்புகள் வார்த்தைகளை உண்மையில் அனைத்து ஸ்மால் இருக்கும். மற்றொரு விஷயம், நீங்கள் ஒவ்வொரு வார்த்தையும் ஒவ்வொரு சரம் இல் இயற்றப்பட்ட என்று நினைத்து கொள்ளுங்கள் என்று அகரவரிசை அல்லது apostrophes கொண்டிருக்கும் ஒன்று இருக்கும். Apostrophes எங்கள் அகராதியில் சரியான வார்த்தைகளை போகிறீர்கள். நீங்கள் மேற்கோளைச் எஸ் ஒரு வார்த்தை உண்டு என்றால், அது உங்கள் அகராதியில் ஒரு உண்மையான நியாயமான வார்த்தை உங்கள் புல அட்டவணையில் முனைகளில் ஒன்றாக இருக்க போகிறது. வார்த்தை உள்ளது இருந்தால் செயல்பட்டு சரிபார்த்து, அது எங்கள் புல அட்டவணையில் இருக்க வேண்டும். வார்த்தை அகராதியில் இருந்தால், பின்னர் அகராதியில் வார்த்தைகள் அனைத்து, ஹாஷ் அட்டவணை உள்ளன எனவே புல அட்டவணையில் இந்த வார்த்தையை பார்போம். நாம் பின்னர் நாங்கள் எங்கள் ஹாஷ் சார்பு செயல்படுத்தப்படும் என்று ஒவ்வொரு தனிப்பட்ட வார்த்தை எப்போதும் ஒரே மதிப்பு hashed என்று போன்ற, நாம் என்று பதிலாக நம் முழு ஹாஷ் அட்டவணை மூலம் தேடி, நாம் உண்மையில் அந்த வார்த்தை சேர்ந்தவை என்று இணைக்கப்பட்ட பட்டியலில் காணலாம். அதை அகராதியில் இருந்தால், அது அந்த வாளி இருக்க வேண்டும். வார்த்தையின் கடந்து எங்கள் சரம் பெயர் இருந்தால் நாம், என்ன செய்ய முடியும், நாம் தான் ஹெஷ் முடியும் என்று இணைக்கப்பட்ட பட்டியலில் உள்ள வார்த்தை மற்றும் தோற்றம் hashtable மதிப்பு [ஹெஷ் (வார்த்தை)] மணிக்கு. அங்கு இருந்து, நாம் என்ன செய்ய முடியும், இந்த வார்த்தையை தேட முனைகளில் ஒரு சிறிய துணைக்குழு உள்ளது அதனால் நாம், ஒத்திகையும் முற்பகுதியில் ஒரு எடுத்துக்காட்டாக பயன்படுத்தி, இணைக்கப்பட்ட பட்டியலில் பயணிக்கும் பின்னர், கர்சர் குறிக்கும் என்பது எங்கு சரம் வார்த்தை மீது ஒப்பிட்டு அழைப்பு அந்த வார்த்தை, அந்த ஒப்பிட்டு என்பதை பார்க்க. உங்கள் ஹாஷ் சார்பு ஏற்பாடு என்று வழி பொறுத்து, இது வரிசைப்படுத்தப்பட்ட இருந்தால், நீங்கள், தவறான ஒரு பிட் முந்தைய திரும்ப முடியும் இது வரிசையாக்கம் செய்யப்படாத என்று ஆனால், பிறகு நீங்கள் உங்கள் இணைக்கப்பட்ட பட்டியலில் மூலம் பயணித்து தொடர வேண்டும் நீங்கள் பட்டியலில் கடைசி உறுப்பு வரும் வரை. நீங்கள் இன்னும் நீங்கள் இணைக்கப்பட்ட பட்டியலில் இறுதி அடைந்துவிட்டீர்கள் நேரத்தில் வார்த்தை இல்லை எனில், உங்கள் சொல் அகராதியில் இல்லை என்று அர்த்தம், அதனால் அந்த வார்த்தை, தவறானது மற்றும் காசோலை தவறான திரும்ப வேண்டும். நாம் malloc'd என்று முனைகளில் அனைத்து விடுவிக்க வேண்டும், அங்கு இப்போது நாம், இறக்கும் வந்து எனவே இலவச எங்கள் ஹாஷ் அட்டவணை உள்ளே முனைகளில் அனைத்து. நாம் இணைக்கப்பட்ட பட்டியல்கள் மற்றும் முனைகளுக்கிடையே அனைத்து இலவச அனைத்து மீது மீண்டும் கூறு வேண்டும் போகிறோம். நாம் ஒரு இணைக்கப்பட்ட பட்டியலில் விடுவித்து அங்கு நீங்கள் உதாரணம் ஒத்திகையும் மேலே இருக்கும் என்றால், நீங்கள் ஹாஷ் அட்டவணை ஒவ்வொரு உறுப்பு அந்த செயலை மீண்டும் செய்ய வேண்டும். மற்றும் நான், ஒத்திகையும் இறுதியில் இந்த வழியாக செல்லலாம் ஆனால் Valgrind நீங்கள் ஒழுங்காக விடுவிக்க வேண்டும் என்றால் நீங்கள் பார்க்கலாம் ஒரு கருவி நீங்கள் malloc'd அல்லது நீங்கள் malloc'd என்று நான் வேறு எதுவும், வேறு எந்த சுட்டிக்காட்டி நான் ஒவ்வொரு முனையும். நாம் வாளிகள் வரையறு எண் எங்கே என்று, ஹெஷ் அட்டவணைகள் தான் மற்றும் ஒரு மதிப்பு எடுத்து பிறகு ஒரு சில வாளி என்று மதிப்பு ஒதுக்க வேண்டும் என்று ஒரு ஹாஷ் சார்பு. இப்போது நாம் முயற்சிகளின் வந்து. இந்த மாதிரி இருக்கிறது வகையான முயற்சித்தால், நான் ஒரு உதாரணம் வெளியே இழுக்க வேண்டும். அடிப்படையில், நீங்கள், முக்கிய கடிதங்கள் ஒரு முழு வரிசையை கொண்டுள்ளது பின்னர் எப்போது நீங்கள், ஒரு வார்த்தை கட்டிக்கொண்டிருக்கும் அந்த கடிதத்தில் சாத்தியக்கூறுகள் பரவலான ஒரு அகராதியின் இணைக்க முடியும். சில வார்த்தைகள், சி தொடங்க ஆனால் பின்னர் ஒரு தொடர ஆனால் மற்றவர்களுக்கு எடுத்துக்காட்டாக, ஓ தொடர. ஒரு trie அந்த வார்த்தைகள் சாத்தியமான சேர்க்கைகள் அனைத்து காண்பதற்கு ஒரு வழி. ஒரு trie வார்த்தைகள் உள்ளனர் என்று கடிதங்கள் வரிசை கண்காணிக்க போகிறது, தேவைப்படும் போது ஒரு கடிதம் கடிதங்கள் பல தொடர்ந்து முடியும் போது, ஆஃப் கிளை, மற்றும் இறுதியில் அந்த வார்த்தையை சரியான இல்லையா ஒவ்வொரு கட்டத்தில் குறிப்பிடுகின்றன சொல் MAT உச்சரிப்பதில் என்றால், நான் நினைக்கவில்லை எம்.ஏ. சரியான வார்த்தை, ஆனால் MAT என்பதால். அதனால் உங்கள் trie, இது பாய் என்று உண்மையில் சரியான வார்த்தை குறிக்கிறது. எங்கள் trie ஒவ்வொரு கணு உண்மையில், கணு சுட்டிகள் ஒரு வரிசை கொண்டிருக்க போகிறார்கள் நாங்கள், குறிப்பாக, அந்த முனை குறிப்புகள் 27 போகிறது எழுத்தில் உள்ள ஒவ்வொரு கடிதம் மற்றும் மேற்கோளைச் கதாபாத்திரம் ஒன்று. அந்த வரிசையில் ஒவ்வொரு உறுப்பு தன்னை மற்றொரு முனை சுட்டி போகிறது. அந்த முனை பிறகு எதுவும் இல்லையென்றால், NULL, எனவே என்றால் நாம் அந்த வார்த்தை வரிசையில் மேலும் கடிதங்கள் இருக்கிறது என்று எனக்கு தெரியும். அந்த முனை NULL என்றால் ஆனால், அந்த கடிதம் வரிசையில் இன்னும் கடிதங்கள் உள்ளன என்று பொருள். பின்னர் மேலும், ஒவ்வொரு முனையும் ஒரு வார்த்தை அல்லது கடைசி குணம் என்பதை குறிக்கிறது. ஒரு trie ஒரு உதாரணமாக கொண்டு செல்லலாம். முதல் நான் இந்த வரிசையில் 27 முனைகளில் அறை உள்ளது. நான் வார்த்தை BAR இருந்தால் - நான் வார்த்தை BAR மற்றும் நான் அந்த செருக விரும்பினால், முதல் கடிதம் என் trie காலியாக உள்ளது அவ்வாறு இருந்தால், B ஆகும், பி எழுத்துக்கள் இரண்டாவது கடிதத்தில், எனவே நான் இந்த குறியீட்டு இங்கே இந்த போட்டி தேர்வு போகிறேன். நான் இங்கே பி வேண்டும் போகிறேன். பி அனைத்து கதாபாத்திரங்கள் மற்றொரு வரிசை சுட்டி காட்டும் ஒரு முனை போகிறது கடிதம் பி பிறகு பின்பற்ற முடியும் இந்த வழக்கில், நான் வார்த்தை BAR கையாள்வதில், அதனால் ஒரு இங்கே போகலாம். ஒரு பிறகு, நானும் கடிதம் ஆர், அதன் சொந்த இணைந்து ஒரு இப்போது புள்ளிகள், வேண்டும் பின்னர் ஆர் இங்கே இருக்கும். பார் ஒரு முழு சொல், அதனால் நான் மற்றொரு முனை வரை ஆர் புள்ளியில் உள்ளது போகிறேன் அந்த வார்த்தை செல்லுபடியாகும் என்று. அந்த முனை கூட, கணுக்களின் ஒரு அணி வேண்டும் என்று ஆனால் அந்த NULL இருக்கலாம். ஆனால் அடிப்படையில், அது போன்ற தொடரலாம். நாம் வேறு ஒரு எடுத்துக்காட்டாக சென்று போது, ஒரு பிட் இன்னும் தெளிவாக போம் அதனால் அங்கு என்னுடன் தாங்க. இப்போது நாங்கள் எங்கள் அகராதியில் உள்ளே பார் உள்ளது. இப்போது நாம் வார்த்தை பஜ் வேண்டும் என்று. நாம் பி தொடங்க, நாங்கள் ஏற்கனவே எங்கள் அகராதியில் அந்த கடிதங்கள் ஒரு பி வேண்டும். ஏ தொடர்ந்து அந்த நாங்கள் ஏற்கனவே ஒரு வேண்டும். ஆனால் பின்னர் அதற்கு பதிலாக, நாம் Z பின்வரும் வேண்டும். பிறகு எங்கள் அணி ஒரு உறுப்பு Z போகிறது, அதனால், அந்த ஒரு வார்த்தை மற்றொரு சரியான முடிவு சுட்டி போகிறது. எனவே, அந்த நாம் பி மூலம் தொடர்ந்து ஒரு பார்க்க பி மற்றும் ஏ தொடங்கும் என்று வார்த்தைகளை தற்போது எங்கள் அகராதியில் இரண்டு வெவ்வேறு விருப்பங்கள் உள்ளன நாங்கள் வார்த்தை FOOBAR நுழைக்க வேண்டும் என்று. நாம் எஃப் ஒரு இடுகை என்று எஃப் ஒரு முழு வரிசையை சுட்டி காட்டும் ஒரு முனை உள்ளது. நாம் ஓ சென்று, ஓ கண்டறிய வேண்டும், ஓ, பின்னர் ஒரு முழு பட்டியலில் இணைக்கிறது. நாம் பி மற்றும் பின் தொடர்ந்து, நாம் விரும்பும் ஒரு பின்னர் ஆர் FOOBAR வரை கீழே மிகவும் பின் FOOBAR குறுக்கீடாய் அனைத்து வழியில் ஒரு சரியான வார்த்தை. எனவே இந்த சரியான வார்த்தை இருக்கும். இப்போது அகராதியில் நமது அடுத்த வார்த்தை உண்மையில் வார்த்தை foo என்று. நாம் எஃப் பின்வருமாறு எப் என்ன சொல்ல முடியும்? நான் உண்மையில் ஏற்கனவே ஓ ஒரு இடம் இல்லை, அதனால் நான் தொடர்ந்து போகிறேன். நான் ஒரு புதிய செய்ய தேவையில்லை. தொடர்ந்து. Foo இந்த அகராதியில் சரியான வார்த்தை, அதனால் நான் சுட்டிக்காட்ட போகிறேன் அந்த செல்லுபடியாகும் என்று. நான் என் வரிசை நிறுத்த வேண்டும், என்று சரியாக இருக்க வேண்டும். ஆனால் நாம் பி foo நம் வரிசையை கீழே தொடர்ந்து இருந்தால், மற்றும் FOOB இருந்தது, FOOB ஒரு வார்த்தை அல்ல, அது ஒரு செல்லுபடியாகும் ஒரு குறிப்பிட்ட இல்லை. ஒரு trie, நீங்கள் ஒவ்வொரு கணு இது சரியான வார்த்தை இல்லை, என்று காட்டும் பின்னர் ஒவ்வொரு கணு மேலும் 27 கணு சுட்டிகள் ஒரு வரிசை உள்ளது தங்களை முனைகளில் பிறகு புள்ளி என்று. இங்கே நீங்கள் இந்த வரையறுக்க வேண்டும் எப்படி ஒரு வழி. நாம் ஒரு முனை * தலை இருந்தது எனினும், ஹாஷ் அட்டவணை எடுத்துக்காட்டாக சும்மா நமது இணைக்கப்பட்ட பட்டியலில் ஆரம்பத்தில் குறிக்க, நாங்கள் விரும்பவில்லை போகிறாய் எங்கள் trie தொடக்கத்தில் எங்கே தெரியாமல் சில வழி. சில மக்கள் அழைப்பு மரங்கள் முயற்சித்தால், மற்றும் வேர் எங்கிருந்து வருகிறார் என்று. எனவே நாம் நமது மரத்தின் வேர் நாம் அடிப்படையில் இருக்க வேண்டும் என்று உறுதி செய்ய வேண்டும் எங்கள் trie எங்கே என்று. நாம் ஏற்கனவே வகையான சென்றனர் நீங்கள் அகராதி ஒவ்வொரு வார்த்தையும் ஏற்றும் பற்றி நினைக்கலாம் வழி. அடிப்படையில், ஒவ்வொரு வார்த்தையை நீங்கள் உங்கள் trie மூலம் மீண்டும் கூறு வேண்டும் போகிறாய் நாம் அது இந்த வழக்கில் குழந்தைகள் என்று - மற்றும் குழந்தைகள் ஒவ்வொரு உறுப்பு என்று தெரிந்தும் - வேறு கடிதம் ஒத்துள்ளது, அந்த மதிப்புகள் சரிபார்க்க வேண்டும் போகிறாய் கடிதம் ஒத்துள்ளது என்று குறிப்பிட்ட குறியீட்டு மணிக்கு. சீசர் மற்றும் வைஜெனேர் திரும்ப வழி நினைத்து, தெரிந்தும் நீங்கள் ஒரு அகரவரிசை அட்டவணையையும் மீண்டும் வரைபடத்தை வகையான அனைத்து கடிதத்தில், நிச்சயமாக ஒரு Z மூலம், ஒரு அகரவரிசை கடிதம் கண்டறிவதில் மிகவும் எளிதாக இருக்கும் ஆனால் துரதிருஷ்டவசமாக, apostrophes மேலும் வார்த்தைகளில் ஒரு ஏற்றுக்கொள்ளப்பட்ட தன்மை இருக்கும். நான் கூட ASCII மதிப்பு என்ன என்பது உறுதியாக தெரியவில்லை அதனால் நீங்கள் அதை முதலில் ஒன்று இருக்க வேண்டும் என்பதை முடிவு செய்ய ஒரு குறியீட்டு கண்டுபிடிக்க விரும்பினால் அல்லது கடந்த ஒரு, நீங்கள் ஒரு கடினமான குறியீட்டு சோதனை செய்ய வேண்டும் பின்னர் அந்த வைத்து உதாரணமாக குறியீட்டெண் 26, இல். எனவே நீங்கள் [நான்] குழந்தைகளை மதிப்பு சோதனை அங்கு [நான்] ஒத்திருக்கிறது நீ இருக்கும்போது என்ன கடிதம். அந்த NULL இருந்தால், எந்த சாத்தியம் கடிதங்கள் தற்போது இல்லை என்று அர்த்தம் என்று முந்தைய காட்சியில் இருந்து வளம், எனவே நீங்கள் malloc வேண்டும் போகிறாய் மற்றும் ஒரு புதிய கணு செய்ய அது அந்த குழந்தைகள் [நான்] புள்ளி வேண்டும் அதனால் நீங்கள் உருவாக்க - நாம் செவ்வகம் ஒரு கடிதம் செருகப்பட்ட போது - புதிய கணு என்ற அல்லாத NULL மற்றும் புள்ளி குழந்தைகள் செய்யும். அந்த NULL என்றால் ஆனால், foo எங்கள் நிகழ்வில் போன்ற நாம் ஏற்கனவே FOOBAR போது, நாம், தொடர்ந்து நாம் எப்போதும் ஒரு புதிய கணு செய்யும் மாறாக தான் உண்மை is_word அமைக்க முடியாது அந்த வார்த்தையின் முடிவில். அப்படியென்றால் முன், இங்கே நீங்கள் ஒரு நேரத்தில் ஒவ்வொரு கடிதம் கையாள்வதில் தான் காரணம், அதை பதிலாக கணக்கிட என்ற, அளவு நீங்கள் எளிதாக இருக்கும் நடக்கிறது மற்றும் முழு மரத்தின் வழியாக சென்று நான் எத்தனை குழந்தைகள் இல்லை கணக்கிட பின்னர் இடது பக்கத்தில் வலது பக்கத்தில் இருக்கும் எத்தனை நினைத்து, ஆஃப் கிளை அந்த மாதிரி விஷயங்களை, நீங்கள் நிறைய எளிதாக இருக்கும் நடக்கிறது நீங்கள் தான் நீங்கள் சேர்த்து நீங்கள் எத்தனை சொற்களை கண்காணிக்க வேண்டும் நீங்கள் சுமை கையாளும் போது. அதனால் அந்த வழி அளவு வெறும் அளவு ஒரு உலகளாவிய மாறி திரும்ப முடியும். இப்போது நாம் பார்க்க வரும். முன் அதே தரம், நாங்கள் வழக்கு உணர அனுமதிக்க வேண்டும் எங்கே. அதே போல், நாம் சரங்களை மட்டும் அகரவரிசை எழுத்துகள் அல்லது apostrophes என்று கருதி குழந்தைகள் நீண்ட 27 அணிவரிசை ஏனெனில், எனவே எழுத்துக்கள் மற்றும் மேற்கோளைச் கடிதங்களை அனைத்து. நீங்கள் செய்ய வேண்டும் என்ன என்பதை நீங்கள் ரூட் துவங்க வேண்டும் வேண்டும் வேர் கொண்டுள்ளது என்று ஒரு வரிசை சுட்டி ஏனெனில் ஒரு வார்த்தை முடியும் தொடங்கி கடிதங்கள் அனைத்தும். நீங்கள், அங்கு தொடங்க போகிறீர்கள் பின்னர் நீங்கள் பார்க்க போகிறீர்கள் இந்த மதிப்பு NULL அல்லது இல்லை, இல்லை மதிப்பு NULL என்றால், அந்த அகராதியில் எந்த மதிப்புகள் இல்லை என்று காரணம் அந்த குறிப்பிட்ட வரிசையில் அந்த கடிதத்தில் கொண்டிருக்கிறது. அது NULL என்றால், அந்த வார்த்தையை உடனே தவறுதலாக எழுதப்பட்டது என்று பொருள். ஆனால் அதை NULL என்று நினைத்தால், நீங்கள், தொடரலாம் முதல் கடிதத்தில் ஒரு வார்த்தை ஒரு சாத்தியமான முதல் கடிதம் என்று, எனவே இப்போது நான் இரண்டாவது கடிதத்தில், அந்த காட்சியில், என் அகராதியில் உள்ள இருந்தால் சரிபார்க்க வேண்டும். எனவே நீங்கள் முதல் முனையத்தின் குழந்தைகள் குறியீட்டு போக போகிறோம் அந்த இரண்டாவது கடிதத்தில் உள்ளது என்பதை சரிபார்க்க. பின்னர் நீங்கள் அந்த காட்சியை சரியான இல்லையா என்பதை அந்த பணியை மீண்டும் உங்கள் trie உள்ள. அந்த குறியீட்டு புள்ளிகள் முனை குழந்தைகள் பூஜ்ய வேண்டும் போதெல்லாம், நீங்கள், அந்த வரிசை இல்லை என்று ஆனால் நீங்கள், நீங்கள் உள்ளிட்ட செய்த வார்த்தையின் முடிவில் சென்றால் பின்னர் நான் இந்த காட்சியில் முடித்துவிட்டேன் என்று இப்போது சரிபார்க்க வேண்டும் என் trie இதை கண்டு, சரியான அல்லது இல்லை என்று சொல்? அதனால் நீங்கள் என்று சரிபார்க்க வேண்டும், மற்றும் அந்த போது நீங்கள் அந்த காட்சியை பார்த்த போது, பின்னர் நீங்கள் அந்த வார்த்தையை சரியான இல்லையா சரிபார்க்க வேண்டும் ஏனெனில் நாம் FOOB என்று நான் வரைந்த என்று மீண்டும் முந்தைய வழக்கில் நினைவில், என்று நாம் காணலாம் ஆனால் ஒரு உண்மையான சரியான வார்த்தை அல்ல என்று சரியான வரிசை இருந்தது. இதேபோல், உங்கள் trie முனைகளுக்கிடையே அனைத்து இறக்கும் வேண்டும் முயற்சிகளின் உள்ள இறக்கும் இடம். மன்னிக்கவும். இறக்கும் நாம் அனைத்து முனைகளில் விடுதலை அங்கு புல அட்டவணைகள் போன்று, நாங்கள் முனைகளில் அனைத்து விடுவிக்க வேண்டும் முயற்சிகளின் உள்ள. இறக்கும் உண்மையில் மேலே கீழே இருந்து எளிதான வேலை இந்த அடிப்படையில் இணைக்கப்பட்ட பட்டியலில் இருப்பதால். நாம் மதிப்புகள் அனைத்து நாம் நடத்த உறுதி செய்ய வேண்டும் மற்றும் வெளிப்படையாக எல்லோரையும். நீங்கள் ஒரு trie வேலை என்றால் நீங்கள் செய்ய போகிறாய் என்ன முதல் கீழே மற்றும் இலவச மிக குறைந்த முனை பயணம் ஆகும் மற்றும், பின்னர் அந்த குழந்தைகள் அனைவரும் வரை சென்று பின்னர் இலவச அனைவருடைய வரை சென்று பின்னர் இலவச, முதலியன Trie முதல் கீழே அடுக்கு கையாள்வதில் போன்ற வகையான நீங்கள் எல்லாம் விடுதலை செய்த பின்னர் மேலே சென்று. இந்த ரிகர்ஸிவ் செயல்பாடு கைக்குள் வரக்கூடும் அங்கு ஒரு நல்ல உதாரணம். நீங்கள், உங்கள் trie கீழே அடுக்கு விடுதலை பிறகு, அது மற்ற மீது இறக்கும் அழைப்பு நீங்கள் ஒவ்வொரு மினி விடுவித்து உறுதி செய்து - நீங்கள் வகையான அது மினி முயற்சிகளின் என பார்க்கலாம். எனவே நீங்கள் இங்கே உங்கள் ரூட் வேண்டும். நான் அவர்களை 26 வரைவதற்கு இல்லை, அதனால் நான் அதை எளிமைப்படுத்தும். எனவே நீங்கள் இந்த வேண்டும், பிறகு இந்த வார்த்தைகளை தொடர்ச்சியை பிரதிநிதித்துவம் அங்கு இந்த சிறிய வட்டங்களில் அனைத்து கடிதங்கள் சரியான வரிசை என்று கடிதங்கள். அது ஒரு பிட் மேலும் தொடரலாம். நீ என்ன செய்ய வேண்டும் என்று நீங்கள் இங்கே பின்னர் இலவச இந்த கீழே இலவசம் பின்னர் நீங்கள் இங்கே மேலே ஒரு கீழே இலவச இந்த ஒரு விடுவித்து முன் ஏனெனில் இங்கு இரண்டாவது மட்டத்தில் நீங்கள் இலவச ஒன்று, நீங்கள் உண்மையில் இங்கே இந்த மதிப்பு இழக்க வேண்டும். அதை நீங்கள் முதலில் கீழே விடுவித்து என்பதை உறுதி செய்ய ஒரு trie ஐந்து இறக்கும் முக்கிய அதனால் தான். நீங்கள் ஒவ்வொரு முனையின் சொல்ல செய்ய வேண்டும் என்ன நான் குழந்தைகளை அனைத்து இறக்கும் வேண்டும். நாம், ஹாஷ் அட்டவணை முறை அதே போல் trie முறையை இறக்கும் சென்று இப்போது நாம் Valgrind பார்க்க போகிறோம். நீங்கள் பின்வரும் கட்டளையை இயக்க. நீங்கள் Valgrind-V வேண்டும். இந்த குறிப்பிட்ட உரை கொடுக்கப்பட்ட speller ரன் போது நீங்கள் கசிவை சரிபார்ப்பு speller ஒரு உரை கோப்பில் எடுக்க வேண்டும், ஏனெனில். எனவே Valgrind, உங்கள் நிரலை நீங்கள் ஒதுக்கீடு எவ்வளவு பைட்டுகள் சொல்ல, நீங்கள் விடுதலை, அதை நீங்கள் போதும் விடுதலை என்பதை சொல்ல எவ்வளவு பைட்டுகள் அல்லது உங்களுக்கு தேவையான இலவச செய்யவில்லை, என்று அல்லது சில நேரங்களில் நீங்கள், இலவச ஒரு முனை போன்ற என்று ஏற்கனவே கூட அதிகமாக இலவச விடுதலை அதனால் நீங்கள் பிழைகள் வரும். நீங்கள் Valgrind பயன்படுத்தினால், அது உங்களுக்கு சில செய்திகளை கொடுக்கும் நீங்கள், போதும், குறைந்த போதும் அல்லது விடுதலை நான் என்பதை குறிப்பிடவும் போதுமான முறை விட அல்லது அதற்கு மேற்பட்ட. இந்த pset ஒரு பகுதியாக, அது பெரிய சபை சவால் செய்ய விரும்பினால் தான். ஆனால் நாம் இந்த தரவு கட்டமைப்புகள் கையாளும் போது இது உங்கள் தரவு கட்டமைப்புகள் இருக்க முடியும், எவ்வளவு சீக்கிரம் எப்படி திறமையான பார்க்க வேடிக்கையாக வகையான தான். மோதல்கள் நிறைய உங்கள் ஹாஷ் சார்பு முடிவு என்ன? அல்லது உங்கள் தரவு அளவு மிகவும் பெரியதாக உள்ளது? பயணிக்கும் நேரம் நிறைய எடுக்கும்? Speller பதிவு, இது, உங்களுக்கு ஏற்ற பயன்படுத்த எவ்வளவு நேரம் வெளியிடுகிறது ,, சரிபார்க்க அளவு நடத்த, மற்றும் இறக்கும் வரை அதனால் அந்த பெரிய போர்டு உள்ள இடப்பட்டவை உங்கள் வகுப்பு தோழர்கள் எதிராக போட்டியிட முடியும் மற்றும் சில ஊழியர்கள் உறுப்பினர்கள் வேகமாக பிழைத்திருத்தி யார் பார்க்க. நான் ஹெஷ் அட்டவணைகள் பற்றி குறிப்பிட விரும்புகிறேன் என்று ஒன்று நாம் யோசிக்க முடியும் என்று சில அழகான எளிய ஹெஷ் செயல்பாடுகளை உள்ளது. உதாரணமாக, நீங்கள் ஒவ்வொரு வாளி எனவே 26 வாளிகள் வேண்டும், மற்றும் , ஒரு வார்த்தையின் முதல் எழுத்தை ஒத்துள்ளது ஆனால் ஒரு அழகான சமநிலையற்ற ஹாஷ் அட்டவணை ஏற்படுத்துவதாகவும் நடக்கிறது உதாரணமாக, எம் துவங்கும்அனைதத்து விட எக்ஸ் தொடங்கும் என்று நிறைய குறைவான வார்த்தைகளை இருப்பதால். Speller பற்றி செல்ல ஒரு வழி நீங்கள் மற்ற செயல்பாடுகள் அனைத்தும் பெற விரும்பினால் உள்ளது, பின்னர் உங்கள் குறியீடு இயங்கும் பெற முடியும் ஒரு எளிய ஹாஷ் சார்பு பயன்படுத்த பின்னர் திரும்பி சென்று உங்கள் ஹாஷ் அட்டவணை மற்றும் வரையறை அளவை மாற்ற. ஹெஷ் செயல்பாடுகளை இணையத்தில் வளங்கள் நிறைய உள்ளன எனவே இந்த pset நீங்கள் இணையத்தில் ஹெஷ் செயல்பாடுகளை ஆய்வு அனுமதிக்கப்படுகிறது நீங்கள் அதை எங்கிருந்து வசூலிக்கவும் உறுதி வரை சில குறிப்புகள் மற்றும் உத்வேகம் கிடைக்கும். நீங்கள் இணையத்தில் தேடி சில ஹாஷ் சார்பு பார்த்து விளக்குவது வரவேற்கிறேன். மீண்டும் அந்த, நீங்கள் யாராவது ஒரு trie பயன்படுத்தப்படும் பார்க்க முடியும் அவர்கள் செயல்படுத்த உங்கள் ஹாஷ் அட்டவணை அல்லது விட வேகமாக என்பதை. நீ பெரிய சபை பல முறை சமர்ப்பிக்க முடியும். இது உங்கள் சமீபத்திய இடுகை பதிவு. அதனால் உங்கள் ஹாஷ் சார்பு மாற்ற மற்றும் அது நிறைய வேகமாக உண்மையில் என்று உணர அல்லது முன் விட மெதுவாக நிறைய. ஒரு வேடிக்கையான வழியில் ஒரு பிட் உள்ளது. எப்போதும் 1 அல்லது மெதுவான முடியும் அகராதி செய்ய முயற்சி செய்த 2 ஊழியர்கள் உறுப்பினர்கள், அங்கு அதனால் பார்க்க எப்போதும் வேடிக்கையானது. pset பயன்பாட்டு நீங்கள் ஒரு விருப்ப அகராதி மூலம் speller இயக்க உள்ளது பின்னர் ஒரு கட்டாய உரை கோப்பு. முன்னிருப்பாக நீங்கள் ஒரு உரை கோப்பு speller ரன் மற்றும் ஒரு அகராதியை குறிப்பிட வேண்டாம் போது, அது அகராதி உரை கோப்பு, பெரிய ஒரு பயன்படுத்த நடக்கிறது cs50/pset5/dictionaries கோப்புறையில். என்று ஒரு 100,000 சொற்கள் உள்ளன. அவர்கள் மிகவும் குறைவான வார்த்தைகளை கொண்ட ஒரு சிறிய அகராதியில் இல்லை அந்த CS50 நீ செய்துள்ளது. எனினும், நீங்கள் மிகவும் எளிதாக உங்கள் சொந்த அகராதி செய்யலாம் - நீங்கள் சிறிய உதாரணங்கள் வேலை செய்ய விரும்பினால் உதாரணமாக, நீங்கள் gdb ஐ பயன்படுத்த வேண்டும், மேலும் நீங்கள் குறிப்பிட்ட மதிப்புகள் தெரியும் உங்கள் புல அட்டவணையில் அவுட் வரைய வேண்டும் என்று. எனவே, இப்போது பார், பஜ், foo, மற்றும் FOOBAR உங்கள் சொந்த உரை கோப்பு செய்ய மட்டுமே முடியும் ஒரு உரை கோப்பில் அந்த செய்ய, 1 வரி அந்த ஒவ்வொரு பிரிக்க பின்னர் மொழியில் மட்டுமே ஒருவேளை 1 அல்லது 2 சொற்கள் உள்ளன என்று உங்கள் சொந்த உரை கோப்பு செய்ய எனவே நீங்கள் வெளியீடு இருக்க வேண்டும் சரியாக என்ன தெரியும் என்று. நீங்கள் சவால் ரன் போது பெரிய சபை சோதனை என்று மாதிரி உரை கோப்புகள் சில போர் மற்றும் அமைதி மற்றும் ஜேன் ஆஸ்டின் நாவல் அல்லது அப்படி ஒன்று இருக்கும். நீங்கள் தொடங்கும் நீங்கள் மிகவும் போது, அது உங்கள் சொந்த உரை கோப்புகள் செய்ய நிறைய எளிதாகவும் ஒரே ஒரு வார்த்தை இரண்டு அல்லது ஒருவேளை 10 கொண்டிருக்கும் நீங்கள் விளைவு என்னவாக இருக்க வேண்டும் கணிக்க முடியும் என்று பின்னர், அந்த எதிராக ஒரு கட்டுப்பாட்டு எடுத்துக்காட்டாக அதனால் மேலும் அது சரி. அதனால் நாம், சுற்றி விஷயங்களை கணிக்க மற்றும் வரைய கையாள்வதில் இருந்து மீண்டும் நான் பேனா மற்றும் காகித பயன்படுத்த ஊக்குவிக்க வேண்டும் உண்மையில் இந்த ஒரு உங்களுக்கு உதவ நடக்கிறது என்பதால் - உங்கள் trie எப்படி ஹாஷ் அட்டவணை அல்லது எப்படி, அம்புகள் வரையும், நீங்கள் அம்புகள் எங்கு ஏதாவது பெறலாம் போது, நீங்கள் போதுமான வைத்திருக்கிறாயா, நீங்கள் எந்த இணைப்புகள் மறைந்து பார்க்கிறீர்கள் மற்றும் கசியவிடப்பட்ட நினைவகம் பள்ளத்தை பின்தான். எனவே தயவு செய்து, நீங்கள் குறியீடு எழுதிக்கொடுத்து பெற முன்பே விஷயங்கள் வெளியே இழுக்க முயற்சி செய்யுங்கள். நீங்கள் எல்லாம் வேலை செய்ய போகிறோம் என்பதை புரிந்து கொள்ள அந்த விஷயங்கள் வெளியே இழுத்து ஏனெனில் நான் உங்களுக்கு அங்கு குறைந்த சுட்டிக்காட்டி muddles மீண்டும் இயக்க வேண்டும் உத்தரவாதம். எல்லாம் சரி. நான் இந்த pset உடன் அதிர்ஷ்டம் மிக சிறந்த வாழ்த்த விரும்புகிறேன். இது அநேகமாக கடினமான ஒன்று தான். எனவே, ஆரம்ப தொடங்க முயற்சி விஷயங்கள் வெளியே இழுத்து, பொருட்களை வெளியே இழுத்து, மற்றும் நல்ல அதிர்ஷ்டம். இந்த ஒத்திகை 5 இருந்தது. [CS50.TV]