1 00:00:00,000 --> 00:00:02,210 [Powered by Google Translate] [ஒத்திகை - சிக்கல் அமை 6] 2 00:00:02,210 --> 00:00:04,810 [Zamyla சான் - ஹார்வர்ட் பல்கலைக்கழகம்] 3 00:00:04,810 --> 00:00:07,240 [இந்த CS50 உள்ளது. - CS50.TV] 4 00:00:07,240 --> 00:00:12,180 >> அனைவருக்கும் வணக்கம், மற்றும் ஒத்திகையும் 6 வரவேற்க: Huff'n பஃப். 5 00:00:12,180 --> 00:00:17,440 Huff'n பஃப் நாம் என்ன செய்கிறாய் என்று ஒரு ஹஃப்மேன் சுருக்கப்பட்ட கோப்பை கையாள்வதில் போகிறது 6 00:00:17,440 --> 00:00:20,740 பின்னர், மீண்டும் அதை puffing எனவே, அதை decompressing 7 00:00:20,740 --> 00:00:25,810 நாம் 0 க்கள் மற்றும் 1 வி பயனர் நமக்கு அனுப்புகிறது என்று இருந்து மொழிபெயர்க்க முடியும் 8 00:00:25,810 --> 00:00:30,660 மற்றும் அசல் உரை அதை மீண்டும் மாற்ற. 9 00:00:30,660 --> 00:00:34,360 நீங்கள் கருவிகள் சில பார்க்க போகிறோம் ஏனெனில் Pset 6 அழகாக இருக்கும் 10 00:00:34,360 --> 00:00:41,730 நீங்கள் 1 அழகான சுத்தமாகவும் கருத்து அவற்றை ஒருங்கிணைப்பதற்கான pset 4 மற்றும் pset 5 மற்றும் வகையான பயன்படுத்தப்படும் என்று 11 00:00:41,730 --> 00:00:43,830 நீ அதை பற்றி யோசித்து வரும் போது. 12 00:00:43,830 --> 00:00:50,110 >> மேலும், வாதிடுகையில், pset 4 மற்றும் 5 நாம் வழங்க வேண்டும் என்று மிகவும் சவாலான psets இருந்தன. 13 00:00:50,110 --> 00:00:53,950 எனவே இப்போது, நாம், சி இந்த 1 மேலும் pset வேண்டும் 14 00:00:53,950 --> 00:00:56,480 அதன் பின்னர் நாம் வலை நிரலாக்க செய்ய இருக்கிறோம். 15 00:00:56,480 --> 00:01:02,310 எனவே CS50 உள்ள கடினமான மேட்டு மேல் பெற உங்களை வாழ்த்துகிறேன். 16 00:01:03,630 --> 00:01:09,760 >> Huff'n பஃப் க்கு மேல் நகரும், இந்த pset எங்கள் கருவி பெட்டி, ஹஃப்மேன் மரங்கள் போகிறீர்கள் 17 00:01:09,760 --> 00:01:14,700 எனவே பைனரி மரங்கள் பணி ஆனால் குறிப்பாக ஹஃப்மேன் மரங்கள் மட்டும் எப்படி புரிந்து, 18 00:01:14,700 --> 00:01:16,240 எப்படி அவர்கள் கட்டப்பட்டது. 19 00:01:16,240 --> 00:01:20,210 பின்னர் நாம், இந்த pset உள்ள விநியோகம் குறியீடு நிறைய போகிறது 20 00:01:20,210 --> 00:01:22,480 நாம் குறியீடு சில என்று உண்மையில் வந்து பார்க்கிறேன் 21 00:01:22,480 --> 00:01:24,670 நாம், முழுமையாக இன்னும் புரிந்து கொள்ள முடியாது 22 00:01:24,670 --> 00:01:30,080 அதனால் அந்த பின்னர் அவர்கள் இணைந்த. h கோப்புகள். கேட்ச் கோப்புகள் இருக்கும், ஆனால் 23 00:01:30,080 --> 00:01:34,300 நம்மை நாம் அந்த செயல்பாடுகளை எவ்வாறு தெரியும் அதனால் வேண்டும் என்று போதுமான புரிதல் கொடுக்கும் 24 00:01:34,300 --> 00:01:38,100 அல்லது குறைந்த பட்சம் என்ன செய்ய வேண்டும் - அவர்களின் உள்ளீடுகள் மற்றும் வெளியீடுகளை - 25 00:01:38,100 --> 00:01:40,760 நாம் கருப்பு பெட்டியில் என்ன நடக்கிறது என்று தெரியவில்லை கூட 26 00:01:40,760 --> 00:01:44,090 அல்லது உள்ள கருப்பு பெட்டியில் என்ன நடக்கிறது என்று எனக்கு புரியவில்லை. 27 00:01:44,090 --> 00:01:49,400 பின்னர் இறுதியாக, வழக்கம் போல், நாம், புதிய தரவு கட்டமைப்புகள் கையாள்வதில் 28 00:01:49,400 --> 00:01:51,840 அந்த முனைகளில் குறிப்பிட்ட வகையான, சில விஷயங்களை சுட்டி 29 00:01:51,840 --> 00:01:56,080 அதனால் இங்கே வடிவமைப்பு செயல்முறை மட்டும் அல்ல, ஒரு பேனா மற்றும் காகிதம் கொண்டு 30 00:01:56,080 --> 00:01:58,470 மற்றும் போது உங்கள் pset வேலை எப்படி கண்டுபிடிக்க முயற்சிக்கும் 31 00:01:58,470 --> 00:02:00,520 ஆனால் பிழைத்திருத்தங்களுக்கும் போது. 32 00:02:00,520 --> 00:02:06,140 நீங்கள் மதிப்புகள் என்ன கீழே எடுத்து போது, உங்கள் பேனா மற்றும் காகிதம் இணைந்து GDB முடியும் 33 00:02:06,140 --> 00:02:09,320 அங்கு உங்கள் அம்புகள் சுட்டிக்காட்டி, அந்த போன்ற விஷயங்கள். 34 00:02:09,320 --> 00:02:13,720 >> முதல் ஹஃப்மேன் மரங்கள் பார்க்க போகலாம். 35 00:02:13,720 --> 00:02:19,600 ஹப்மன் மரங்கள் ஒவ்வொரு கணு மட்டும் 2 குழந்தைகள் உள்ளன அதாவது, பைனரி மரங்கள். 36 00:02:19,600 --> 00:02:24,870 ஹஃப்மேன் மரங்கள் பண்பு என்று மிகவும் அடிக்கடி மதிப்புகள் 37 00:02:24,870 --> 00:02:27,140 fewest பிட்கள் குறிப்பிடப்படுகிறது. 38 00:02:27,140 --> 00:02:32,690 நாம் மோர்ஸ் குறியீடு மற்றும் விரிவுரை உதாரணங்கள், தொகுக்கப்பட்டு, எந்த வகையான சில கடிதங்களை பார்த்த. 39 00:02:32,690 --> 00:02:38,030 நீங்கள் எடுத்துக்காட்டாக ஒரு ஒரு அல்லது ஒரு மின், மொழிபெயர்க்க முயற்சிக்கும் போது 40 00:02:38,030 --> 00:02:43,940 நீங்கள் அடிக்கடி மொழிபெயர்ப்பது அதனால் பதிலாக பிட்கள் முழு தொகுப்பு பயன்படுத்த கொண்ட 41 00:02:43,940 --> 00:02:48,640 என்று வழக்கமான தரவு வகை ஒதுக்கீடு, நீங்கள், குறைவான அது கீழே அழுத்தி 42 00:02:48,640 --> 00:02:53,730 பின்னர் குறிப்பிடப்படுகின்றன யார் அந்த கடிதங்கள் குறைவாக பெரும்பாலும் நீண்ட பிட்கள் குறிப்பிடப்படுகின்றன 43 00:02:53,730 --> 00:02:59,840 அந்த கடிதங்கள் தோன்றும் அதிர்வெண்கள் அவுட் எடையை போது நீங்கள் வாங்க முடியும் என்பதால். 44 00:02:59,840 --> 00:03:03,020 நாம் ஹஃப்மேன் மரங்கள் இங்கு ஒரே யோசனை 45 00:03:03,020 --> 00:03:12,360 அங்கு நாம் ஒரு சங்கிலி, சில எழுத்துக்களை பெற பாதையில் ஒரு வகையான செய்கிறீர்கள். 46 00:03:12,360 --> 00:03:14,470 பின்னர் மிக அதிர்வெண் கொண்ட பாத்திரங்கள் 47 00:03:14,470 --> 00:03:17,940 fewest பிட்கள் குறிப்பிடப்படுகின்றன வேண்டும் போகிறோம். 48 00:03:17,940 --> 00:03:22,020 >> நீங்கள் ஒரு ஹஃப்மேன் மரம் கட்டுவதற்கு அந்த வழி 49 00:03:22,020 --> 00:03:27,430 உரையில் காணப்படும் எழுத்துகள் அனைத்து வைப்பதன் மூலம் 50 00:03:27,430 --> 00:03:30,630 அவற்றின் அதிர்வெண் கணக்கிடும்போது, எப்படி அடிக்கடி தோன்றும். 51 00:03:30,630 --> 00:03:33,880 இந்த ஒன்று அந்த கடிதங்கள் தோன்றும் எத்தனை முறை ஒரு எண்ணிக்கை முடியும் 52 00:03:33,880 --> 00:03:40,270 அல்லது ஒருவேளை ஒவ்வொரு தோன்றும் எத்தனை அனைத்து கதாபாத்திரங்கள் வெளியே ஒரு சதவீதம். 53 00:03:40,270 --> 00:03:44,270 அதனால் என்ன செய்ய, நீ அந்த ஒப்பிடப்படுகிறது அவுட் அனைத்து உள்ளது 54 00:03:44,270 --> 00:03:49,060 நீங்கள் 2 குறைந்த அலைவரிசைகளை பார்க்க பின்னர் உடன்பிறப்புகள் அவர்களை சேர 55 00:03:49,060 --> 00:03:55,660 அங்கு பின்னர் பெற்றோர் முனை அதன் 2 குழந்தைகள் தொகை ஒரு அதிர்வெண் உள்ளது. 56 00:03:55,660 --> 00:04:00,870 பின்னர் நீங்கள் மாநாட்டின் மூலம் என்ன என்று இடது முனை, 57 00:04:00,870 --> 00:04:03,770 நீங்கள், 0 கிளை தொடர்ந்து அந்த பின்பற்ற 58 00:04:03,770 --> 00:04:08,140 பின்னர் rightmost முனை 1 கிளை. 59 00:04:08,140 --> 00:04:16,040 நாம் மோர்ஸ் குறியீடு பார்த்த போது, ஒரு gotcha என்று நீங்கள் ஒரு பீப் மற்றும் பீப் செய்தால் 60 00:04:16,040 --> 00:04:18,120 அது தெளிவற்ற இருந்தது. 61 00:04:18,120 --> 00:04:22,430 அது என்றோ 1 கடிதம் முடியும் அல்லது 2 கடிதங்கள் வரிசை முடியும். 62 00:04:22,430 --> 00:04:27,790 அதனால் என்ன ஹஃப்மேன் மரங்கள் இல்லை என்பது எழுத்துக்கள் இயல்பு ஏனெனில் 63 00:04:27,790 --> 00:04:34,140 அல்லது நம் இறுதி உண்மையான பாத்திரங்கள் கிளை கடந்த முனைகள் இருப்பது - 64 00:04:34,140 --> 00:04:39,300 நாம் இலைகள் என அந்த பார்க்கவும் - அந்த பண்பு எந்த சந்தேகம் இருக்க முடியாது 65 00:04:39,300 --> 00:04:45,160 நீங்கள் பிட்கள் தொடர் குறியாக்கம் முயற்சிக்கும் எந்த கடிதத்தின் அடிப்படையில் 66 00:04:45,160 --> 00:04:50,670 ஏனெனில் 1 கடிதம் பிரதிநிதித்துவப்படுத்தும் பிட்கள் சேர்ந்து எங்கும் 67 00:04:50,670 --> 00:04:55,960 நீங்கள் மற்றொரு முழு கடிதம் ஏற்பட்டால், அங்கு எந்த குழப்பமும் இருக்காது. 68 00:04:55,960 --> 00:04:58,430 ஆனால் நாங்கள் உங்களுக்கு உண்மையில் பார்க்க முடியும் என்று உதாரணங்கள் போக வேண்டும் என்று 69 00:04:58,430 --> 00:05:02,120 பதிலாக நாம் அது உண்மை என்று சொல்கிறேன். 70 00:05:02,120 --> 00:05:06,390 >> ஒரு ஹஃப்மேன் மரம் ஒரு எளிய உதாரணம் பார்க்கிறேன். 71 00:05:06,390 --> 00:05:09,380 நான் 12 எழுத்துகள் என்று இங்கே ஒரு சரம் வேண்டும். 72 00:05:09,380 --> 00:05:14,010 நான் 6 BS, மற்றும் 2 Cs, என 4 உள்ளன. 73 00:05:14,010 --> 00:05:17,270 என் முதல் படி எண்ண வேண்டும். 74 00:05:17,270 --> 00:05:20,760 ஒரு எத்தனை முறை தோன்றும்? இது சரம் 4 முறை தோன்றும். 75 00:05:20,760 --> 00:05:25,060 பி 6 முறை தோன்றும், மற்றும் சி 2 முறை தோன்றும். 76 00:05:25,060 --> 00:05:28,970 இயற்கையாகவே, நான், பெரும்பாலும் பி பயன்படுத்தி நான் சொல்ல போகிறேன் 77 00:05:28,970 --> 00:05:35,970 அதனால் நான் பிட்கள் fewest எண், 0 க்கள் மற்றும் 1 வி என்ற fewest எண் பி பிரதிநிதித்துவம் வேண்டும். 78 00:05:35,970 --> 00:05:42,600 பின்னர் நான் சி அதே 0 க்கள் மற்றும் 1 வி பெரும்பாலான அளவு தேவைப்படுகிறது எதிர்பார்க்க போகிறேன். 79 00:05:42,600 --> 00:05:48,550 முதல் நான் இங்கே என்ன நான் அதிர்வெண் அடிப்படையில் ஏறுவரிசையில் அவர்களை வைக்கப்படுகிறது. 80 00:05:48,550 --> 00:05:52,710 நாம் சி மற்றும் ஏ, அந்த எங்கள் 2 குறைந்த அதிர்வெண்கள் என்று பார்க்க. 81 00:05:52,710 --> 00:06:00,290 நாம் ஒரு தாய் முனை உருவாக்க, மற்றும் அந்த பெற்றோர் முனை அது தொடர்புடைய ஒரு கடிதம் இல்லை 82 00:06:00,290 --> 00:06:05,070 ஆனால் அதை தொகை ஒரு அதிர்வெண், கிடையாது. 83 00:06:05,070 --> 00:06:08,780 கூட்டுத்தொகையாக 6 இது 2 + 4, ஆகிறது. 84 00:06:08,780 --> 00:06:10,800 நாம் இடது கிளை பின்பற்ற. 85 00:06:10,800 --> 00:06:14,970 நாங்கள் 6 முனை என்றால், நாம் சி பெற 0 பின்பற்ற வேண்டும் 86 00:06:14,970 --> 00:06:17,450 பின்னர் 1 ஏ பெற 87 00:06:17,450 --> 00:06:20,300 எனவே இப்போது நாம் 2 முனைகளில் வேண்டும். 88 00:06:20,300 --> 00:06:23,920 நாம் மதிப்பு 6 மற்றும் பிறகு நாங்கள் மதிப்பு 6 மற்றொரு முனை வேண்டும். 89 00:06:23,920 --> 00:06:28,550 அதனால் அந்த 2 குறைந்த 2 ஆனால் உள்ளன என்று மட்டும் 2, மட்டும் தான் 90 00:06:28,550 --> 00:06:33,820 எனவே தொகை 12 என்ற நிலையில், மற்றொரு தாய் மூலம் அந்த சேர. 91 00:06:33,820 --> 00:06:36,300 இங்கு நாம் ஹஃப்மேன் மரம் 92 00:06:36,300 --> 00:06:40,020 பி பெற எங்கு, என்று ஒரு பிட் 1 வேண்டும் 93 00:06:40,020 --> 00:06:45,430 பின்னர் ஒரு பெற நாம் சி 00 என்ற பின் 01 மற்றும் வேண்டும். 94 00:06:45,430 --> 00:06:51,300 இங்கு நாம் அடிப்படையில் நாம் 1 அல்லது 2 பிட்கள் அல்லது இந்த எழுத்துகள் குறிக்கும் என்று பார்க்க 95 00:06:51,300 --> 00:06:55,160 அங்கு என கணிக்கப்பட்டுள்ளது பி,, குறைந்தது உள்ளது. 96 00:06:55,160 --> 00:07:01,730 பின்னர், நாம் சி மிகவும் வேண்டும் என எதிர்பார்க்கப்படுகிறது, ஆனால் இது போன்ற ஒரு சிறிய ஹஃப்மேன் மரம் என்பதால் 97 00:07:01,730 --> 00:07:06,020 பின் ஒரு மேலும் நடுத்தர எங்கோ எதிராக 2 பிட்கள் குறிப்பிடப்படுகின்றன. 98 00:07:07,820 --> 00:07:11,070 >> வெறும் ஹஃப்மேன் மரம் மற்றொரு உதாரணம் மேல் செல்ல, 99 00:07:11,070 --> 00:07:19,570 நீங்கள் சரம் வேண்டும் என்று "ஹலோ." 100 00:07:19,570 --> 00:07:25,360 நீ என்ன செய்ய நீங்கள் எத்தனை முறை எச் இந்த தோன்றும் என்று கூறுவேன் முதலில்? 101 00:07:25,360 --> 00:07:34,200 எச் முறை மற்றும் மின் தோன்றும் தோன்றும் முறை மற்றும் நாம் இருமுறை தோன்றும் l வேண்டும் 102 00:07:34,200 --> 00:07:36,580 மற்றும் ஓ முறை தோன்றும். 103 00:07:36,580 --> 00:07:44,310 அதனால் நாம் பிட்கள் குறைந்தது பல குறிப்பிடப்படுகின்றன வேண்டும் என்று கடிதம் எதிர்பார்க்கலாம்? 104 00:07:44,310 --> 00:07:47,450 [மாணவர்] எல். >> எல். Yeah. எல் சரிதான். 105 00:07:47,450 --> 00:07:50,730 நாங்கள் எல் பிட்கள் குறைந்தது பல குறிப்பிடப்படுகின்றன வேண்டும் எதிர்பார்க்கிறோம் 106 00:07:50,730 --> 00:07:55,890 ஏனெனில் L "ஹலோ." சரம் மிகவும் பயன்படுகிறது 107 00:07:55,890 --> 00:08:04,280 நான் இப்போது செய்ய போகிறேன் என்ன இந்த முனைகள் வெளியே இழுக்கும். 108 00:08:04,280 --> 00:08:15,580 நான் ஓ இது மின் இது மற்றொரு 1, பின்னர் ஒரு 1, எச் இது, 1 வேண்டும், மற்றும் - 109 00:08:15,580 --> 00:08:23,410 எல் என்பது, பின்னர் 2 - இப்போது நான் பொருட்டு அவற்றை. 110 00:08:23,410 --> 00:08:32,799 பிறகு நான் ஒரு ஹஃப்மேன் மரம் கட்ட வழி குறைந்தது அதிர்வெண்கள் 2 முனைகளில் கண்டுபிடிக்க என்று 111 00:08:32,799 --> 00:08:38,010 மற்றும் ஒரு பெற்றோர் முனை உருவாக்குவதன் மூலம், அவர்கள் உடன்பிறப்புகள் செய்ய. 112 00:08:38,010 --> 00:08:41,850 இங்கே நாம் குறைந்த அலைவரிசை கொண்ட 3 முனைகளில் வேண்டும். அவர்கள் அனைத்து 1 இருக்கிறோம். 113 00:08:41,850 --> 00:08:50,620 இங்கு நாம் முதலில் இணைக்க போகிறோம், எந்த ஒரு தேர்வு. 114 00:08:50,620 --> 00:08:54,850 நாம் நான் H மற்றும் மின் தேர்வு என்று. 115 00:08:54,850 --> 00:09:01,150 1 தொகை + 1 2, ஆனால் இந்த முனை அது தொடர்புடைய ஒரு கடிதம் இல்லை. 116 00:09:01,150 --> 00:09:04,440 அது மதிப்பு உள்ளது. 117 00:09:04,440 --> 00:09:10,950 இப்போது நாம் அடுத்த 2 குறைந்த அதிர்வெண்கள் பாருங்கள். 118 00:09:10,950 --> 00:09:15,590 அந்த 2 மற்றும் 1 தான். அந்த ஒன்று, அந்த 2 இருக்க முடியும், ஆனால் நான் இந்த தேர்வு போகிறேன். 119 00:09:15,590 --> 00:09:18,800 கூட்டுத்தொகையாக 3. 120 00:09:18,800 --> 00:09:26,410 பின்னர் இறுதியாக, நான் தான் பிறகு 5 என்று, 2 இடது வேண்டும். 121 00:09:26,410 --> 00:09:32,010 நான் அந்த குறியீட்டு முறையை பூர்த்தி என்றால் இங்கே, என, எதிர்பார்க்கப்படுகிறது, 122 00:09:32,010 --> 00:09:37,480 1 வி எப்போதும் சரியான கிளை மற்றும் 0s இடது ஒரு உள்ளன. 123 00:09:37,480 --> 00:09:45,880 நாம் 2 மூலம் 1 பிட் பின்னர் ஓ பிரதிநிதித்துவம் எல் வேண்டும் 124 00:09:45,880 --> 00:09:52,360 பின்னர் 2 இ பின்னர் எச் 3 பிட்கள் கீழே விழும். 125 00:09:52,360 --> 00:09:59,750 எனவே நீங்கள் "வணக்கம்" இந்த செய்தியை அனுப்ப முடியாது பதிலாக உண்மையில் எழுத்துக்கள் பயன்படுத்தி 126 00:09:59,750 --> 00:10:02,760 வெறும் 0 க்கள் மற்றும் 1 வி மூலம். 127 00:10:02,760 --> 00:10:07,910 ஆனால், பல நேரங்களில் நாம் அதிர்வெண் உறவுகளை என்று ஞாபகம். 128 00:10:07,910 --> 00:10:11,900 நாம் ஒன்று ஒருவேளை முதல் H மற்றும் ஓ சேர்ந்தார். 129 00:10:11,900 --> 00:10:15,730 அல்லது பின்னர் நாங்கள் 2 குறிப்பிடப்படுகின்றன எல் போது மீது 130 00:10:15,730 --> 00:10:19,410 அதே போல் 2 குறிப்பிடப்படுகின்றன ஒரு சேர்ந்து, நாம் ஒன்றை இணைக்கப்பட்ட. 131 00:10:19,410 --> 00:10:23,630 >> அதனால் நீங்கள் அனுப்ப போது 0 க்கள் மற்றும் 1 வி, உண்மையில் உத்தரவாதம் இல்லை என்று 132 00:10:23,630 --> 00:10:27,090 பெறுநர் முழுமையாக சரியான பேட் ஆஃப் உங்கள் செய்தியை படிக்க முடியும் என்று 133 00:10:27,090 --> 00:10:30,490 அவர்கள் நீங்கள் செய்த எந்த முடிவும் தெரியாது என்பதால். 134 00:10:30,490 --> 00:10:34,920 நாம் ஹஃப்மேன் சுருக்க கையாளும் போது, 135 00:10:34,920 --> 00:10:40,090 எப்படியோ நாம் முடிவு எப்படி நமது செய்தியை பெற்றவர் சொல்ல வேண்டும் - 136 00:10:40,090 --> 00:10:43,470 அவர்கள் கூடுதல் தகவல் சில வகையான அறிந்து கொள்ள வேண்டும் 137 00:10:43,470 --> 00:10:46,580 அமுக்கப்பட்ட செய்தி கூடுதலாக. 138 00:10:46,580 --> 00:10:51,490 அவர்கள், மரம் உண்மையில் போல் என்ன புரிந்து கொள்ள வேண்டும் 139 00:10:51,490 --> 00:10:55,450 நாம் உண்மையில் அந்த முடிவுகள் எடுக்க எப்படி. 140 00:10:55,450 --> 00:10:59,100 >> இங்கே நாம் வெறும், உண்மையான எண்ணிக்கை அடிப்படையில் உதாரணங்கள் செய்துகொண்டு 141 00:10:59,100 --> 00:11:01,550 ஆனால் சில நேரங்களில் நீங்கள் ஒரு ஹஃப்மேன் மரம் முடியும் 142 00:11:01,550 --> 00:11:05,760 அதிர்வெண் அடிப்படையில் கடிதங்கள் தோன்றும், அது சரியான அதே செயல்முறை இது. 143 00:11:05,760 --> 00:11:09,090 இங்கே நான், சதவீதங்கள் அல்லது ஒரு பகுதி என்ற வகையில் அதை வெளிப்படுத்தும் 144 00:11:09,090 --> 00:11:11,290 எனவே இங்கு சரியான ஒன்று. 145 00:11:11,290 --> 00:11:15,300 நான், 2 குறைந்த, அவர்கள் தொகையிடும், குறைந்த அடுத்த 2, அவர்களை தொகையிடும் கண்டறிய 146 00:11:15,300 --> 00:11:19,390 நான் ஒரு முழு மரம் வரை. 147 00:11:19,390 --> 00:11:23,610 நாம் அது நாம் விழுக்காட்டுக்கும் கையாளும் போது அல்லது வழி, செய்ய கூட 148 00:11:23,610 --> 00:11:27,760 நாம் பொருட்களை பிரித்து மற்றும் தசமங்கள் கையாள்வதில் தான் பொருள் அல்லது மிதக்கும் என்று 149 00:11:27,760 --> 00:11:30,900 நாம் ஒரு தலை தரவு கட்டமைப்புகள் நினைத்துக்கொண்டு. 150 00:11:30,900 --> 00:11:32,540 நாம் மிதவைகள் பற்றி என்ன தெரியும்? 151 00:11:32,540 --> 00:11:35,180 நாம் மிதவைகள் கையாளும் போது ஒரு பொதுவான பிரச்சனை என்ன? 152 00:11:35,180 --> 00:11:38,600 [மாணவர்] துல்லியமற்றவை கணித. >> சரி. Imprecision. 153 00:11:38,600 --> 00:11:43,760 ஏனெனில் மிதவை புள்ளி imprecision, இந்த pset நாம் உறுதி என்று 154 00:11:43,760 --> 00:11:49,450 நாம் எந்த மதிப்புகள் இழக்க வேண்டாம் என்று, நாம் உண்மையில் எண்ணிக்கை கையாள்வதில் போகிறாய். 155 00:11:49,450 --> 00:11:54,880 நீங்கள் இங்கே கட்டமைப்பை மீண்டும் பார்த்தால், ஒரு ஹஃப்மேன் முனை என்று என்று நீங்கள் 156 00:11:54,880 --> 00:12:01,740 நீங்கள் பச்சை நிறம் பார்த்து என்றால் அது தொடர்புடைய ஒரு அதிர்வெண் உள்ளது 157 00:12:01,740 --> 00:12:08,760 அத்துடன் அதன் இடது ஒரு முனை அத்துடன் அதன் சரியான ஒரு முனை சுட்டி காட்டும். 158 00:12:08,760 --> 00:12:13,970 பின்னர் சிவப்பு அங்கு அவர்கள் தொடர்புடைய ஒரு பாத்திரம் உள்ளது. 159 00:12:13,970 --> 00:12:18,900 நாம், பெற்றோர்கள் மற்றும் பிறகு இறுதி முனைகளில் தனி ஒன்றை செய்ய போவதில்லை 160 00:12:18,900 --> 00:12:23,680 இதில் நாம் இலைகள் என்று பார்க்கவும், மாறாக அந்த மட்டும் NULL மதிப்புகள் வேண்டும். 161 00:12:23,680 --> 00:12:31,050 ஒவ்வொரு முனையும் நாம் ஒரு கதாபாத்திரம், அந்த முனை பிரதிபலிக்கிறது என்று சின்னமாக, வேண்டும் 162 00:12:31,050 --> 00:12:40,490 பின்னர் ஒரு அதிர்வெண் மற்றும் அதன் இடது குழந்தை அத்துடன் அதன் சரியான குழந்தை ஒரு சுட்டிக்காட்டி. 163 00:12:40,490 --> 00:12:45,680 மிகவும் கீழே இருக்கும் இலைகள், மேலும் முனை சுட்டிகள் வேண்டும் 164 00:12:45,680 --> 00:12:49,550 அவர்கள் இடது மற்றும் வலது, ஆனால் அந்த மதிப்பை உண்மையான முனைகளில் குறிக்கும் என்பதால், 165 00:12:49,550 --> 00:12:53,970 அவற்றின் மதிப்பு என்ன என்று? >> [மாணவர்] NULL. >> NULL. சரியாக. 166 00:12:53,970 --> 00:12:58,430 இங்கே நீங்கள் மிதவைகள் உள்ள அதிர்வெண் பிரதிநிதித்துவம் எப்படி ஒரு எடுத்துக்காட்டாக, தான் 167 00:12:58,430 --> 00:13:02,130 ஆனால் நாம், முழு அதை கையாள்வதில் போகிறாய் 168 00:13:02,130 --> 00:13:06,780 அதனால் தான் அனைத்து அங்கு தரவு வகையை மாற்ற வேண்டும். 169 00:13:06,780 --> 00:13:09,700 >> ஒரு சிக்கலான உதாரணமாக ஒரு சிறிது அதிகமாக செல்லலாம். 170 00:13:09,700 --> 00:13:13,360 ஆனால் இப்போது நாம் எளிய ஒருவர் செய்த, அது அதே செயல்முறை. 171 00:13:13,360 --> 00:13:20,290 நீங்கள் 2 குறைந்த அதிர்வெண்கள் கண்டறிய, அதிர்வெண்களை தொகையிடும் 172 00:13:20,290 --> 00:13:22,450 என்று, உங்கள் பெற்றோர் முனை புதிய அலைவரிசை தான் 173 00:13:22,450 --> 00:13:29,310 இது பின்னர் 1 கிளை உடன் 0 கிளை மற்றும் வலது அதன் இடது சுட்டிக்காட்டியுள்ளது. 174 00:13:29,310 --> 00:13:34,200 நாம் சரம் "இந்த cs50 உள்ளது," இருந்தால் நாம், டி குறிப்பிடப்பட்டுள்ளது எத்தனை முறை எண்ணுவதற்கு 175 00:13:34,200 --> 00:13:38,420 ம குறிப்பிட்டுள்ளார், நான், கள், கேட்ச், 5, 0. 176 00:13:38,420 --> 00:13:42,010 என்ன நான் இங்கே இல்லை, நான் ஊன்றி சிவப்பு முனைகளில் உள்ளது 177 00:13:42,010 --> 00:13:48,530 நான் என் மரத்தின் கீழே இறுதியில் இந்த எழுத்துக்கள் போகிறேன் என்றார். 178 00:13:48,530 --> 00:13:51,740 அந்த இலைகள் அனைத்து போகிறீர்கள். 179 00:13:51,740 --> 00:13:58,200 பிறகு என்ன செய்தேன், நான் ஏறுவரிசையில் உள்ள அதிர்வெண் அவர்கள் வரிசையில் உள்ளது 180 00:13:58,200 --> 00:14:02,950 இந்த உண்மையில் pset குறியீடு இது என்று வழி 181 00:14:02,950 --> 00:14:07,550 இது அதிர்வெண் மூலம் வகையான அது பின்னர் அகர வரிசைப்படி உள்ளது. 182 00:14:07,550 --> 00:14:13,870 எனவே அதிர்வெண் அகர வரிசையில் முதல் மற்றும் எண்கள் உள்ளன. 183 00:14:13,870 --> 00:14:18,520 என்ன நான் என்ன செய்ய நான் 2 குறைவான என்பதாகும். அந்த 0 மற்றும் 5 தான். 184 00:14:18,520 --> 00:14:22,390 நான் அவர்களை தொகையிடும், மற்றும் அந்த 2 தான். நான் அடுத்த 2 குறைவான, தொடரும். 185 00:14:22,390 --> 00:14:26,100 அந்த இரண்டு 1 வி, மற்றும் அதன் பின்னர் அதே போன்று 2 ஆக. 186 00:14:26,100 --> 00:14:31,570 இப்போது நான் என் அடுத்த படி, குறைந்த எண்ணிக்கையிலான சேர வேண்டும் என்று எனக்கு தெரியும் 187 00:14:31,570 --> 00:14:41,380 இதில், 1 டி, மற்றும் அதன் அதிர்வெண் 2 என்று கணுக்களின் ஒரு தேர்வு. 188 00:14:41,380 --> 00:14:44,560 இங்கு நாம் 3 விருப்பங்களை வேண்டும். 189 00:14:44,560 --> 00:14:47,980 நான் ஸ்லைடிற்கான செய்ய போகிறேன் என்ன தான் பார்வை நீங்கள் அவற்றை மறுசீரமைக்க 190 00:14:47,980 --> 00:14:51,790 அதனால் நான் அதை கட்டி நான் எப்படி பார்க்க முடியும். 191 00:14:51,790 --> 00:14:59,040 குறியீடு மற்றும் உங்கள் விநியோகம் குறியீடு செய்ய என்ன டி ஒரு சேர வேண்டும் 192 00:14:59,040 --> 00:15:01,410 0 மற்றும் 5 முனை கொண்ட. 193 00:15:01,410 --> 00:15:05,060 எனவே பின்னர் 3 தொகைகள், மற்றும் நாம் செயல்பாட்டை தொடர வேண்டும் என்று. 194 00:15:05,060 --> 00:15:08,660 2 மற்றும் 2 இப்போது மிகவும் பின், 4 அந்த தொகை குறைந்த உள்ளன. 195 00:15:08,660 --> 00:15:12,560 அனைவருக்கும் இதுவரை தொடர்ந்து? சரி. 196 00:15:12,560 --> 00:15:16,410 அதன் பின்னர் நாம், 3 மற்றும் சேர்க்க வேண்டும் என்று 3 வேண்டும் 197 00:15:16,410 --> 00:15:21,650 நீங்கள் மிகவும் அசுத்தமாக இல்லை என்று பார்வை மிகவும் பார்க்க முடியும் என்று, அதனால் மீண்டும் நான் அதை மாற்ற. 198 00:15:21,650 --> 00:15:25,740 நாம் மட்டும் 2 முனைகளில் வேண்டும் என்று நாம் ஒரு 6 வேண்டும், பின்னர் நமது இறுதி முடிவை இப்போது 199 00:15:25,740 --> 00:15:30,440 நாங்கள் 10 இது எங்கள் மரம், வேர் செய்ய அந்த தொகை. 200 00:15:30,440 --> 00:15:34,100 ஒவ்வொரு முனையும் குறிப்பிடப்படுகின்றன ஏனெனில் மற்றும் எண் 10, அர்த்தமுள்ளதாக 201 00:15:34,100 --> 00:15:40,750 அவற்றின் மதிப்பு, அவற்றின் அலைவரிசை எண்ணை, அவர்கள் சரம் தோன்றினார் எத்தனை முறை ஆகும் 202 00:15:40,750 --> 00:15:46,350 பின்னர் நாங்கள் எங்கள் சரம் 5 எழுத்துக்கள், அர்த்தமுள்ளதாக என்று. 203 00:15:48,060 --> 00:15:52,320 நாம் உண்மையில் அது குறியாக்கம் என்பதை பாருங்க, நீங்கள் 204 00:15:52,320 --> 00:15:56,580 எதிர்பார்த்தபடி, நான் மற்றும் பெரும்பாலும் தோன்றும் கள், 205 00:15:56,580 --> 00:16:01,350 பிட்கள் fewest பல குறிப்பிடப்படுகின்றன. 206 00:16:03,660 --> 00:16:05,660 >> இங்கு கவனமாக இருக்க வேண்டும். 207 00:16:05,660 --> 00:16:09,780 ஹஃப்மேன் மரங்கள் வழக்கு உண்மையில் விஷயம். 208 00:16:09,780 --> 00:16:13,670 ஒரு தொடரை எஸ் ஒரு ஸ்மால் கள் விட வித்தியாசமாக இருக்கும். 209 00:16:13,670 --> 00:16:21,260 நாம் இருந்தால், ஸ்மால் கள் மட்டும் இரண்டு முறை தோன்றும் பின்னர், மூலதன எழுத்தில் "இந்த CS50 இல்லை" 210 00:16:21,260 --> 00:16:27,120 அதன் மதிப்பு 2 ஒரு முனை வேண்டும், பிறகு தொடரை எஸ் ஒருமுறை மட்டுமே இருக்கும். 211 00:16:27,120 --> 00:16:33,440 நீங்கள் உண்மையில் இங்கே ஒரு கூடுதல் இலை ஏனெனில் அதனால் உங்கள் மரம் கட்டமைப்புகள் மாற்ற வேண்டும். 212 00:16:33,440 --> 00:16:36,900 ஆனால் தொகை இன்னும் 10 இருக்கும். 213 00:16:36,900 --> 00:16:39,570 என்று, நாம் உண்மையில் செக்சம் அழைப்பு போகிறாய் என்ன 214 00:16:39,570 --> 00:16:44,060 எண்ணிக்கைகள் அனைத்து கூடுதலாக. 215 00:16:46,010 --> 00:16:50,990 >> இப்போது நாம் ஹஃப்மேன் மரங்கள் மூடப்பட்டிருக்கும் என்று, நாம் Huff'n பஃப், pset ஒரு டைவ் முடியும். 216 00:16:50,990 --> 00:16:52,900 நாம், கேள்விகளை ஒரு பிரிவை தொடங்க போகிறீர்கள் 217 00:16:52,900 --> 00:16:57,990 மற்றும் இந்த பைனரி மரங்கள் மற்றும் எப்படி என்று சுற்றி செயல்பட கூடிய பழக்கமில்லை போகிறது: 218 00:16:57,990 --> 00:17:03,230 வரைய முனைகள், ஒரு முனை உங்கள் சொந்த typedef struct உருவாக்கி, 219 00:17:03,230 --> 00:17:07,230 நீங்கள் ஒரு பைனரி மரம், வரிசைப்படுத்தப்பட்ட என்று ஒரு செருக எப்படி பார்த்து, 220 00:17:07,230 --> 00:17:09,050 அது, அந்த மாதிரி விஷயங்களை பயணித்து. 221 00:17:09,050 --> 00:17:14,560 அந்த அறிவு நிச்சயம் Huff'n பஃப் பகுதியை நோக்கி போது நீங்கள் முழுக்கு உங்களுக்கு உதவ போகிறது 222 00:17:14,560 --> 00:17:17,089 pset வேண்டும். 223 00:17:19,150 --> 00:17:26,329 Pset நிலையான பதிப்பில், உங்கள் பணி, பஃப் செயல்படுத்த உள்ளது 224 00:17:26,329 --> 00:17:30,240 மற்றும் ஹேக்கர் பதிப்பு உங்கள் பணி திடீரென தோன்றும் கோப செயல்படுத்த உள்ளது. 225 00:17:30,240 --> 00:17:38,490 திடீரென தோன்றும் கோப நிலை உள்ளது என்ன, அதை உரையை எடுத்து கொண்டு அதை 0 க்கள் மற்றும் 1 வி அதை மொழிபெயர்த்தால் 226 00:17:38,490 --> 00:17:41,990 நாம் அதிர்வெண்கள் கணக்கில் அங்கு நாம் மேலே என்று செயல்முறை 227 00:17:41,990 --> 00:17:50,970 பின்னர் மரம் செய்த பின்னர், அவர், "நான் எப்படி டி கிடைக்கும்?" 228 00:17:50,970 --> 00:17:54,840 டி 100 குறிப்பிடப்படுகின்றன, அந்த மாதிரி விஷயங்களை, 229 00:17:54,840 --> 00:17:58,860 பின்னர் திடீரென தோன்றும் கோப உரை பின்னர் வெளியீடு என்று பைனரி எடுக்கும். 230 00:17:58,860 --> 00:18:04,920 ஆனால் நாம் செய்தி நம் பெறுநர் அனுமதிக்க வேண்டும் என்று எனக்கு தெரியும் 231 00:18:04,920 --> 00:18:11,790 அதே மரம் உருவாக்க, இது அதிர்வெண் எண்ணிக்கைகள் பற்றிய தகவல்களை சேர்க்கிறது. 232 00:18:11,790 --> 00:18:17,980 பின்னர் பஃப் நாம் 0 க்கள் மற்றும் 1 வி ஒரு பைனரி கோப்பு வழங்கப்படும் 233 00:18:17,980 --> 00:18:21,740 மேலும் அதிர்வெண்கள் பற்றி தகவல் கொடுக்கப்பட்டது. 234 00:18:21,740 --> 00:18:26,740 நாம், அந்த அசல் செய்தியில் அந்த 0 க்கள் மற்றும் 1 வி மீண்டும் அனைத்து மொழிபெயர்க்க 235 00:18:26,740 --> 00:18:29,350 எனவே நாம் அந்த decompressing. 236 00:18:29,350 --> 00:18:36,450 நீங்கள் நிலையான பதிப்பு செய்கிறீர்கள் என்றால், நீங்கள், திடீரென தோன்றும் கோப செயல்படுத்த தேவையில்லை 237 00:18:36,450 --> 00:18:39,290 எனவே நீங்கள் தான் திடீரென தோன்றும் கோப பணியாளர்களால் செயல்படுத்த பயன்படுத்தலாம். 238 00:18:39,290 --> 00:18:42,080 அதை எப்படி ஸ்பெக் உள்ள வழிமுறைகளை உள்ளன. 239 00:18:42,080 --> 00:18:48,780 நீங்கள் ஒரு குறிப்பிட்ட உரை கோப்பு மீது திடீரென தோன்றும் கோப பணியாளர்களால் செயல்படுத்த முடியும் 240 00:18:48,780 --> 00:18:53,270 பின்னர் பஃப் உங்கள் உள்ளீடு என்று வெளியீடு பயன்படுத்த. 241 00:18:53,270 --> 00:18:59,330 >> நான் முன்பு கூறியது போல, நாம் இந்த ஒரு விநியோக குறியீடு நிறைய இருக்கிறது. 242 00:18:59,330 --> 00:19:01,810 நான் அதை கடந்து தொடங்க போகிறேன். 243 00:19:01,810 --> 00:19:04,400 நான் பெரும்பாலான நேரம் செலவிட போகிறேன். H கோப்புகள் 244 00:19:04,400 --> 00:19:07,660 நாங்கள். h ஏனெனில். கேட்ச் கோப்புகளில், ஏனெனில் 245 00:19:07,660 --> 00:19:11,650 என்று, செயல்பாடுகளை முன்மாதிரிகளை எங்களுக்கு வழங்குகிறது 246 00:19:11,650 --> 00:19:15,520 நாம் முழுமையாக சரியாக புரிந்து கொள்ள தேவையில்லை - 247 00:19:15,520 --> 00:19:20,280 நீங்கள். கேட்ச் கோப்புகளில் என்ன நடக்கிறது என்று புரியவில்லை என்றால், மிகவும் கவலை படாதே 248 00:19:20,280 --> 00:19:23,600 அது சில குறிப்புகள் கொடுக்க வேண்டும், ஏனெனில் ஆனால் கண்டிப்பாக பாருங்கள் முயற்சி 249 00:19:23,600 --> 00:19:29,220 அது மற்ற மக்களின் குறியீடு படித்து பழகி கொள்ள பயனுள்ளதாக இருக்கும். 250 00:19:38,940 --> 00:19:48,270 >> Huffile.h பார்த்து, கருத்துக்களில் இது ஹஃப்மேன்-குறியீட்டு கோப்புகளை சுருக்க ஒரு அடுக்கு அறிவிக்கிறது. 251 00:19:48,270 --> 00:20:01,660 நாம் கீழே சென்றால், நாம் குறியீடுகளை வேண்டும் என்று 256 குறியீடுகள் அதிகபட்ச உள்ளது என்று பார்க்க. 252 00:20:01,660 --> 00:20:05,480 மேல்வரிசை மற்றும் ஸ்மால் - - இந்த எழுத்துக்கள் அனைத்து எழுத்துக்களையும் கொண்டுள்ளது 253 00:20:05,480 --> 00:20:08,250 பின்னர் சின்னங்கள் மற்றும் எண்கள், முதலியன 254 00:20:08,250 --> 00:20:11,930 பின்னர் இங்கே நாம் ஒரு ஹஃப்மேன்-குறியீட்டு கோப்பு அடையாளம் ஒரு மேஜிக் எண். 255 00:20:11,930 --> 00:20:15,890 ஒரு ஹஃப்மேன் குறியீடு உள்ள ஒரு சில மேஜிக் எண் போகிறது 256 00:20:15,890 --> 00:20:18,560 தலைப்பு தொடர்புடைய. 257 00:20:18,560 --> 00:20:21,110 இந்த, ஒரு சீரற்ற மேஜிக் எண் இருக்கும் 258 00:20:21,110 --> 00:20:27,160 நீங்கள் உண்மையில் ASCII, அதை மொழிபெயர்க்க வேண்டும் ஆனால், அது உண்மையில் திடீரென தோன்றும் கோப அவுட் சுட்டிக்காட்டியவை. 259 00:20:27,160 --> 00:20:34,290 இங்கே நாம் ஒரு ஹஃப்மேன்-குறியேற்றப்பட்ட கோப்பு ஒரு struct வேண்டும். 260 00:20:34,290 --> 00:20:39,670 ஒரு திடீரென தோன்றும் கோப கோப்பு தொடர்புடைய இந்த பண்புகள் அனைத்து உள்ளது. 261 00:20:39,670 --> 00:20:47,080 பின்னர் கீழே இங்கே நாம் ஒரு திடீரென தோன்றும் கோப கோப்பு தலைப்பு, எனவே அதை Huffeader அழைப்பு 262 00:20:47,080 --> 00:20:50,810 அதற்கு பதிலாக அதை எப்படியும் அதே ஒலிக்கும் ஏனெனில் கூடுதல் h சேர்க்கும். 263 00:20:50,810 --> 00:20:52,720 அழகு. 264 00:20:52,720 --> 00:20:57,790 நாம் அது தொடர்புடைய ஒரு மேஜிக் எண். 265 00:20:57,790 --> 00:21:09,040 அது ஒரு உண்மையான திடீரென தோன்றும் கோப கோப்பு இருந்தால், அது, மேலே மேலே இந்த மேஜிக் ஒரு எண் இருக்கும் நடக்கிறது. 266 00:21:09,040 --> 00:21:14,720 பின்னர் அது ஒரு வரிசை இருக்கும். 267 00:21:14,720 --> 00:21:18,750 எனவே ஒவ்வொரு குறியீட்டிற்கும், இதில் 256 உள்ளன 268 00:21:18,750 --> 00:21:24,760 அந்த குறியீடுகளை அதிர்வெண் திடீரென தோன்றும் கோப கோப்பு உள்ள என்ன பட்டியலிட நடக்கிறது. 269 00:21:24,760 --> 00:21:28,090 பின்னர் இறுதியாக, நாம், அதிர்வெண்களை ஒரு செக்சம் வேண்டும் 270 00:21:28,090 --> 00:21:32,160 அந்த அதிர்வெண்கள் தொகை இருக்க வேண்டும். 271 00:21:32,160 --> 00:21:36,520 அதனால் தான் என்ன ஒரு Huffeader உள்ளது. 272 00:21:36,520 --> 00:21:44,600 நாம் திடீரென தோன்றும் கோப கோப்பில் அடுத்த பிட் திரும்ப சில செயல்பாடுகளை 273 00:21:44,600 --> 00:21:52,580 அத்துடன் hfclose, இங்கே இந்த விழா பின், திடீரென தோன்றும் கோப கோப்பு ஒரு பிட் எழுதுகிறார், மற்றும் 274 00:21:52,580 --> 00:21:54,650 என்று உண்மையில் திடீரென தோன்றும் கோப கோப்பு நிறைவடைகிறது. 275 00:21:54,650 --> 00:21:57,290 முன்னர், நாம், நேராக தான் fclose கையாள்வதில் 276 00:21:57,290 --> 00:22:01,190 ஆனால் நீங்கள் ஒரு திடீரென தோன்றும் கோப கோப்பு போது, அதற்கு பதிலாக அது fclosing பற்றி 277 00:22:01,190 --> 00:22:06,080 என்ன நீங்கள் உண்மையில் செய்ய போகிறோம் hfclose மற்றும் அதை hfopen உள்ளது. 278 00:22:06,080 --> 00:22:13,220 அந்த நாம் கையாளும் போகிறாய் என்று கடுப்புடன் கோப்புகள் குறிப்பிட்ட செயல்பாடுகள் இருக்கும். 279 00:22:13,220 --> 00:22:19,230 பின்னர் இங்கே நாம் ஹெட்டரில் படித்து பின் தலைப்பு எழுத. 280 00:22:19,230 --> 00:22:25,700 >> தான். H கோப்பை படித்து நாம், ஒரு திடீரென தோன்றும் கோப கோப்பு இருக்கலாம் என்ன ஒரு உணர்வு பெற என்ன செய்ய முடியும் 281 00:22:25,700 --> 00:22:32,480 இது, உண்மையில் huffile.c செல்லும் இல்லாமல், என்ன பண்புகள் 282 00:22:32,480 --> 00:22:36,750 இது, நாம் டைவ் என்றால், சற்று சிக்கலாக இருக்கும். 283 00:22:36,750 --> 00:22:41,270 அதை நான் / ஓ இங்கே சுட்டிகள் கையாள்வதில் கோப்பு அனைத்து உள்ளது. 284 00:22:41,270 --> 00:22:48,010 இங்கே நாம் hfread அழைக்க போது, உதாரணமாக, அதை இன்னும் fread கையாள்வதில் என்று பார்க்க. 285 00:22:48,010 --> 00:22:53,050 நாம் முற்றிலும் அந்த செயல்பாடுகளை விட்டொழிக்க வேண்டும், ஆனால் நாம் பார்த்து கொள்ள அந்த அனுப்பி வருகிறோம் 286 00:22:53,050 --> 00:22:59,760 மாறாக அது நம்மை அனைத்து செய்யும் திடீரென தோன்றும் கோப கோப்பு உள்ளே. 287 00:22:59,760 --> 00:23:02,300 நீங்கள் ஆர்வம் என்றால் நீங்கள் இந்த வழியாக ஸ்கேன் இலவச உணர முடியும் 288 00:23:02,300 --> 00:23:08,410 போய் திரும்பி அடுக்கு சிறிது தலாம். 289 00:23:20,650 --> 00:23:24,060 >> நாம் பார்க்க போகிறோம் என்று அடுத்த கோப்பு tree.h. உள்ளது 290 00:23:24,060 --> 00:23:30,210 ஒத்திகையும் ஸ்லைடுகள் முன்பு நாம் ஒரு ஹஃப்மேன் முனை எதிர்பார்க்க கூறினார் 291 00:23:30,210 --> 00:23:32,960 நாம் ஒரு typedef struct முனை ஏற்படுத்தினார். 292 00:23:32,960 --> 00:23:38,360 நாம் அது ஒரு குறியீடாக, ஒரு அதிர்வெண், பின்னர் 2 முனை நட்சத்திரங்கள் வேண்டும் எதிர்பார்க்கிறோம். 293 00:23:38,360 --> 00:23:41,870 இந்த வழக்கில் நாம் என்ன செய்கிறோம் இந்த அடிப்படையில் தான் இருக்கிறது 294 00:23:41,870 --> 00:23:46,880 அதற்கு பதிலாக முனையத்தின் தவிர நாம் மரங்கள் அழைக்க போகிறோம். 295 00:23:48,790 --> 00:23:56,760 நீங்கள் மரம் செய்ய அழைப்பு போது அது ஒரு மரம் சுட்டிக்காட்டி கொடுக்கிறது என்று ஒரு செயல்பாடு இருக்கும். 296 00:23:56,760 --> 00:24:03,450 நீங்கள் ஒரு புதிய கணு செய்யும் போது, Speller செல்ல 297 00:24:03,450 --> 00:24:11,410 நீங்கள் கூறியது முனை * புதிய வார்த்தை = malloc (sizeof) மற்றும் அந்த போன்ற விஷயங்கள். 298 00:24:11,410 --> 00:24:17,510 அடிப்படையில், mktree நீங்கள் அந்த கையாள்வதில் போகிறது. 299 00:24:17,510 --> 00:24:20,990 இதேபோல், ஒரு மரத்தை அகற்ற வேண்டும் போது, 300 00:24:20,990 --> 00:24:24,810 அந்த அடிப்படையில், நீங்கள் முடித்துவிட்டீர்கள் போது மரம் பெறலாம் 301 00:24:24,810 --> 00:24:33,790 அதற்கு பதிலாக வெளிப்படையாக அந்த இலவச அழைத்து, நீங்கள் உண்மையில் ஒரு rmtree செயல்பாட்டை பயன்படுத்த போகிறோம் 302 00:24:33,790 --> 00:24:40,360 நீங்கள் அந்த மரத்தை சுட்டிக்காட்டி உள்ள கடக்க மற்றும் tree.c நீங்கள் அதை பார்த்துக்கொள்வேன். 303 00:24:40,360 --> 00:24:42,490 >> நாம் tree.c. பார்க்க 304 00:24:42,490 --> 00:24:47,240 நாம் அதே செயல்படுத்த பார்க்க தவிர அதே செயல்பாடுகளை எதிர்பார்க்கிறோம். 305 00:24:47,240 --> 00:24:57,720 நாங்கள் எதிர்பார்த்தபடி, நீங்கள் mktree அழைக்க போது, ஒரு சுட்டிக்காட்டி ஒரு மரத்தின் அளவு mallocs 306 00:24:57,720 --> 00:25:03,190 NULL மதிப்பை, அதனால் 0s அல்லது NULLs, இந்த மதிப்புகள் அனைத்து துவக்கும் 307 00:25:03,190 --> 00:25:08,280 பின்னர் நீங்கள் உங்களை malloc'd நான் அந்த மரத்தை சுட்டிக்காட்டி கொடுக்கிறது. 308 00:25:08,280 --> 00:25:13,340 இங்கே நீங்கள் மரம் நீக்க அழைக்க போது அதை முதலில் நீங்கள் இரட்டை பெறலாம் இல்லை என்பதை நீங்கள் உறுதி செய்கிறது. 309 00:25:13,340 --> 00:25:18,320 அதை நீங்கள் உண்மையில் நீங்கள் நீக்க வேண்டும் என்று ஒரு மரம் வேண்டும் என்று கூறுகிறது. 310 00:25:18,320 --> 00:25:23,330 ஒரு மரம் கூட அதன் குழந்தைகள் உட்பட, இங்கே தான் 311 00:25:23,330 --> 00:25:29,560 இது என்ன இது மறுசுழலில் மரம் இடது முனை மீது மரம் நீக்க வேண்டும் 312 00:25:29,560 --> 00:25:31,650 அதே வலது முனைக்கு என. 313 00:25:31,650 --> 00:25:37,790 இது பெற்றோர் வெறுமையாக்கப்படுகிறது முன், இது போன்ற குழந்தைகளை விடுவிக்க வேண்டும். 314 00:25:37,790 --> 00:25:42,770 பெற்றோர் கூட வேர் மூலம் பரிமாற்றம் ஆகும். 315 00:25:42,770 --> 00:25:46,500 அதனால் பெரும் பெரும் பெரும் தாத்தா போல் முதல் பெற்றோர், 316 00:25:46,500 --> 00:25:52,130 அல்லது பாட்டி மரம், முதல் முதலில் அளவுகளை கீழே விடுவிக்க வேண்டும். 317 00:25:52,130 --> 00:25:58,490 எனவே அந்த இலவச, கீழே பயணிக்கின்றன, பின்னர் அந்த போன்றவற்றை, மீண்டும் இலவச வரும் 318 00:26:00,400 --> 00:26:02,210 அந்த மரம் தான். 319 00:26:02,210 --> 00:26:04,240 >> இப்போது நாம் காட்டில் இருக்கும். 320 00:26:04,240 --> 00:26:09,860 உங்கள் ஹஃப்மேன் மரங்கள் அனைத்து வைக்க காட்டிற்கு உள்ளது. 321 00:26:09,860 --> 00:26:12,910 இது ஒரு சதி என நாம் ஏதாவது செய்ய போகிறோம் என்று 322 00:26:12,910 --> 00:26:22,320 ஒரு மரம் ஒரு சுட்டிக்காட்டி அத்துடன் அடுத்த ஒரு சதி ஒரு சுட்டிக்காட்டி உள்ளது. 323 00:26:22,320 --> 00:26:28,480 என்ன கட்டமைப்பு போன்ற தோற்றத்தை இது என்ன? 324 00:26:29,870 --> 00:26:32,490 இது மாதிரியான அங்கே என்கிறார். 325 00:26:34,640 --> 00:26:36,700 வலது இங்கு. 326 00:26:37,340 --> 00:26:39,170 ஒரு இணைக்கப்பட்ட பட்டியலில். 327 00:26:39,170 --> 00:26:44,590 நாம் ஒரு சதி போது அதை அடுக்கு ஒரு இணைக்கப்பட்ட பட்டியலில் போல என்று. 328 00:26:44,590 --> 00:26:53,020 ஒரு காட்டில், அடுக்கு ஒரு இணைக்கப்பட்ட பட்டியலில் வரையறுக்கப்படுகிறது 329 00:26:53,020 --> 00:26:58,100 எனவே காட்டு கட்டமைப்பை நாம் நமது முதல் கதை ஒரு சுட்டிக்காட்டி போகிறது என்று 330 00:26:58,100 --> 00:27:02,740 அந்த சதி இது ஒரு மரம் உள்ளது அல்லது ஒரு மரத்தை இடங்களும் 331 00:27:02,740 --> 00:27:06,190 பின்னர் மிகவும் மற்றும் மிகவும் முன்னும் பின்னும், அடுத்த சதி சுட்டி காட்டும். 332 00:27:06,190 --> 00:27:11,100 ஒரு காட்டில் செய்ய நாம் mkforest அழைப்பு. 333 00:27:11,100 --> 00:27:14,930 நாம் இங்கே சில அழகான பயன்மிக்க செயல்பாடுகளை கொண்டிருப்பதில்லை. 334 00:27:14,930 --> 00:27:23,240 நீங்கள் திரும்பி மதிப்பு ஒரு மரம் * இது ஒரு காட்டில் கடந்து, எங்கே நாம், எடுக்க வேண்டும் 335 00:27:23,240 --> 00:27:25,210 ஒரு மரம் ஒரு சுட்டிக்காட்டி. 336 00:27:25,210 --> 00:27:29,370 என்ன தேர்வு செய்ய உங்களுக்கு சுட்டி என்று அது காட்டிற்கு செல்ல வேண்டும் என்பது தான் 337 00:27:29,370 --> 00:27:35,240 பின்னர் அந்த காட்டில் இருந்து குறைந்த அதிர்வெண் ஒரு மரம் அகற்ற 338 00:27:35,240 --> 00:27:38,330 பின்னர் அந்த மரத்தை நீங்கள் சுட்டிக்காட்டி கொடுக்க. 339 00:27:38,330 --> 00:27:43,030 உன்னை அழைத்து அழைப்பு முறை, மரம், இனி காடுகளில் இல்லை 340 00:27:43,030 --> 00:27:48,550 ஆனால் திரும்பி மதிப்பு என்று மரத்தை சுட்டிக்காட்டி இருக்கிறது. 341 00:27:48,550 --> 00:27:50,730 நீங்கள் ஆலை உள்ளது. 342 00:27:50,730 --> 00:27:57,420 நீங்கள் ஒரு அல்லாத 0 அதிர்வெண் கொண்ட ஒரு மரம் ஒரு சுட்டிக்காட்டி உள்ள கடக்க வேண்டும், 343 00:27:57,420 --> 00:28:04,040 என்ன ஆலை செய்வேன் அது, காடுகள் எடுத்து மரம் எடுத்து, மற்றும் ஆலை வேண்டும் என்று காட்டின் மரம் உள்ளே. 344 00:28:04,040 --> 00:28:06,370 இங்கே நாம் rmforest வேண்டும். 345 00:28:06,370 --> 00:28:11,480 அடிப்படையில் எங்களுக்கு மரங்கள் அனைத்தும் விடுதலை இதில் மரம், நீக்க ஒத்த 346 00:28:11,480 --> 00:28:16,600 காட்டில் நீக்க அந்த காட்டில் உள்ள இலவச எல்லாம் சாப்பிடுவேன். 347 00:28:16,600 --> 00:28:24,890 >> நாம் forest.c பார்த்து இருந்தால், நாம், அங்கு குறைந்த பட்சம் 1 rmtree கட்டளையை பார்க்க எதிர்பார்க்க வேண்டும் 348 00:28:24,890 --> 00:28:30,090 ஏனெனில் ஒரு காட்டில் உள்ள மரங்கள் இருந்தால் காட்டில் இலவச நினைவகம், 349 00:28:30,090 --> 00:28:32,930 பின்னர் இறுதியாக நீங்கள் கூட அந்த மரங்களை அகற்ற வேண்டும். 350 00:28:32,930 --> 00:28:41,020 நாம் forest.c பார்த்து இருந்தால், நாம் எதிர்பார்க்க என இது எங்கள் mkforest, இல்லை. 351 00:28:41,020 --> 00:28:42,890 நாம் malloc விஷயங்கள். 352 00:28:42,890 --> 00:28:51,740 அதை தொடங்குவதற்கு காலியாக ஏனெனில் நாங்கள், NULL என காடு முதல் சதி துவக்க 353 00:28:51,740 --> 00:29:05,940 நாம் குறைந்த எடை கொண்ட மரம் கொடுக்கிறது இதில் தேர்வு, குறைந்த அதிர்வெண், பார்க்க 354 00:29:05,940 --> 00:29:13,560 பின்னர் அந்த குறிப்பிட்ட முனை ஒழித்துவிட்டதென்றால் அந்த மரத்தை புள்ளிகள் மற்றும் அடுத்த ஒரு, 355 00:29:13,560 --> 00:29:16,760 அது காட்டின் இணைக்கப்பட்ட பட்டியலில் என்று ஆகும். 356 00:29:16,760 --> 00:29:24,510 பின்னர் இங்கே நாம் எந்த இணைக்கப்பட்ட பட்டியலில் செருகி ஒரு மரம் செடி, இல்லை. 357 00:29:24,510 --> 00:29:29,960 என்ன காடு அதை நன்றாக எங்களுக்கு வரிசைப்படுத்தப்பட்ட கொண்டே இருக்கிறது. 358 00:29:29,960 --> 00:29:37,910 பின்னர் இறுதியாக, நாம் எதிர்பார்த்தபடி, நாம் அங்கு அழைத்து rmtree வேண்டும், rmforest மற்றும். 359 00:29:46,650 --> 00:29:55,440 >> இதுவரை விநியோகம் குறியீடு பார்த்து, huffile.c, புரிந்து கொள்ள மிக கடினமான மூலம் ஒருவேளை இருந்தது 360 00:29:55,440 --> 00:29:59,990 மற்ற கோப்புகளை தாங்களாகவே பின்பற்ற மிகவும் எளிமையான இருந்தன. 361 00:29:59,990 --> 00:30:03,090 சுட்டிகள் மற்றும் தொடர்புடைய பட்டியல்கள் மற்றும் நமது அறிவை கொண்டு, 362 00:30:03,090 --> 00:30:04,860 நாம் மிகவும் நன்றாக பின்பற்ற முடிந்தது. 363 00:30:04,860 --> 00:30:10,500 ஆனால் உண்மையில் நாம் முழுமையாக புரிந்து என்பதை உறுதி செய்ய வேண்டும் அனைத்து. H கோப்புகள் இல்லை 364 00:30:10,500 --> 00:30:15,840 நீங்கள், அந்த பதிலுக்கு மதிப்புகள் கையாள்வதில், அந்த செயல்பாடுகளை அழைப்பு வேண்டும், ஏனெனில் 365 00:30:15,840 --> 00:30:20,590 எனவே நீங்கள் முழுமையாக செயல்படுத்த வேண்டும் என்ன நடவடிக்கை புரிந்து என்று உறுதி 366 00:30:20,590 --> 00:30:24,290 அந்த செயல்பாடுகளை ஒரு அழைப்பு போதெல்லாம். 367 00:30:24,290 --> 00:30:33,020 ஆனால் உண்மையில் அது உள்ளே புரிந்து நாம் அந்த ஏனெனில் மிக அவசியம் இல்லை. H கோப்புகள். 368 00:30:35,170 --> 00:30:39,490 நாம் எமது விநியோக குறியீடு விட்டு 2 கோப்புகள் இல்லை. 369 00:30:39,490 --> 00:30:41,640 >> இது திணிப்பு பார்க்கிறேன். 370 00:30:41,640 --> 00:30:47,230 இங்கே அதன் கருத்து மூலம் திணிப்பு ஒரு ஹஃப்மேன்-சுருக்கப்பட்ட கோப்பை எடுக்கும் 371 00:30:47,230 --> 00:30:55,580 பின்னர் மொழிபெயர்கப்பட்டுள்ளது மற்றும் டம்ப் அதன் உள்ளடக்கம் ஆல் அவுட். 372 00:31:01,010 --> 00:31:04,260 இங்கே நாம் hfopen அழைப்பு என்று பார்க்க. 373 00:31:04,260 --> 00:31:10,770 இந்த, * உள்ளீடு = fopen தாக்கல் செய்ய பிரதிபலிக்கும் வகையாக 374 00:31:10,770 --> 00:31:13,500 பின்னர் நீங்கள் தகவலை அனுப்ப. 375 00:31:13,500 --> 00:31:18,240 அதற்கு பதிலாக, நீங்கள் ஒரு Huffile கடந்து செல்லும் என்று ஒரு கோப்பு * என்ற தவிர கிட்டத்தட்ட ஒரே மாதிரியாக தான்; 376 00:31:18,240 --> 00:31:22,030 அதற்கு பதிலாக fopen நீங்கள் hfopen கடந்து செல்லும். 377 00:31:22,030 --> 00:31:29,280 இங்கே நாம் வகையான நாம் ஹெட்டரில் படிக்க எப்படி ஒத்த இது, முதல் தலைப்பு படித்தேன் 378 00:31:29,280 --> 00:31:33,580 ஒரு பிட்மேப் கோப்பு. 379 00:31:33,580 --> 00:31:38,000 நாம் இங்கே செய்கிறீர்கள் காண சோதனை என்பதை தலைப்பு தகவல் 380 00:31:38,000 --> 00:31:44,330 அது ஒரு உண்மையான திடீரென தோன்றும் கோப கோப்பு என்று குறிக்கிறது என்று உரிமை மேஜிக் எண் உள்ளது, 381 00:31:44,330 --> 00:31:53,610 பின்னர் உறுதி செய்ய இந்த காசோலைகள் அனைத்தும் நாம் திறந்த ஒரு உண்மையான huffed கோப்பு அல்லது இல்லை என்று கோப்பு என்று. 382 00:31:53,610 --> 00:32:05,330 என்ன செய்கிறது அது நாம் பார்க்க முடியும் என்று சின்னங்கள் அனைத்தும் அதிர்வெண்கள் வெளியீடாக உள்ளது 383 00:32:05,330 --> 00:32:09,790 ஒரு வரைகலை அட்டவணை ஒரு முனையத்தில் உள்ள. 384 00:32:09,790 --> 00:32:15,240 இந்த பகுதி பயனுள்ளதாக இருக்கும். 385 00:32:15,240 --> 00:32:24,680 அது ஒரு பிட் உள்ளது மற்றும் மாறி பிட் ஒரு பிட் பிட் படிக்கிறார் பின்னர் அதை அச்சிடுகிறது. 386 00:32:28,220 --> 00:32:35,430 நான் ஒரு கோப்பு huffing விளைவு இது hth.bin, மீது டம்ப் அழைக்க என்று நீங்கள் 387 00:32:35,430 --> 00:32:39,490 ஊழியர்கள் தீர்வு பயன்படுத்தி, நான் இந்த கிடைக்கும். 388 00:32:39,490 --> 00:32:46,000 இந்த எழுத்துக்கள் அனைத்து outputting பின்னர் அவர்கள் தோன்றும் எந்த அதிர்வெண் வைத்தது. 389 00:32:46,000 --> 00:32:51,180 நாம் பார்த்தால், அவர்கள் மிக இந்த தவிர 0s உள்ளன: இரண்டு முறை தோன்றும் இதில் எச்,, 390 00:32:51,180 --> 00:32:54,820 பின்னர் ஒரு முறை தோன்றும் இது டி. 391 00:32:54,820 --> 00:33:07,860 பின்னர் இங்கே நாம் 0 க்கள் மற்றும் 1 வி உண்மையான செய்தி. 392 00:33:07,860 --> 00:33:15,450 நாம் hth.txt பார்த்தால், இது, மறைமுகமாக huffed என்று அசல் செய்தி 393 00:33:15,450 --> 00:33:22,490 நாம் அங்கு சில அதிகபட்ச மற்றும் Ts பார்க்க எதிர்பார்க்கிறோம். 394 00:33:22,490 --> 00:33:28,720 குறிப்பாக, நாம் வெறும் 1 டி மற்றும் 2 அதிகபட்ச பார்க்க எதிர்பார்க்கிறோம். 395 00:33:32,510 --> 00:33:37,440 இங்கே நாம் hth.txt உள்ளன. அது உண்மையில் HTH உள்ளது. 396 00:33:37,440 --> 00:33:41,270 நாங்கள் அதை பார்க்க முடியாது என்றாலும், அங்கு சேர்க்கப்பட்டுள்ளது, ஒரு வரியில் முடிவதற்கு சற்று கதாபாத்திரம். 397 00:33:41,270 --> 00:33:53,190 திடீரென தோன்றும் கோப கோப்பு hth.bin மேலும் அதே NEWLINE தன்மையை என்கோடிங். 398 00:33:55,680 --> 00:34:01,330 இங்கே நாம், ஒழுங்கு NEWLINE பின்னர் HTH மற்றும் என்று 399 00:34:01,330 --> 00:34:07,340 நாம் ஒரு ஒற்றை 1 அநேகமாக எச் குறிப்பிடப்படுகின்றன என்று பார்க்கலாம் 400 00:34:07,340 --> 00:34:17,120 பின்னர் டி அநேகமாக 01 மற்றும் அடுத்த எச் 1 மற்றும் 401 00:34:17,120 --> 00:34:21,139 பின்னர் நாம் இரண்டு 0s சுட்டிக்காட்டப்படுகிறது ஒரு NEWLINE வேண்டும். 402 00:34:22,420 --> 00:34:24,280 Cool. 403 00:34:26,530 --> 00:34:31,600 >> பின்னர் இறுதியாக, நாம் பல. கேட்ச் கையாள்வதில் மற்றும். நீங்கள் ஏனெனில் h கோப்புகள், 404 00:34:31,600 --> 00:34:36,350 நாம், ஒடுக்கி ஒரு அழகான சிக்கலான வாதம் போகிறது 405 00:34:36,350 --> 00:34:40,460 எனவே இங்கு நாம் உங்களுக்கு டம்ப் செய்கிறது என்று ஒரு Makefile வேண்டும். 406 00:34:40,460 --> 00:34:47,070 ஆனால் உண்மையில், நீங்கள் உங்கள் சொந்த puff.c கோப்பினை உருவாக்கும் பற்றி போக வேண்டும். 407 00:34:47,070 --> 00:34:54,330 Makefile உண்மையில் நீங்கள் puff.c செய்யும் சமாளிக்க முடியாது. 408 00:34:54,330 --> 00:34:59,310 நாம் Makefile திருத்த நீங்கள் அதை விட்டு. 409 00:34:59,310 --> 00:35:05,930 நீங்கள் அனைத்து போன்ற ஒரு கட்டளையை உள்ளிட போது, உதாரணமாக, நீங்கள் அனைவரும் செய்யும். 410 00:35:05,930 --> 00:35:10,760 கடந்த pset இருந்து Makefile உதாரணங்களை பார்க்க எனக்கு 411 00:35:10,760 --> 00:35:17,400 அதே போல் உங்கள் பஃப் கோப்பு செய்ய முடியும் என்பதை இந்த ஒரு போகவில்லை 412 00:35:17,400 --> 00:35:20,260 இந்த Makefile திருத்தி. 413 00:35:20,260 --> 00:35:22,730 என்று நம் விநியோகம் குறியீடு அதை பற்றி. 414 00:35:22,730 --> 00:35:28,380 >> நாம் அந்த வழியாக வந்திருக்கிறேன் முறை, பின்னர் இங்கே இன்னொரு நினைவூட்டல் தான் 415 00:35:28,380 --> 00:35:30,980 எப்படி நாம் ஹஃப்மேன் முனைகளில் கையாள்வதில் போகிறாய். 416 00:35:30,980 --> 00:35:35,400 நாம் இனி அவர்கள் முனைகளில் அழைப்பு வேண்டும் போவதில்லை; நாம் அவர்களை மரங்கள் அழைப்பு போகிறாய் 417 00:35:35,400 --> 00:35:39,260 நாம் ஒரு எரிப்பதை தங்கள் அடையாளத்தை குறிக்கும் போகிறாய் அங்கு, 418 00:35:39,260 --> 00:35:43,340 அவற்றின் அதிர்வெண், ஒரு முழு எண் கொண்ட நிகழ்வுகள் பல. 419 00:35:43,340 --> 00:35:47,370 அது ஒரு மிதவை விட துல்லியமான காரணம் நாம் பயன்படுத்தி வருகிறோம். 420 00:35:47,370 --> 00:35:52,980 மற்றும் நாம் இடது குழந்தை போல் வலது குழந்தை மற்றொரு சுட்டிக்காட்டி இருக்கிறது. 421 00:35:52,980 --> 00:35:59,630 ஒரு காட்டில், நாம் கண்டது போல, வெறும் மரம் ஒரு இணைக்கப்பட்ட பட்டியலில் உள்ளது. 422 00:35:59,630 --> 00:36:04,670 இறுதியில், நாங்கள் எங்கள் திடீரென தோன்றும் கோப கோப்பு உருவாகின்றனர் போது, 423 00:36:04,670 --> 00:36:07,580 நாங்கள் எங்கள் காடுகள் தான் 1 மரம் கொண்டிருக்க வேண்டும் - 424 00:36:07,580 --> 00:36:12,420 1 மரம், பல குழந்தைகள் 1 ரூட். 425 00:36:12,420 --> 00:36:20,840 முந்தைய நாம் நமது ஹஃப்மேன் மரங்கள் செய்யும் போது மீது, 426 00:36:20,840 --> 00:36:25,360 நாம் திரையில் மீது முனைகள் அனைத்து வைப்பதன் மூலம் தொடங்கியது 427 00:36:25,360 --> 00:36:27,790 மேலும், நாம் இந்த முனைகளில் போகிறது என்று 428 00:36:27,790 --> 00:36:32,920 இறுதியில் அவர்கள் இலைகள் போகிறாய், மற்றும் இந்த அவர்களது சின்னம், இந்த அவற்றின் அதிர்வெண். 429 00:36:32,920 --> 00:36:42,070 நாம் மட்டும் 3 கடிதங்கள் இருந்தால் நம் காடுகளில், அந்த 3 மரங்கள் ஒரு காட்டில் தான். 430 00:36:42,070 --> 00:36:45,150 பின்னர் நாம், நாம் முதலில் பெற்றோர் சேர்த்தனர் போது, செல்லவேண்டும் 431 00:36:45,150 --> 00:36:48,080 நாங்கள் 2 மரங்கள் ஒரு காடு இருந்தது. 432 00:36:48,080 --> 00:36:54,930 நாம் நமது காட்டில் இருந்து அந்த குழந்தைகள் 2 நீக்கப்பட்ட பின்னர் பெற்றோர் முனை அதை பதிலாக 433 00:36:54,930 --> 00:36:58,820 அந்த குழந்தைகள் என அந்த 2 முனைகளில் இருந்தது. 434 00:36:58,820 --> 00:37:05,600 பின்னர் இறுதியாக, எமது கடந்த நிலையில், BS நமது எடுத்துக்காட்டாக செய்து கொண்ட படி, மற்றும் Cs 435 00:37:05,600 --> 00:37:08,030 இறுதி பெற்றோர் செய்ய வேண்டும், 436 00:37:08,030 --> 00:37:13,190 அதனால், பின்னர் 1 காடுகளில் மரங்களை எங்கள் மொத்த எண்ணிக்கை கொண்டு என்று. 437 00:37:13,190 --> 00:37:18,140 எல்லோரும் உங்கள் காட்டில் பல மரங்கள் தொடங்கும் எப்படி பார்க்கிறது 438 00:37:18,140 --> 00:37:22,520 மற்றும் 1 முடிவடையும்? சரி. Cool. 439 00:37:25,530 --> 00:37:28,110 >> நாம் என்ன பஃப் செய்ய வேண்டும்? 440 00:37:28,110 --> 00:37:37,110 நாம் என்ன செய்ய வேண்டும் என்று எப்போதும், அவர்கள் நம்மை உள்ளீடு வலது வகை கொடுக்க, உறுதி 441 00:37:37,110 --> 00:37:39,090 நாம் உண்மையில் நிரலை இயக்க முடியும். 442 00:37:39,090 --> 00:37:43,130 இந்த வழக்கில் அவர்கள் முதல் கட்டளை வரி வாதம் பிறகு எங்களுக்கு கொடுக்க போகிறாய் 443 00:37:43,130 --> 00:37:53,440 2 மேலும்: நாங்கள் decompress மற்றும் decompressed கோப்பின் வெளியீடு விரும்பும் கோப்பு. 444 00:37:53,440 --> 00:38:00,410 ஆனால் நாம், அவர்கள் மதிப்புகள் சரியான அளவு நம்மை கடந்து என்று உறுதி 445 00:38:00,410 --> 00:38:05,820 நாம் உள்ளீடு ஒரு திடீரென தோன்றும் கோப கோப்பு அல்லது இல்லை என்று உறுதி செய்ய வேண்டும். 446 00:38:05,820 --> 00:38:10,420 பின்னர் மீண்டும் நாம், நாம் நமது மரம் உருவாக்க வேண்டும், அது ஒரு திடீரென தோன்றும் கோப கோப்பு என்று உத்தரவாதம் 447 00:38:10,420 --> 00:38:20,940 இது செய்தி அனுப்பிய நபர் கட்டப்பட்ட அந்த மரத்தில் பொருந்தும் என்று மரத்தில் கட்டி. 448 00:38:20,940 --> 00:38:25,840 நாம் மரம் கட்ட பிறகு, நாம் சேர்ந்து 0 க்கள் மற்றும் அவர்கள் இயற்றியது என்று 1 வி, சமாளிக்க முடியாது 449 00:38:25,840 --> 00:38:29,590 இது ஒரே காரணம், நம் மரம் சேர்ந்து அந்த பின்பற்ற 450 00:38:29,590 --> 00:38:33,510 பின்னர், அந்த செய்தியை எழுத எழுத்துகள் மீண்டும் பிட்கள் விளக்குவது. 451 00:38:33,510 --> 00:38:35,880 பின்னர் இறுதியில் நாம், இங்கே சுட்டிகள் கையாள்வதில் ஏனெனில் 452 00:38:35,880 --> 00:38:38,110 நாம் எந்த நினைவக கசிவை இல்லை என்பதை உறுதி செய்ய வேண்டும் 453 00:38:38,110 --> 00:38:41,330 என்று நாம் இலவச எல்லாம். 454 00:38:42,820 --> 00:38:46,430 >> சரியான பயன்பாடு உறுதி இப்போது நமக்கு பழைய தொப்பி. 455 00:38:46,430 --> 00:38:51,980 நாம் ஒரு உள்ளீடு அழைத்து, இது ஊதி வெளியிடும் சிறு மூச்சு (அ) புகை கோப்பின் பெயர் இருக்கும், 456 00:38:51,980 --> 00:38:56,010 பின்னர் நாம், ஒரு வெளியீடு குறிப்பிட 457 00:38:56,010 --> 00:39:01,580 எனவே உரை கோப்பு எந்த பொங்கிய வெளியீடு, கோப்பு பெயர். 458 00:39:03,680 --> 00:39:08,820 அந்த பயன்பாடு இருக்கிறது. இப்போது நாம் உள்ளீடு huffed அல்லது இல்லை என்று உறுதி செய்ய வேண்டும். 459 00:39:08,820 --> 00:39:16,420 மீண்டும் நினைத்து, எங்களுக்கு உதவும் என்று விநியோகம் குறியீடு அங்கே எதுவும் இல்லை 460 00:39:16,420 --> 00:39:21,570 ஒரு கோப்பு huffed இல்லையா புரிந்து கொண்டு? 461 00:39:21,570 --> 00:39:26,910 Huffeader பற்றி huffile.c தகவல் இருந்தது. 462 00:39:26,910 --> 00:39:33,430 நாம் ஒவ்வொரு திடீரென தோன்றும் கோப கோப்பு ஒரு மேஜிக் எண் அது தொடர்புடைய ஒரு Huffeader உண்டு என்பது எனக்கு தெரியும் 463 00:39:33,430 --> 00:39:37,240 ஒவ்வொரு குறியீடும் அதிர்வெண்களின் அதே போல் ஒரு வரிசை 464 00:39:37,240 --> 00:39:39,570 அத்துடன் ஒரு செக்சம் என்று. 465 00:39:39,570 --> 00:39:43,180 நாம் என்று, ஆனால் நாங்கள், dump.c ஒரு கண்ணோட்டம் எடுத்து 466 00:39:43,180 --> 00:39:49,120 இதில் ஒரு திடீரென தோன்றும் கோப கோப்பில் படித்து கொண்டிருந்தேன். 467 00:39:49,120 --> 00:39:53,990 அதனால் அதை செய்ய, அது உண்மையில் huffed அல்லது இல்லை என சோதிக்க வேண்டும். 468 00:39:53,990 --> 00:40:03,380 அதனால் நாம் நம் puff.c. ஒரு அமைப்பு என dump.c பயன்படுத்த முடியும் 469 00:40:03,380 --> 00:40:12,680 மீண்டும் pset 4 நாம் RGB மும்மடிகள் உள்ள நகல் கோப்பை copy.c போது 470 00:40:12,680 --> 00:40:14,860 நாம், ஹூட்யூனிட் மற்றும் மறுஅளவிடு அந்த விளக்கம் 471 00:40:14,860 --> 00:40:20,390 இதேபோல், நீங்கள் என்ன செய்ய முடியும் வெறும் cp dump.c puff.c போன்ற கட்டளையை இயக்கவும் 472 00:40:20,390 --> 00:40:23,600 மற்றும் அங்கு குறியீடு சில பயன்படுத்தவும். 473 00:40:23,600 --> 00:40:28,210 இருப்பினும், இது ஒரு செயல்முறை நேரடியாக இருக்க போவதில்லை 474 00:40:28,210 --> 00:40:33,010 puff.c உங்கள் dump.c மொழிபெயர்ப்பது செய்ய, 475 00:40:33,010 --> 00:40:36,160 ஆனால் குறைந்தபட்சம் அதை தொடங்க நீங்கள் எங்காவது கொடுக்கிறது 476 00:40:36,160 --> 00:40:40,540 உள்ளீடு உண்மையில் huffed அல்லது இல்லை என்று உறுதி எப்படி 477 00:40:40,540 --> 00:40:43,240 அத்துடன் ஒரு சில விஷயங்கள். 478 00:40:45,930 --> 00:40:50,250 நாம் சரியான பயன்பாடு உறுதி மற்றும் உள்ளீடு huffed என்று உறுதி. 479 00:40:50,250 --> 00:40:53,570 நாம் நமது சரியான பிழை சோதனை செய்யப்படுகிறது என்று செய்துவிட்டேன் என்று ஒவ்வொரு முறையும், 480 00:40:53,570 --> 00:41:01,520 ஒரு பிரச்சனை என்றால், மீண்டும் சில தோல்வி ஏற்பட்டால் செயல்பாடு விட்டுவிடுதல். 481 00:41:01,520 --> 00:41:07,170 >> இப்போது நாம் என்ன செய்ய வேண்டும் உண்மையான மரம் கட்டி உள்ளது. 482 00:41:08,840 --> 00:41:12,640 நாம் காடுகளில் இருக்கும் என்றால், 2 முக்கிய பணிகள் உள்ளன 483 00:41:12,640 --> 00:41:15,800 நாம் மிகவும் பழக்கமான ஆக வேண்டும் போகிறோம் என்று. 484 00:41:15,800 --> 00:41:23,870 அங்கு பூலியன் செயல்பாடு ஆலை என்று எங்கள் காட்டில் உள்ளே ஒரு அல்லாத 0 அதிர்வெண் மரம் செடிகள். 485 00:41:23,870 --> 00:41:29,250 எனவே அங்கு ஒரு காட்டில் ஒரு மரம் ஒரு சுட்டிக்காட்டி ஒரு சுட்டிக்காட்டி உள்ள கடக்க. 486 00:41:32,530 --> 00:41:40,340 விரைவு கேள்வி: நீங்கள் ஒரு ஹஃப்மேன் மரம் கட்டி போது எத்தனை காடுகள் நீ? 487 00:41:44,210 --> 00:41:46,650 எங்கள் காடுகள் சரி, நம் கேன்வாஸ் போன்ற? 488 00:41:46,650 --> 00:41:50,800 நாம் மட்டும் 1 காட்டில் போகிறது, ஆனால் நாம் பல மரங்கள் போகிறது. 489 00:41:50,800 --> 00:41:57,590 நீங்கள் தாவர அழைப்பு முன்னர், நீங்கள் மறைமுகமாக உங்கள் காட்டில் செய்ய வேண்டும் போகிறோம். 490 00:41:57,590 --> 00:42:04,430 நீங்கள் ஒரு காட்டின் செய்யலாம் எப்படி forest.h பார்க்க ஒரு கட்டளை என்று உள்ளது. 491 00:42:04,430 --> 00:42:09,270 நீங்கள் ஒரு மரத்தின் தாவர முடியும். நாம் அதை எப்படி தெரியும். 492 00:42:09,270 --> 00:42:11,590 மேலும் நீ, காட்டில் இருந்து ஒரு மரம் எடுக்க முடியாது 493 00:42:11,590 --> 00:42:17,540 குறைந்த எடை கொண்ட ஒரு மரம் நீக்குவது என்று நீங்கள் சுட்டிக்காட்டி கொடுக்கும். 494 00:42:17,540 --> 00:42:23,090 நாம் உதாரணங்கள் நம்மை செய்துகொண்டு போது மீண்டும் நினைத்து, 495 00:42:23,090 --> 00:42:27,980 நாம் அது வரையும் போது, நாங்கள் வெறுமனே ஒரு சேர்க்கவில்லை. 496 00:42:27,980 --> 00:42:31,680 ஆனால் இங்கே பதிலாக தான், இணைப்புகளை சேர்ப்பதன் 497 00:42:31,680 --> 00:42:40,630 அந்த கணுக்களின் 2 நீக்கி பின்னர் மற்றொரு அதை பதிலாக நீங்கள் இன்னும் அதை நினைத்து. 498 00:42:40,630 --> 00:42:44,200 பறிப்பதாக மற்றும் நடுவதற்கு அடிப்படையில் அந்த வெளிப்படுத்த, 499 00:42:44,200 --> 00:42:48,840 நீங்கள் 2 மரங்கள் எடுக்கவில்லை பின்னர் மற்றொரு மரம் நடுதல் 500 00:42:48,840 --> 00:42:54,060 என்று நீங்கள் குழந்தைகளை போல் எடுத்து அந்த 2 மரங்கள் உள்ளன. 501 00:42:57,950 --> 00:43:05,280 ஹஃப்மேன் மரம் உருவாக்க, நீங்கள் வரிசையில் குறியீடுகள் மற்றும் அதிர்வெண்கள் படிக்க முடியும் 502 00:43:05,280 --> 00:43:10,790 Huffeader உங்களுக்கு கொடுக்கிறது ஏனெனில், 503 00:43:10,790 --> 00:43:14,250 நீங்கள் அதிர்வெண்கள் ஒரு வரிசை கொடுக்கிறது. 504 00:43:14,250 --> 00:43:19,660 எனவே நீங்கள் செல்லலாம் மற்றும் அதை உள்ள 0 எதையும் புறக்கணிக்க 505 00:43:19,660 --> 00:43:23,760 நாம் அது முடிவில் 256 இலைகள் விரும்பவில்லை என்பதால். 506 00:43:23,760 --> 00:43:27,960 நாம் மட்டும் எழுத்துக்கள் என்று இலைகள் எண்ணிக்கை வேண்டும் 507 00:43:27,960 --> 00:43:31,600 என்று உண்மையில் கோப்பு பயன்படுத்தப்படும். 508 00:43:31,600 --> 00:43:37,590 நீங்கள், அந்த குறியீடுகளை படிக்க, அல்லாத 0 அதிர்வெண்களை அந்த குறியீடுகளை ஒவ்வொரு முடியாது 509 00:43:37,590 --> 00:43:40,440 அந்த மரங்கள் இருக்கும். 510 00:43:40,440 --> 00:43:45,990 நீங்கள் என்ன செய்ய முடியும், நீங்கள் ஒரு அல்லாத 0 அதிர்வெண் குறியீடாக வாசிக்க ஒவ்வொரு முறை 511 00:43:45,990 --> 00:43:50,660 நீங்கள் காட்டில் அந்த மரத்தில் தாவர முடியும். 512 00:43:50,660 --> 00:43:56,620 நீ காட்டு மரங்களின் தாவர முறை, நீங்கள் உடன்பிறந்தவர்கள் என அந்த மரங்கள் சேர, முடியாது 513 00:43:56,620 --> 00:44:01,130 எனவே, நடுவதற்கு மற்றும் உன்னை அழைத்து அங்கு எடுக்கவில்லை 2 பின்னர் தாவர 1 செல்கிறேன் 514 00:44:01,130 --> 00:44:05,820 அங்கு 1 என்று நீங்கள் ஆலை நீங்கள் தேர்ந்தெடுத்த 2 குழந்தைகள் பெற்றோர் என்று. 515 00:44:05,820 --> 00:44:11,160 எனவே, உங்கள் முடிவு உங்கள் காட்டில் ஒரு மரம் இருக்கும். 516 00:44:16,180 --> 00:44:18,170 என்று நீங்கள் உங்கள் மரம் உருவாக்க எப்படி. 517 00:44:18,170 --> 00:44:21,850 >> இங்கே தவறு என்று பல விஷயங்கள் உள்ளன 518 00:44:21,850 --> 00:44:26,580 ஏனெனில் நாம் புதிய மரங்கள் செய்யும் என்று போன்ற சுட்டிகள் மற்றும் பொருட்களை கையாளும் கையாள்வதில். 519 00:44:26,580 --> 00:44:30,450 நாம் சுட்டிகள் கையாளும் போது முன், 520 00:44:30,450 --> 00:44:36,580 நாம் malloc'd போதெல்லாம் நாம் ஒரு NULL சுட்டிக்காட்டி மதிப்பு தரவில்லை என்று விரும்பினார். 521 00:44:36,580 --> 00:44:42,770 இந்த செயல்முறை உள்ள பல படிகள் பல சந்தர்ப்பங்களில் இருக்க போகிறோம் 522 00:44:42,770 --> 00:44:45,920 அங்கு உங்கள் திட்டம் தோல்வியடையும் வாய்ப்புள்ளது. 523 00:44:45,920 --> 00:44:51,310 நீ என்ன செய்ய வேண்டும், நீங்கள் அந்த பிழைகளை கையாள என்பதை உறுதி செய்ய வேண்டும் என்று 524 00:44:51,310 --> 00:44:54,580 மற்றும் ஸ்பெக் அது, மனதார அவற்றை கையாள நிதி 525 00:44:54,580 --> 00:45:00,280 எனவே நிரலை விட்டு வேண்டும் ஏன் இன்னும் சொல்ல பயனர் ஒரு செய்தியை அச்சிட போன்ற 526 00:45:00,280 --> 00:45:03,050 பின்னர் உடனடியாக அதை விட்டு. 527 00:45:03,050 --> 00:45:09,490 இந்த பிழை கையாளுதல் செய்ய, நீங்கள் அதை பார்க்க வேண்டும் என்று நினைவில் 528 00:45:09,490 --> 00:45:12,160 தோல்வி இருக்கும் என்று ஒவ்வொரு முறை. 529 00:45:12,160 --> 00:45:14,660 நீங்கள் ஒரு புதிய சுட்டிக்காட்டி செய்கிறாய் என்று ஒவ்வொரு முறை 530 00:45:14,660 --> 00:45:17,040 நீங்கள் வெற்றி என்று உறுதிப்படுத்தி கொள்ள வேண்டும். 531 00:45:17,040 --> 00:45:20,320 நாம் ஒரு புதிய சுட்டிக்காட்டி மற்றும் malloc அதை தான் செய்ய பயன்படுத்தப்படும் என்ன முன், 532 00:45:20,320 --> 00:45:22,380 பின்னர் நாம் சுட்டிக்காட்டி NULL என்பதை சரிபார்க்க வேண்டும். 533 00:45:22,380 --> 00:45:25,670 எனவே, நீங்கள் அதை தான் முடியும் சில சமயங்களில் இருக்க போகிறோம் 534 00:45:25,670 --> 00:45:28,610 ஆனால் சில நேரங்களில் நீங்கள் உண்மையில் ஒரு செயல்பாடு அழைப்பு 535 00:45:28,610 --> 00:45:33,100 அந்த செயல்பாடு இருக்கும், என்று mallocing செய்வது என்று தான். 536 00:45:33,100 --> 00:45:39,110 அந்த வழக்கில், நாம் குறியீடு உள்ள செயல்பாடுகளை சில திரும்பி பார்த்து, 537 00:45:39,110 --> 00:45:42,260 இன்னும் சில பூலியன் செயல்பாடுகள் இருக்கும். 538 00:45:42,260 --> 00:45:48,480 சுருக்க வழக்கில் நாம் foo என ஒரு பூலியன் செயல்பாடு இருந்தால், 539 00:45:48,480 --> 00:45:54,580 அடிப்படையில், நாங்கள், foo என்ன செய்தாலும் செய்து கூடுதலாக என்று நினைத்து கொள்ளுங்கள் 540 00:45:54,580 --> 00:45:57,210 அது ஒரு பூலியன் செயல்பாடு என்பதால், அது உண்மையா பொய்யா கொடுக்கிறது - 541 00:45:57,210 --> 00:46:01,300 நீங்கள் உண்மையான வெற்றி, தவறான என்றால் இல்லை. 542 00:46:01,300 --> 00:46:06,270 நாம் foo திரும்ப மதிப்பு சரி அல்லது தவறு என்பதை சரிபார்க்க வேண்டும். 543 00:46:06,270 --> 00:46:10,400 இது தவறு என்றால், அது நாம் செய்தி சில வகையான அச்சிட வேண்டும் போகிறீர்கள் என்று அர்த்தம் 544 00:46:10,400 --> 00:46:14,390 பின்னர் திட்டத்தை கைவிட்டார். 545 00:46:14,390 --> 00:46:18,530 நாம் என்ன செய்ய வேண்டும் foo திரும்ப மதிப்பு சோதனை ஆகும். 546 00:46:18,530 --> 00:46:23,310 Foo தவறான கொடுக்கிறது என்றால், நாம் பிழை சில வகையான ஏற்பட்டுள்ளது என்று 547 00:46:23,310 --> 00:46:25,110 நாம் நமது திட்டத்தை விட்டு நீங்கள் வெளியேற வேண்டும். 548 00:46:25,110 --> 00:46:35,600 இதை செய்ய ஒரு வழி உண்மையான செயல்பாடு தன்னை உங்கள் நிலை எங்கே ஒரு நிபந்தனை இருக்கிறது. 549 00:46:35,600 --> 00:46:39,320 Foo x எடுத்து சொல்ல. 550 00:46:39,320 --> 00:46:43,390 நாம் ஒரு நிபந்தனையாக இருக்க முடியும் (foo (x)). 551 00:46:43,390 --> 00:46:50,900 Foo இயக்கும் முடிவில் அது உண்மை கொடுக்கிறது என்றால் அடிப்படையில், அது என்னவென்றால், 552 00:46:50,900 --> 00:46:57,390 விழாவில் foo மதிப்பீடு செய்ய ஏனெனில் நாம் இதை செய்ய முடியும் 553 00:46:57,390 --> 00:47:00,500 முழு நிலையை மதிப்பீடு செய்ய வேண்டும். 554 00:47:00,500 --> 00:47:06,500 எனவே, அந்த செயல்பாடு உண்மை கொடுக்கிறது மற்றும் வெற்றிகரமான நீங்கள் ஏதாவது செய்ய முடியும் எப்படி. 555 00:47:06,500 --> 00:47:11,800 ஆனால் நீங்கள் பிழை சோதனை போது, நீங்கள் உங்கள் செயல்பாடு தவறான கொடுக்கிறது என்றால் விட்டு வேண்டும். 556 00:47:11,800 --> 00:47:16,090 என்ன செய்ய நான் சேர்க்க ஒரு == தவறான அல்லது அதை முன் களமிறங்கினார் சேர்க்க 557 00:47:16,090 --> 00:47:21,010 பின்னர் நீங்கள் (! foo) என்றால் இல்லை. 558 00:47:21,010 --> 00:47:29,540 அந்த நிலையில் அந்த உடலுக்குள் நீ, பிழை கையாளுதல் அனைத்து வேண்டும் 559 00:47:29,540 --> 00:47:36,940 எனவே "இந்த மரம் உருவாக்க முடியவில்லை", போன்ற பின்னர் 1 அல்லது அதை திருப்பி. 560 00:47:36,940 --> 00:47:43,340 என்று என்ன, எனினும், foo தவறான திரும்பி கூட என்று - 561 00:47:43,340 --> 00:47:46,980 Foo உண்மை கொடுக்கிறது என்று. 562 00:47:46,980 --> 00:47:51,060 பிறகு நீங்கள் மீண்டும் foo அழைக்க இல்லை. என்று ஒரு தவறான கருத்து பொதுவாக உள்ளது. 563 00:47:51,060 --> 00:47:54,730 இது உங்கள் நிலையில் ஏனெனில், ஏற்கனவே மதிப்பீடு, 564 00:47:54,730 --> 00:47:59,430 நீங்கள் மரம் அல்லது அந்த மாதிரி ஏதாவது செய்ய பயன்படுத்தி என்றால், அதனால் நீங்கள் ஏற்கனவே முடிவு இல்லை 565 00:47:59,430 --> 00:48:01,840 அல்லது ஆலை அல்லது தேர்வு அல்லது ஏதாவது. 566 00:48:01,840 --> 00:48:07,460 ஏற்கனவே அந்த மதிப்பை கொண்டுள்ளது. ஏற்கனவே செயல்படுத்தப்பட்ட. 567 00:48:07,460 --> 00:48:10,730 அதை நிலை போன்ற பூலியன் செயல்பாடுகளை பயன்படுத்த பயனுள்ளதாக இருக்கும் 568 00:48:10,730 --> 00:48:13,890 ஏனெனில் அல்லது நீங்கள் உண்மையில் வளைய உடல் இயக்க முடியாது, 569 00:48:13,890 --> 00:48:18,030 அதை எப்படியும் செயல்பாடு இயக்கும். 570 00:48:22,070 --> 00:48:27,330 >> கடந்த படி நமது இரண்டாவது கோப்பு செய்தியை எழுதி. 571 00:48:27,330 --> 00:48:33,070 ஒருமுறை நாங்கள் ஹஃப்மேன் மரம் கட்டி, பின் கோப்பு செய்தியை எழுதி அழகான நேர்மையானவன். 572 00:48:33,070 --> 00:48:39,260 அது 0 க்கள் மற்றும் 1 வி பின்பற்ற இப்போது மிகவும் நேரடியான தான். 573 00:48:39,260 --> 00:48:45,480 அதனால் மாநாட்டின் மூலம் நாம் ஒரு ஹஃப்மேன் கிளையில் 0s விட்டு குறிக்கின்றன என்று 574 00:48:45,480 --> 00:48:48,360 மற்றும் 1 வி சரியான குறிப்பிடுகின்றன. 575 00:48:48,360 --> 00:48:53,540 நீங்கள் ஒரு 0 கிடைக்கும் என்று நீங்கள் பிட் பிட் படிக்க மிகவும் பின், ஒவ்வொரு முறையும் 576 00:48:53,540 --> 00:48:59,100 நீங்கள் ஒரு 1 படிக்கும் ஒவ்வொரு முறையும் பின்னர் இடது கிளை பின்பற்ற, மற்றும் நான் 577 00:48:59,100 --> 00:49:02,100 நீங்கள் சரியான கிளை பின்பற்ற போகிறோம். 578 00:49:02,100 --> 00:49:07,570 நீங்கள் ஒரு இலை ஹிட் வரை பின் தொடர போகிறோம் 579 00:49:07,570 --> 00:49:11,550 இலைகள் கிளைகள் இறுதியில் இருக்கும் என்பதால். 580 00:49:11,550 --> 00:49:16,870 நாம் ஒரு இலை அல்லது வெற்றி தான் என்பதை எப்படி சொல்ல முடியும்? 581 00:49:19,800 --> 00:49:21,690 நாம் முன்பே சொன்னது. 582 00:49:21,690 --> 00:49:24,040 [மாணவர்] சுட்டிகள் NULL இருந்தால். >> சரி. 583 00:49:24,040 --> 00:49:32,220 இடது மற்றும் வலது ஆகிய மரங்கள் சுட்டிகளையும் NULL நாம் ஒரு இலை ஹிட் தான் நாம் சொல்ல முடியும். 584 00:49:32,220 --> 00:49:34,110 ஆனால். 585 00:49:34,110 --> 00:49:40,320 நாம் நம் திடீரென தோன்றும் கோப கோப்பில் பிட் பிட் படிக்க வேண்டும் என்று. 586 00:49:43,870 --> 00:49:51,220 நாம் dump.c முன்பு பார்த்த, அவர்கள் என்ன செய்தார்கள் அவர்கள் திடீரென தோன்றும் கோப கோப்பில் பிட் பிட் படிக்க ஆகும் 587 00:49:51,220 --> 00:49:54,560 மற்றும் அந்த பிட்கள் என்ன அச்சு. 588 00:49:54,560 --> 00:49:58,430 நாம் செய்ய போவதில்லை. நாம் சற்று சிக்கலாக என்று ஏதாவது செய்ய போகிறோம். 589 00:49:58,430 --> 00:50:03,620 ஆனால் நாம் என்ன செய்ய முடியும் நாங்கள் பிட் ல் படிக்கும் குறியீடு என்று பிட் எடுத்து முடியும். 590 00:50:03,620 --> 00:50:10,250 இங்கே நாம் இருக்கிறோம் என்பதை தற்போதைய பிட் குறிக்கும் முழு பிட் உள்ளது. 591 00:50:10,250 --> 00:50:15,520 நீங்கள் கோப்பு இறுதியில் வெற்றி வரை இந்த கோப்பில் பிட்கள் அனைத்து தேடி பார்த்து கொள்கிறாள். 592 00:50:15,520 --> 00:50:21,270 அந்த அடிப்படையில், நீங்கள் இயக்கி சில வகையான வேண்டும் போகிறாய் 593 00:50:21,270 --> 00:50:26,760 உங்கள் மரம் தொடரவேண்டும். 594 00:50:26,760 --> 00:50:31,460 பின்னர், பிட் 0 அல்லது 1 என்று அடிப்படையாக 595 00:50:31,460 --> 00:50:36,920 நீங்கள் இடது என்று இயக்கி நகர்த்த அல்லது வலது அதை நகர்த்த வேண்டும் போகிறாய் 596 00:50:36,920 --> 00:50:44,080 அனைத்து வழி நீங்கள் ஒரு இலை ஹிட் வரை, எனவே அனைத்து வழி நீங்கள் தான் அந்த முனை வரை 597 00:50:44,080 --> 00:50:48,260 மேலும் முனைகளில் சுட்டி இல்லை. 598 00:50:48,260 --> 00:50:54,300 நாம் ஏன் ஒரு ஹஃப்மேன் கோப்பு ஆனால் மோர்ஸ் குறியீடு இந்த செய்ய முடியும்? 599 00:50:54,300 --> 00:50:56,610 மோர்ஸ் குறியீடு உள்ள தெளிவின்மை ஒரு பிட் உள்ளது, ஏனெனில். 600 00:50:56,610 --> 00:51:04,440 நாங்கள் காத்திருந்தது ஓ, போன்ற இருக்க முடியும், நாம் வழியில் ஒரு கடிதம் ஹிட் தான், அதனால் இந்த, நம் கடிதம் 601 00:51:04,440 --> 00:51:08,150 நாம் ஒரு பிட் இனி தொடர்ந்து இருந்தால், நாம் மற்றொரு கடிதம் ஹிட் என்று அதேசமயம். 602 00:51:08,150 --> 00:51:13,110 ஆனால் அந்த, ஹஃப்மேன் குறியீட்டு நடக்கும் இல்லை 603 00:51:13,110 --> 00:51:17,540 எனவே நாங்கள் செல்கிறோம் என்று ஒரே வழி ஒரு பாத்திரம் அடிக்க என்று கவலைப்படாமலிருப்பேன் முடியும் 604 00:51:17,540 --> 00:51:23,480 அந்த முனை இடது மற்றும் வலது குழந்தைகள் NULL இருந்தால் தான். 605 00:51:28,280 --> 00:51:32,350 >> இறுதியாக, நம் நினைவகம் அனைத்து விடுவிக்க வேண்டும். 606 00:51:32,350 --> 00:51:37,420 நாம் கையாளும் வருகிறோம் என்று இருவரும் நெருங்கிய திடீரென தோன்றும் கோப கோப்பு வேண்டும் 607 00:51:37,420 --> 00:51:41,940 அதே போல் நம் காடுகளில் மரங்களை எல்லாம் நீக்க. 608 00:51:41,940 --> 00:51:46,470 உங்கள் செயல்பாடு அடிப்படையில், ஒருவேளை நீங்கள் காட்டில் நீக்க அழைக்க வேண்டும் போகிறாய் 609 00:51:46,470 --> 00:51:49,780 பதிலாக உண்மையில் மரங்கள் உங்களை எல்லாம் நடக்கிறது. 610 00:51:49,780 --> 00:51:53,430 நீங்கள் எந்த தற்காலிக மரங்கள் செய்தால் ஆனால், நீங்கள் அந்த விடுவிக்க வேண்டும் என்று நான் நினைக்கிறேன். 611 00:51:53,430 --> 00:51:59,060 நீங்கள் உங்கள் குறியீடு தெரியும், அதனால் நீங்கள் நினைவகத்தை ஒதுக்கீடு நீங்கள் எங்கே என்று. 612 00:51:59,060 --> 00:52:04,330 நீங்கள் போய் இவ்வளவு என்றால், malloc ஐந்து F'ing கூட கட்டுப்பாடு மூலம் தொடங்க 613 00:52:04,330 --> 00:52:08,330 பார்த்து எப்போது நீங்கள் malloc மற்றும் நீங்கள் அனைத்து விடுவித்து உறுதி செய்யும் 614 00:52:08,330 --> 00:52:10,190 ஆனால் பின்னர் தான், உங்கள் குறியீடு நடக்கிறது 615 00:52:10,190 --> 00:52:14,260 நீங்கள் நினைவகத்தை ஒதுக்கீடு என்று எங்கே புரிந்து. 616 00:52:14,260 --> 00:52:21,340 பொதுவாக நீங்கள் ", ஒரு கோப்பை இறுதியில் நான் என் காட்டில் உள்ள வன நீக்க போகிறேன்", கூறலாம் 617 00:52:21,340 --> 00:52:23,850 எனவே அடிப்படையில் இலவச, அந்த நினைவு துடைக்க என்று, 618 00:52:23,850 --> 00:52:28,310 "பின்னர் நான் கோப்பு மூட பிறகு என் திட்டத்தை விட்டு போகிறார் செல்கிறேன்." 619 00:52:28,310 --> 00:52:33,810 ஆனால் உங்கள் திட்டம் திடீர் என்று மட்டுமே நேரம்? 620 00:52:33,810 --> 00:52:37,880 இல்லை, ஏனெனில் சில நேரங்களில் நடந்தது என்று பிழை ஏற்பட்டுள்ளது. 621 00:52:37,880 --> 00:52:42,080 நாம் ஒரு கோப்பை திறக்க முடியவில்லை அல்லது நாம் மற்றொரு மரம் செய்ய முடியவில்லை 622 00:52:42,080 --> 00:52:49,340 அல்லது பிழை சில வகையான நினைவக ஒதுக்கீடு முறை நடந்த அது NULL திரும்பினார். 623 00:52:49,340 --> 00:52:56,710 ஒரு பிழை நடந்தது, பின்னர் நாங்கள் மீண்டும் விலகினார். 624 00:52:56,710 --> 00:53:02,040 எனவே நீங்கள், உங்கள் நிரல் எந்த முடியும் நேரம் விட்டு முடியும் என்பதை உறுதி செய்ய வேண்டும் 625 00:53:02,040 --> 00:53:06,980 நீங்கள் உங்கள் நினைவகம் அனைத்து விடுவிக்க வேண்டும். 626 00:53:06,980 --> 00:53:13,370 இது உங்கள் குறியீடு விட்டு அந்த முக்கிய செயல்பாடு மிகவும் இறுதியில் இருக்க போவதில்லை. 627 00:53:13,370 --> 00:53:20,780 உங்கள் குறியீடு திறன் முன்கூட்டியே வெளிவரும் ஒவ்வொரு உதாரணமாக திரும்பி பார்க்க வேண்டும் 628 00:53:20,780 --> 00:53:25,070 பின்னர் இலவச என்ன நினைவக அர்த்தமுள்ளதாக. 629 00:53:25,070 --> 00:53:30,830 நீ காட்டிற்கு செய்து அந்த தவறான திரும்ப அழைத்தார். 630 00:53:30,830 --> 00:53:34,230 பின்னர் ஒருவேளை நீங்கள் உங்கள் காட்டில் நீக்க வேண்டும் 631 00:53:34,230 --> 00:53:37,080 நீங்கள் இன்னும் ஒரு காட்டில் இல்லை என்பதால். 632 00:53:37,080 --> 00:53:42,130 ஆனால் குறியீடு ஒவ்வொரு கட்டத்திலும் நீங்கள் முன்கூட்டியே வெளிவரும் அங்கு 633 00:53:42,130 --> 00:53:46,160 நீங்கள் எந்த சாத்தியம் நினைவக என்பதை உறுதி செய்ய வேண்டும். 634 00:53:46,160 --> 00:53:50,020 >> எனவே நாம் நினைவு பெறலாம் கையாள்வதில் மற்றும் திறன் கசிவை கொண்டிருக்கும் போது, 635 00:53:50,020 --> 00:53:55,440 நாம் நம் தீர்ப்பு நம் தர்க்கம் பயன்படுத்த மட்டும் வேண்டும் 636 00:53:55,440 --> 00:54:01,850 ஆனால் நாம் ஒழுங்காக நம் நினைவகம் அனைத்து விடுவிக்க நான் என்பதை தீர்மானிக்க Valgrind பயன்படுத்த. 637 00:54:01,850 --> 00:54:09,460 நீங்கள் பஃப் மீது Valgrind இயக்க முடியும் மற்றும் நீங்கள் அதை கடக்க வேண்டும் 638 00:54:09,460 --> 00:54:14,020 கட்டளை வரி அளவுருக்களை சரியான எண்ணிக்கையில் Valgrind வேண்டும். 639 00:54:14,020 --> 00:54:18,100 நீங்கள் இயக்க முடியும், ஆனால் வெளியீடு ஒரு பிட் ரகசிய உள்ளது. 640 00:54:18,100 --> 00:54:21,630 , நாம் Speller அது பயன்படுத்தப்படும் ஒரு பிட் வந்திருக்கிறேன், ஆனால் நாம் இன்னும் கொஞ்சம் உதவி தேவை 641 00:54:21,630 --> 00:54:26,450 அதனால் பிறகு, கசிவு சரிபார்த்து = முழு போன்ற இன்னும் சில கொடிகளை கொண்டு இயங்கும் 642 00:54:26,450 --> 00:54:32,040 என்று ஒருவேளை நம்மை Valgrind சில இன்னும் பயனுள்ளதாக வெளியீடு கொடுக்கும். 643 00:54:32,040 --> 00:54:39,040 >> நீங்கள் பிழைத்திருத்தம் போது மற்றொரு பயனுள்ள முனையில் வேறுபாடு கட்டளை. 644 00:54:39,040 --> 00:54:48,520 நீங்கள், திடீரென தோன்றும் கோப நிலை பற்றிய ஊழியர்களின் செயல்படுத்த அணுக ரன் என்று ஒரு உரை கோப்பில், முடியாது 645 00:54:48,520 --> 00:54:55,400 பின்னர் குறிப்பிட்ட இருக்க வேண்டும், ஒரு பைனரி கோப்பு, ஒரு பைனரி திடீரென தோன்றும் கோப கோப்பு அது வெளியீடு. 646 00:54:55,400 --> 00:54:59,440 பின்னர் நீங்கள் அந்த பைனரி கோப்பு உங்கள் சொந்த பஃப் ரன், என்றால் 647 00:54:59,440 --> 00:55:03,950 பின்னர் பலவகையில், உங்கள் outputted உரை கோப்பு மாதிரியாக இருக்க போகிறது 648 00:55:03,950 --> 00:55:08,200 நீங்கள் கடந்து அந்த அசல் ஒரு 649 00:55:08,200 --> 00:55:15,150 இங்கே நான் உதாரணமாக hth.txt பயன்படுத்தி, மற்றும் உங்கள் குறிப்பிட்ட பேசப்படுவோம் தான். 650 00:55:15,150 --> 00:55:21,040 அந்த மொழியில் தான் HTH பின்னர் ஒரு வரியில் முடிவதற்கு சற்று நேரம். 651 00:55:21,040 --> 00:55:30,970 ஆனால் நிச்சயமாக எனக்கு நீங்கள் நிச்சயமாக இனி உதாரணங்கள் பயன்படுத்த தூண்டும் 652 00:55:30,970 --> 00:55:32,620 உங்கள் உரை கோப்பு. 653 00:55:32,620 --> 00:55:38,110 >> நீங்கள் கூட decompressing ஒருவேளை அடக்க ஒரு ஷாட் எடுக்க முடியும் 654 00:55:38,110 --> 00:55:41,600 போர் மற்றும் அமைதி போன்ற நீ Speller பயன்படுத்தப்படும் கோப்புகள் சில 655 00:55:41,600 --> 00:55:46,710 அல்லது ஜேன் ஆஸ்டின் அல்லது அப்படி ஒன்று - குளிர் என்ன என்று - அல்லது ஆஸ்டின் பவர்ஸ், 656 00:55:46,710 --> 00:55:51,880 நாம் அது பெரிய கோப்புகளை கையாளும் வகையான கீழே வரவில்லை என்பதால், 657 00:55:51,880 --> 00:55:55,590 நாம் இங்கே அடுத்த கருவி, ls-l பயன்படுத்தப்பட்டுள்ளது. 658 00:55:55,590 --> 00:56:01,150 நாம் அடிப்படையில் நமது தற்போதைய அடைவில் அனைத்து உள்ளடக்கங்களை பட்டியலிடுகிறது இது ls, பயன்படுத்தப்படும். 659 00:56:01,150 --> 00:56:07,860 கொடி எல் கடந்து செல்லும் உண்மையில் அந்த கோப்புகள் அளவு காட்டுகிறது. 660 00:56:07,860 --> 00:56:12,690 நீங்கள் pset ஸ்பெக் மூலம் சென்றால், அது உண்மையில், பைனரி கோப்பு உருவாக்கும் மூலம் உங்களை வழிநடத்தும் 661 00:56:12,690 --> 00:56:16,590 அதை huffing, மற்றும் நீங்கள் மிகவும் சிறிய கோப்புகளை பார்க்க 662 00:56:16,590 --> 00:56:23,910 அதை அடக்க அந்த தகவலை அனைத்து மொழிபெயர்ப்பது விண்வெளி செலவு 663 00:56:23,910 --> 00:56:26,980 அப்படியே அதிர்வெண்கள் மற்றும் பொருட்களை உண்மையான நன்மை கடக்கும் 664 00:56:26,980 --> 00:56:30,000 முதல் இடத்தில் கோப்பு அடக்க வேண்டும். 665 00:56:30,000 --> 00:56:37,450 நீங்கள் சில நீண்ட உரை கோப்புகள் அதனை இயக்க என்றால், நீங்கள் சில நன்மைகளை பெற தொடங்கும் என்று பார்க்கலாம் 666 00:56:37,450 --> 00:56:40,930 அந்த கோப்புகளை அடக்க வேண்டும். 667 00:56:40,930 --> 00:56:46,210 >> பின்னர் இறுதியாக, நாம் நிச்சயமாக மிகவும் எளிது வருவதாக இது நம் பழைய நண்பா GDB, இல்லை. 668 00:56:48,360 --> 00:56:55,320 >> நாம் மரங்களை உருவாக்கும் ஒருவேளை திடீரென தோன்றும் கோப மரங்கள் அல்லது செயல்முறை எந்த கேள்விகள் 669 00:56:55,320 --> 00:56:58,590 அல்லது Huff'n பஃப் வேறு எந்த கேள்விகள்? 670 00:57:00,680 --> 00:57:02,570 சரி. நான் ஒரு பிட் சுற்றி தங்குகிறேன். 671 00:57:02,570 --> 00:57:06,570 >> நன்றி, எல்லோருக்கும். இந்த ஒத்திகை 6 இருந்தது. மற்றும் அதிர்ஷ்டம் நல்ல. 672 00:57:08,660 --> 00:57:10,000 >> [CS50.TV]