1 00:00:07,260 --> 00:00:10,050 [Powered by Google Translate] நிரலாக்க, நாம் பெரும்பாலும், மதிப்புகள் பட்டியலை பிரதிநிதித்துவம் வேண்டும் 2 00:00:10,050 --> 00:00:12,840 அத்தகைய ஒரு பிரிவில் மாணவர்கள் பெயர்களை போல் 3 00:00:12,840 --> 00:00:15,100 சமீபத்திய வினாடி வினா அல்லது அவர்களது மதிப்பெண்கள். 4 00:00:15,100 --> 00:00:17,430 >> சி மொழியில், வரிசைகள் பயன்படுத்தலாம் அறிவித்தார் 5 00:00:17,430 --> 00:00:19,160 பட்டியல்கள் சேமிக்க. 6 00:00:19,160 --> 00:00:21,200 அது ஒரு பட்டியலின் தனிமங்களை கணக்கில் எளிதாக 7 00:00:21,200 --> 00:00:23,390 ஒரு வரிசையில் சேமிக்கப்படுகிறது, நீங்கள் அணுக வேண்டும் என்றால் 8 00:00:23,390 --> 00:00:25,050 அல்லது ith பட்டியல் உறுப்பு மாற்ற 9 00:00:25,050 --> 00:00:27,570 சில தன்னிச்சையான சுட்டுக்கு நான், 10 00:00:27,570 --> 00:00:29,910 என்று, தொடர்ந்து நேரத்தில் செய்ய முடியும் 11 00:00:29,910 --> 00:00:31,660 ஆனால் வரிசைகள் கூட, குறைபாடுகளும் உள்ளன. 12 00:00:31,660 --> 00:00:33,850 >> நாம் அறிவிக்கும் போது, நாம் என்ன செய்ய வேண்டும் 13 00:00:33,850 --> 00:00:35,900 அவர்கள் எப்படி பெரிய முன் வரை, 14 00:00:35,900 --> 00:00:38,160 என்று அவர்கள் சேமிக்க முடியும் என்பதை பல கூறுகள், இல்லை 15 00:00:38,160 --> 00:00:40,780 எப்படி பெரிய இந்த உறுப்புகள், அவற்றின் வகை நிர்ணயிக்கப்படும். 16 00:00:40,780 --> 00:00:45,450 உதாரணமாக, int வந்தடைவது (10) 17 00:00:45,450 --> 00:00:48,220 10 பொருட்களை சேமிக்க முடியும் 18 00:00:48,220 --> 00:00:50,200 என்று ஒரு முழு எண்ணாக அளவு இருக்கும். 19 00:00:50,200 --> 00:00:52,590 >> நாம் பிரகடனம் பிறகு ஒரு அணியின் அளவு மாற்ற முடியாது. 20 00:00:52,590 --> 00:00:55,290 நாம் இன்னும் கூறுகள் சேமிக்க வேண்டும் என்றால் நாம் ஒரு புதிய அணி உருவாக்க வேண்டும். 21 00:00:55,290 --> 00:00:57,410 இந்த வரையறை உள்ளது காரணம் என்று நம் 22 00:00:57,410 --> 00:00:59,040 நிரல் முழு வரிசை சேமித்து 23 00:00:59,040 --> 00:01:02,310 நினைவகம் ஒரு தொடர்ச்சியான துண்டின் என்று. 24 00:01:02,310 --> 00:01:04,500 இந்த நாங்கள் எங்கள் அணியின் வைத்திருந்த இடையக என்று. 25 00:01:04,500 --> 00:01:06,910 மற்ற மாறிகள் இருக்கலாம் 26 00:01:06,910 --> 00:01:08,310 வரிசை உரிமை அடுத்த அமைந்துள்ள 27 00:01:08,310 --> 00:01:10,060 நினைவகத்தில், நாம் செய்ய முடியாது 28 00:01:10,060 --> 00:01:12,060 ஒரு வரிசைக்கு பெரிய செய்யும். 29 00:01:12,060 --> 00:01:15,700 >> சில நேரங்களில் நாம் அணியின் வேக தரவு அணுகல் வேகம் வர்த்தகம் விரும்புகிறேன் 30 00:01:15,700 --> 00:01:17,650 ஒரு சிறிய அதிக நெகிழ்வு தன்மையை. 31 00:01:17,650 --> 00:01:20,380 இணைக்கப்பட்ட பட்டியலில், மற்றொரு அடிப்படை தரவு கட்டமைப்பு உள்ளிடவும் 32 00:01:20,380 --> 00:01:22,360 நீங்கள் போல பழக்கமான இருக்கலாம். 33 00:01:22,360 --> 00:01:24,200 அதிக அளவில், 34 00:01:24,200 --> 00:01:26,840 ஒரு இணைக்கப்பட்ட பட்டியலில் முனைகளில் ஒரு காட்சியில் சேமிக்கிறது 35 00:01:26,840 --> 00:01:29,280 என்று, இணைப்புகளை ஒவ்வொரு மற்ற இணைக்கப்பட்டுள்ளது 36 00:01:29,280 --> 00:01:31,760 எனவே பெயர் 'இணைக்கப்பட்ட பட்டியலில்.' 37 00:01:31,760 --> 00:01:33,840 வடிவமைப்பு நாம் பார்க்க வேண்டும் என, இந்த வேறுபாடு 38 00:01:33,840 --> 00:01:35,500 பல்வேறு நன்மைகள் மற்றும் தீமைகள் வழிவகுக்கிறது 39 00:01:35,500 --> 00:01:37,000 ஒரு அணியை காட்டிலும். 40 00:01:37,000 --> 00:01:39,840 >> இங்கே முழு ஒரு மிக எளிய இணைக்கப்பட்ட பட்டியலில் சில சி குறியீடு. 41 00:01:39,840 --> 00:01:42,190 நாம் ஒவ்வொரு கணு குறிப்பிடப்படுகின்றன என்று பார்க்கலாம் 42 00:01:42,190 --> 00:01:45,520 2 விஷயங்களை கொண்டிருக்கும் ஒரு struct என பட்டியலில், 43 00:01:45,520 --> 00:01:47,280 'வால்' என்று சேமிக்க ஒரு முழு எண் 44 00:01:47,280 --> 00:01:50,460 பட்டியலில் அடுத்த முனை மற்றும் ஒரு இணைப்பு 45 00:01:50,460 --> 00:01:52,990 நாம் ஒரு சுட்டிக்காட்டி என பிரதிநிதித்துவப்படுத்தும் 'அடுத்த.' 46 00:01:54,120 --> 00:01:56,780 இந்த வழியில், நாங்கள் முழு பட்டியல் கண்காணிக்க முடியும் 47 00:01:56,780 --> 00:01:58,790 1 முனை வெறும் ஒற்றை சுட்டிக்காட்டி கொண்டு, 48 00:01:58,790 --> 00:02:01,270 மற்றும் நாம் அடுத்த சுட்டிகள் பின்பற்ற முடியாது 49 00:02:01,270 --> 00:02:03,130 2 வது முனை வேண்டும், 50 00:02:03,130 --> 00:02:05,280 3 முனை வேண்டும், 51 00:02:05,280 --> 00:02:07,000 4 முனை வேண்டும், 52 00:02:07,000 --> 00:02:09,889 அதனால், நாங்கள் பட்டியல் இறுதியில் கிடைக்கும் வரை. 53 00:02:10,520 --> 00:02:12,210 >> இந்த கொண்டுள்ளது 1 பயன்படுத்தி பார்க்க முடியும் 54 00:02:12,210 --> 00:02:14,490 நிலையான வரிசை அமைப்பு மீது - இணைக்கப்பட்ட பட்டியல், 55 00:02:14,490 --> 00:02:16,450 நாம் முற்றிலும் நினைவகம் ஒரு பெரிய துண்டின் தேவையில்லை. 56 00:02:17,400 --> 00:02:20,530 பட்டியல் 1 முனை, நினைவக இந்த இடத்தில் வாழ முடியும் 57 00:02:20,530 --> 00:02:23,160 மற்றும் 2 வது முனை இங்கு அனைத்து வழி இருக்க முடியும். 58 00:02:23,160 --> 00:02:25,780 நினைவகத்தில் அவர்கள் எங்கே நாம், அனைத்து முனைகளில் எந்த விஷயத்தை பெற முடியும் 59 00:02:25,780 --> 00:02:28,890 ஏனெனில் ஒவ்வொரு கணு அடுத்த சுட்டிக்காட்டி, 1 வது முனை தொடங்கும் 60 00:02:28,890 --> 00:02:31,700 சரியாக அங்கு அடுத்த செல்ல நமக்கு சொல்கிறது. 61 00:02:31,700 --> 00:02:33,670 >> மேலும், நாம் முன் வரை சொல்ல இல்லை 62 00:02:33,670 --> 00:02:36,740 எவ்வளவு பெரிய ஒரு இணைக்கப்பட்ட பட்டியலில், நாங்கள் நிலையான வரிசைகள் செய்ய வழி இருக்கும் 63 00:02:36,740 --> 00:02:39,060 நாம் ஒரு பட்டியலில் முனைகளில் சேர்க்க முடியும் என்பதால் 64 00:02:39,060 --> 00:02:42,600 நீண்ட இடைவெளி புதிய முனைகள் நினைவகம் எங்கோ இருக்கிறது என்று. 65 00:02:42,600 --> 00:02:45,370 எனவே, தொடர்புடைய பட்டியல்கள் மாறும் அளவை எளிதாக இருக்கும். 66 00:02:45,370 --> 00:02:47,950 பின்னர் திட்டத்தில் நாம் இன்னும் முனைகளில் சேர்க்க வேண்டும், என்று 67 00:02:47,950 --> 00:02:49,350 எங்கள் பட்டியலில். 68 00:02:49,350 --> 00:02:51,480 ஈ எங்கள் பட்டியலில் ஒரு புதிய கணு செருக, 69 00:02:51,480 --> 00:02:53,740 நாம் செய்ய வேண்டியதெல்லாம், அந்த முனைக்கு நினைவகத்தை ஒதுக்க உள்ளது 70 00:02:53,740 --> 00:02:55,630 தரவு மதிப்பு உழை, 71 00:02:55,630 --> 00:02:59,070 நாம் சரியான சுட்டிகள் சரிசெய்வதன் மூலம் தேவையான மற்றும் அது வைக்க. 72 00:02:59,070 --> 00:03:02,310 >> உதாரணமாக, நாம் இடையே ஒரு முனை வைக்க விரும்பினால் 73 00:03:02,310 --> 00:03:04,020 பட்டியலில் 2 வது மற்றும் 3 வது முனைகள், 74 00:03:04,020 --> 00:03:06,800  நாங்கள் 2 வது அல்லது 3 வது முனைகளில் நகர்த்த வேண்டும் என்று. 75 00:03:06,800 --> 00:03:09,190 இந்த சிவப்பு முனை சேர்க்கைக்கு சொல்கிறீர்கள். 76 00:03:09,190 --> 00:03:12,890 நாம் என்ன செய்ய வேண்டும் என்று அனைத்து புதிய கணு அடுத்த சுட்டிக்காட்டி அமைக்கப்படுகிறது 77 00:03:12,890 --> 00:03:14,870 3 முனை சுட்டிக்காட்ட 78 00:03:14,870 --> 00:03:18,580 பின்னர் 2 வது முனை அடுத்த சுட்டிக்காட்டி கம்பியிட்டு 79 00:03:18,580 --> 00:03:20,980 எங்கள் புதிய கணு சுட்டிக்காட்ட. 80 00:03:22,340 --> 00:03:24,370 எனவே, நாம் பறக்க எங்கள் பட்டியல்கள் மறுஅளவிடும் 81 00:03:24,370 --> 00:03:26,090 நம் கணினி அட்டவணையிடுதல் சார்ந்து இல்லை என்பதால், 82 00:03:26,090 --> 00:03:28,990 ஆனால் அவற்றை சேமிக்க சுட்டிகள் பயன்படுத்தி இணைக்கும் மீது. 83 00:03:29,120 --> 00:03:31,600 >> எனினும், ஒரு அனுகூலமற்ற இணைக்கப்பட்ட பட்டியல்கள் 84 00:03:31,600 --> 00:03:33,370 என்று, ஒரு நிலையான வரிசை போல், 85 00:03:33,370 --> 00:03:36,690 கணினி ஒரு பட்டியல் நடுத்தர செல்ல முடியாது. 86 00:03:38,040 --> 00:03:40,780 கணினி இணைக்கப்பட்ட பட்டியலில் ஒவ்வொரு கணு சென்று கொண்டிருப்பதால் 87 00:03:40,780 --> 00:03:42,330 அடுத்த ஒரு பெற, 88 00:03:42,330 --> 00:03:44,770 இது ஒரு குறிப்பிட்ட முனை கண்டுபிடிக்க நீண்ட கொள்ள நடக்கிறது 89 00:03:44,770 --> 00:03:46,400 இது ஒரு வரிசையில் என விட. 90 00:03:46,400 --> 00:03:48,660 முழு பட்டியல் விகிதாசார நேரம் எடுத்து பிரயாணம் 91 00:03:48,660 --> 00:03:50,580 பட்டியல் நீளம், 92 00:03:50,580 --> 00:03:54,630 அல்லது ஓ (n) அணுகுமுறை குறிமுறையில். 93 00:03:54,630 --> 00:03:56,510 சராசரியாக, எந்த முனை அடைவதில் 94 00:03:56,510 --> 00:03:58,800 மேலும் நேரம் n நேர்விகிதத்தில் எடுக்கும். 95 00:03:58,800 --> 00:04:00,700 >> இப்போது, அது உண்மையில் சில குறியீடு எழுத அனுமதி 96 00:04:00,700 --> 00:04:02,000 அந்த இணைக்கப்பட்ட பட்டியல்கள் வேலை. 97 00:04:02,000 --> 00:04:04,220 நாம் முழு ஒரு இணைக்கப்பட்ட பட்டியலில் வேண்டும் என்று. 98 00:04:04,220 --> 00:04:06,140 நாங்கள் மீண்டும் எங்கள் பட்டியலில் ஒரு முனை பிரதிநிதித்துவம் முடியாது 99 00:04:06,140 --> 00:04:08,340 2 துறைகளில் ஒரு struct என, 100 00:04:08,340 --> 00:04:10,750 'வால்' என ஒரு முழு எண் மதிப்பை 101 00:04:10,750 --> 00:04:13,490 மற்றும் பட்டியல் அடுத்த முனையில் ஒரு அடுத்த சுட்டிக்காட்டி. 102 00:04:13,490 --> 00:04:15,660 நன்றாக, போதுமான எளிய தெரிகிறது. 103 00:04:15,660 --> 00:04:17,220 >> நாம் ஒரு செயல்பாடு எழுத வேண்டும் என்று 104 00:04:17,220 --> 00:04:19,329 இது குறுக்கீடாய் அவுட் பட்டியல் மற்றும் அச்சிட்டு 105 00:04:19,329 --> 00:04:22,150 மதிப்பு பட்டியலில் கடைசி முனை சேமிக்கப்படும். 106 00:04:22,150 --> 00:04:24,850 சரி, நாம் பட்டியலில் அனைத்து முனைகளில் பிரயாணம் செய்ய வேண்டும் என்றால் 107 00:04:24,850 --> 00:04:27,310 கடந்த ஒரு கண்டுபிடிக்க, ஆனால் நாம் சேர்க்கும் இல்லை என்பதால் 108 00:04:27,310 --> 00:04:29,250 அல்லது ஏதாவது நீக்குதல், நாம் மாற்ற விரும்பவில்லை 109 00:04:29,250 --> 00:04:32,210 பட்டியலில் அடுத்த சுட்டிகள் உள் கட்டமைப்பு. 110 00:04:32,210 --> 00:04:34,790 >> எனவே, நாம் பயணித்தல் குறிப்பாக ஒரு சுட்டிக்காட்டி வேண்டும் 111 00:04:34,790 --> 00:04:36,940 இதில் நாம் 'கிராலர்.' அழைக்கிறேன் 112 00:04:36,940 --> 00:04:38,870 இது பட்டியலில் அனைத்து உறுப்புகள் மூலம் வலைவலம் 113 00:04:38,870 --> 00:04:41,190 அடுத்த சுட்டிகள் சங்கிலி பின்பற்றுவதன் மூலம். 114 00:04:41,190 --> 00:04:43,750 நாம் சேமித்து அனைத்து, 1 வது முனையும் ஒரு சுட்டிக்காட்டி உள்ளது 115 00:04:43,750 --> 00:04:45,730 பட்டியல் அல்லது 'தலை'. 116 00:04:45,730 --> 00:04:47,370 1 முனை தலை புள்ளிகள். 117 00:04:47,370 --> 00:04:49,120 அது வகை சுட்டிக்காட்டி முதல் முனை தான். 118 00:04:49,120 --> 00:04:51,280 >> பட்டியலில் உண்மையான 1st முனை பெற, 119 00:04:51,280 --> 00:04:53,250 நாம், dereference இந்த சுட்டிக்காட்டி உள்ளது 120 00:04:53,250 --> 00:04:55,100 நாம் அது dereference முன்பு ஆனால், நாம் சோதிக்க வேண்டும் 121 00:04:55,100 --> 00:04:57,180 சுட்டிக்காட்டி முதல் பூஜ்ய என்றால். 122 00:04:57,180 --> 00:04:59,190 அது வெற்று இருந்தால், பட்டியல், காலியாக உள்ளது 123 00:04:59,190 --> 00:05:01,320 நாம், பட்டியல் காலியாக உள்ளது, ஏனெனில் அந்த ஒரு செய்தியை அச்சிட வேண்டும் 124 00:05:01,320 --> 00:05:03,250 கடந்த முனை இல்லை. 125 00:05:03,250 --> 00:05:05,190 ஆனால், நாம் பட்டியல் காலியாக உள்ளது என்று. 126 00:05:05,190 --> 00:05:08,340 அது இல்லை என்றால், நாம் முழு பட்டியல் மூலம் வலைவலம் செய்ய வேண்டும் 127 00:05:08,340 --> 00:05:10,440 நாம் பட்டியலில் கடைசி முனை பெற வரை, 128 00:05:10,440 --> 00:05:13,030 நாம் பட்டியலில் கடைசி முனை பார்த்து என்றால் எப்படி சொல்ல முடியும்? 129 00:05:13,670 --> 00:05:16,660 >> சரி, ஒரு முனை அடுத்த சுட்டிக்காட்டி பூஜ்ய என்றால், 130 00:05:16,660 --> 00:05:18,320 நாம் இறுதியில் எனக்கு தெரியும் 131 00:05:18,320 --> 00:05:22,390 கடந்த அடுத்த சுட்டிக்காட்டி சுட்டிக்காட்ட பட்டியலில் இல்லை அடுத்த முனை வேண்டும் என்பதால். 132 00:05:22,390 --> 00:05:26,590 அது எப்போதும் பூஜ்ய துவக்கப்படும் கடந்த முனை அடுத்த சுட்டிக்காட்டி வைத்து நல்ல நடைமுறையில் உள்ளது 133 00:05:26,590 --> 00:05:30,800 நாம் பட்டியலை இறுதி அடைந்துவிட்டீர்கள் போது எங்களுக்கு விழிப்பூட்டும் ஒரு தரப்படுத்தப்பட்ட சொத்து வேண்டும். 134 00:05:30,800 --> 00:05:33,510 >> எனவே, கிராலர் → அடுத்த பூஜ்ய என்றால், 135 00:05:34,120 --> 00:05:38,270 அம்புக்குறி தொடரியல் dereferencing ஒரு குறுக்குவழி என்று நினைவில் 136 00:05:38,270 --> 00:05:40,010 ஒரு struct ஒரு சுட்டிக்காட்டி, பின்னர் அணுகுவதை 137 00:05:40,010 --> 00:05:42,510 அருவருக்கத்தக்க சமமான அதன் அடுத்த புலத்தில்: 138 00:05:42,510 --> 00:05:48,750 (* கிராலர்). அடுத்த. 139 00:05:49,820 --> 00:05:51,260 ஒரு முறை நாங்கள் கடந்த கணு எதுவும் காணப்படவில்லை 140 00:05:51,260 --> 00:05:53,830 நாம், கிராலர் → Val அச்சிட வேண்டும் 141 00:05:53,830 --> 00:05:55,000 தற்போதைய முனை மதிப்பு 142 00:05:55,000 --> 00:05:57,130 இது எங்களுக்கு தெரியும் கடந்த ஒன்றாகும். 143 00:05:57,130 --> 00:05:59,740 இல்லையெனில், நாங்கள் பட்டியலில் கடைசி முனை நேரத்தில் இன்னும் இல்லை என்றால், 144 00:05:59,740 --> 00:06:02,340 நாம் பட்டியலில் அடுத்த முனை செல்ல வேண்டும் 145 00:06:02,340 --> 00:06:04,750 கடந்த ஒரு என்று பாருங்கள். 146 00:06:04,750 --> 00:06:07,010 இதை செய்ய, நாம் நமது கிராலர் சுட்டிக்காட்டி அமைக்க 147 00:06:07,010 --> 00:06:09,840 தற்போதைய முனை அடுத்த மதிப்பு சுட்டிக்காட்ட, 148 00:06:09,840 --> 00:06:11,680 அந்த பட்டியலில் உள்ள அடுத்த முனை உள்ளது. 149 00:06:11,680 --> 00:06:13,030 இந்த அமைப்பு செய்யப்படுகிறது 150 00:06:13,030 --> 00:06:15,280 கிராலர் = கிராலர் → அடுத்த. 151 00:06:16,050 --> 00:06:18,960 நாம் உதாரணமாக, ஒரு வட்டத்திற்கு இந்த செயல்முறை மீண்டும் 152 00:06:18,960 --> 00:06:20,960 நாம் கடந்த முனை கண்டுபிடிக்கும் வரை. 153 00:06:20,960 --> 00:06:23,150 அதனால், உதாரணமாக, கிராலர் தலையில் சுட்டி இருந்தால், 154 00:06:24,050 --> 00:06:27,710 நாம், கிராலர் → அடுத்த சுட்டிக்காட்ட கிராலர் அமைக்க 155 00:06:27,710 --> 00:06:30,960 இதில் 1 முனை அடுத்த துறையில் போல. 156 00:06:30,960 --> 00:06:33,620 எனவே, இப்போது எங்கள் கிராலர், 2 வது முனை குறிக்கின்ற 157 00:06:33,620 --> 00:06:35,480 மேலும், மீண்டும், நாம், ஒரு வட்டத்திற்கு இந்த மீண்டும் 158 00:06:37,220 --> 00:06:40,610 நாம் கடந்த முனை பார்த்த வரை, அந்த உள்ளது 159 00:06:40,610 --> 00:06:43,640 அங்கு முனை அடுத்த சுட்டிக்காட்டி வெற்று சுட்டி காட்டியது. 160 00:06:43,640 --> 00:06:45,070 அங்கு நாம், அது இல்லை 161 00:06:45,070 --> 00:06:47,620 நாம் பட்டியலில் கடைசி முனை கண்டுபிடித்துள்ளேன், அதன் மதிப்பு அச்சிட, 162 00:06:47,620 --> 00:06:50,800 நாம் தான் கிராலர் → Val பயன்படுத்த. 163 00:06:50,800 --> 00:06:53,130 >> பயணித்து மிக மோசமான அல்ல, ஆனால் என்ன சேர்க்கைக்கு பற்றி? 164 00:06:53,130 --> 00:06:56,290 நாம் நாம் 4 வது இடத்தில் ஒரு முழு நுழைக்க வேண்டும் என்று 165 00:06:56,290 --> 00:06:58,040 ஒரு முழு பட்டியலில். 166 00:06:58,040 --> 00:07:01,280 தற்போதைய 3 வது மற்றும் 4 வது முனைகளில் இடையே உள்ளது. 167 00:07:01,280 --> 00:07:03,760 மீண்டும், நாம் தான் செய்ய பட்டியலில் தொடரவேண்டும் 168 00:07:03,760 --> 00:07:06,520 3 வது உறுப்பு, நாம் பிறகு சேர்க்கைக்கு நீங்கள் ஒரு பெற. 169 00:07:06,520 --> 00:07:09,300 எனவே, நாம், பட்டியலில் பிரயாணம் மீண்டும் ஒரு கிராலர் சுட்டிக்காட்டி உருவாக்க 170 00:07:09,300 --> 00:07:11,400 எங்கள் தலைவர் சுட்டிக்காட்டி பூஜ்ய என்றால், சோதனை 171 00:07:11,400 --> 00:07:14,810 அது இல்லை என்றால், தலைவர் முனை எங்கள் கிராலர் சுட்டிக்காட்டி சுட்டிக்காட்டுகின்றனர். 172 00:07:16,880 --> 00:07:18,060 எனவே, நாம் 1st உறுப்பு இருக்கிறாய். 173 00:07:18,060 --> 00:07:21,020 நாம், நாம் சேர்த்துவிடும் முன் 2 மேலும் கூறுகள் முன்னோக்கி செல்ல வேண்டும் 174 00:07:21,020 --> 00:07:23,390 நாம் வளைய ஒரு பயன்படுத்தலாம் 175 00:07:23,390 --> 00:07:26,430 int நான் = 1; நான் <3; நான் + 176 00:07:26,430 --> 00:07:28,590 மற்றும் சுழற்சி ஒவ்வொரு மீள்செய்கையில், 177 00:07:28,590 --> 00:07:31,540 1 முனை முன்னோக்கி எங்கள் கிராலர் சுட்டிக்காட்டி முன்னெடுத்து 178 00:07:31,540 --> 00:07:34,570 தற்போதைய முனை அடுத்த துறையில் பூஜ்ய என்றால் மூலம், 179 00:07:34,570 --> 00:07:37,550 அது இல்லை என்றால், அடுத்த முனையில் நம் கிராலர் சுட்டிக்காட்டி நகர்த்த 180 00:07:37,550 --> 00:07:41,810 தற்போதைய முனை அடுத்த சுட்டிக்காட்டி அதை சமமாக அமைக்க. 181 00:07:41,810 --> 00:07:45,210 எனவே, நம் சுழற்சி செய்ய சொல்வது இருந்து 182 00:07:45,210 --> 00:07:47,550 இருமுறை, 183 00:07:49,610 --> 00:07:51,190 நாம், 3 முனை அடைந்துவிட்டீர்கள் 184 00:07:51,190 --> 00:07:53,110 ஒருமுறை எங்கள் கிராலர் சுட்டிக்காட்டி பின்னர் முனை அடைந்தது 185 00:07:53,110 --> 00:07:55,270 நாம், நமது புதிய முழு சேர்க்க வேண்டும் 186 00:07:55,270 --> 00:07:57,050 எப்படி நாம் உண்மையில் செருகுவது? 187 00:07:57,050 --> 00:07:59,440 >> நன்றாக, எங்கள் புதிய முழு பட்டியல் சேர்த்துக்கொள்ளப்பட வேண்டும் 188 00:07:59,440 --> 00:08:01,250 அதன் சொந்த முனை struct ஒரு பகுதியாக, 189 00:08:01,250 --> 00:08:03,140 இந்த உண்மையில் முனைகளில் ஒரு காட்சியில் என்பதால். 190 00:08:03,140 --> 00:08:05,690 எனவே, அது முனை ஒரு புதிய சுட்டிக்காட்டி செய்யலாம் 191 00:08:05,690 --> 00:08:08,910 'new_node,' என்று 192 00:08:08,910 --> 00:08:11,800 அதை அமைக்க நாம் ஒதுக்கி அந்த நினைவு சுட்டிக்காட்ட 193 00:08:11,800 --> 00:08:14,270 கணு தானே குவியல் மீது, 194 00:08:14,270 --> 00:08:16,000 நாம் ஒதுக்க எவ்வளவு நினைவகம் தேவை? 195 00:08:16,000 --> 00:08:18,250 சரி, ஒரு முனை அளவு, 196 00:08:20,450 --> 00:08:23,410 மற்றும் நாம் சேர்க்க வேண்டும் என்று முழு அதன் Val துறையில் அமைக்க வேண்டும். 197 00:08:23,410 --> 00:08:25,590 நாம் 6, என்று. 198 00:08:25,590 --> 00:08:27,710 இப்போது, கணு எங்கள் முழு மதிப்பு உள்ளது. 199 00:08:27,710 --> 00:08:30,650 புதிய கணு அடுத்த துறையில் துவக்க கூட நல்ல நடைமுறையில் உள்ளது 200 00:08:30,650 --> 00:08:33,690 பூஜ்ய சுட்டிக்காட்ட, 201 00:08:33,690 --> 00:08:35,080 ஆனால் இப்போது என்ன? 202 00:08:35,080 --> 00:08:37,179 >> நாம் பட்டியல் உள் கட்டமைப்பு மாற்ற வேண்டும் 203 00:08:37,179 --> 00:08:40,409 அடுத்த சுட்டிகள் பட்டியலில் இருக்கும் உள்ள 204 00:08:40,409 --> 00:08:42,950 3 வது மற்றும் 4 வது முனைகள். 205 00:08:42,950 --> 00:08:46,560 அடுத்த சுட்டிகள் பட்டியல் வரிசை தீர்மானிக்க, முதல் 206 00:08:46,560 --> 00:08:48,650 நாம் நமது புதிய கணு சேர்த்த பின்னர் 207 00:08:48,650 --> 00:08:50,510 வலது பட்டியல் நடுத்தர கொண்டு, 208 00:08:50,510 --> 00:08:52,010 அது ஒரு பிட் தந்திரமான இருக்க முடியும். 209 00:08:52,010 --> 00:08:54,250 நினைவில், ஏனெனில் இது நமது கணினி, இது 210 00:08:54,250 --> 00:08:56,250 ஒரே பட்டியலில் முனைகளில் இடம் தெரியும் 211 00:08:56,250 --> 00:09:00,400 முந்தைய புள்ளிகளில் சேமித்து அடுத்த சுட்டிகள் காரணமாக. 212 00:09:00,400 --> 00:09:03,940 எனவே, நாங்கள் எப்போதும், இந்த இடங்களில் எந்த போனதே என்று 213 00:09:03,940 --> 00:09:06,860 எங்கள் பட்டியலில் அடுத்த சுட்டிகள் ஒரு மாற்றுவதன் மூலம் சொல்ல, 214 00:09:06,860 --> 00:09:09,880 உதாரணமாக, நாம் மாற்ற சொல்ல 215 00:09:09,880 --> 00:09:12,920 3 முனை அடுத்த புலம் 216 00:09:12,920 --> 00:09:15,610 இங்கு சில முனை சுட்டிக்காட்ட. 217 00:09:15,610 --> 00:09:17,920 நாங்கள் இல்லை, ஏனெனில் நாங்கள், வெளியே அதிர்ஷ்டம் இருக்க விரும்புகிறேன் 218 00:09:17,920 --> 00:09:20,940 , அங்கு பட்டியலில் மற்ற கண்டுபிடிக்க ஏதாவது 219 00:09:20,940 --> 00:09:23,070 என்று வெளிப்படையாக மிக மோசம். 220 00:09:23,070 --> 00:09:25,080 எனவே, நாம் ஒழுங்கு பற்றி மிகவும் கவனமாக இருக்க வேண்டும் 221 00:09:25,080 --> 00:09:28,360 நாங்கள் செருகும் போது நமது அடுத்த சுட்டிகள் கையாள இதில். 222 00:09:28,360 --> 00:09:30,540 >> எனவே, இந்த எளிமைப்படுத்த, தான் சொல்கிறேன் என்று 223 00:09:30,540 --> 00:09:32,220 எங்கள் முதல் 4 முனைகளில் 224 00:09:32,220 --> 00:09:36,200 சுட்டிகள் சங்கிலி குறிக்கும் அம்புகளை கொண்டு, ஏ, பி, சி, மற்றும் டி அழைக்கப்படுகின்றன 225 00:09:36,200 --> 00:09:38,070 முனைகளில் இணைக்க என்று. 226 00:09:38,070 --> 00:09:40,050 எனவே, நாம் புதிய கணு சேர்க்க வேண்டும் 227 00:09:40,050 --> 00:09:42,070 முனைகளில் சி மற்றும் டி இடையில் 228 00:09:42,070 --> 00:09:45,060 அதை சரியான முறையில் அதை செய்ய முக்கியமான விஷயம், ஏன் நான் காண்பிக்கிறேன். 229 00:09:45,060 --> 00:09:47,500 >> முதல் அதை செய்ய தவறான வழி பார்க்கிறேன். 230 00:09:47,500 --> 00:09:49,490 ஏய், நாம் புதிய கணு சி பின்னர் சரி வர வேண்டும் என்று, 231 00:09:49,490 --> 00:09:51,910 எனவே சி அடுத்த சுட்டிக்காட்டி அமைக்க அனுமதி 232 00:09:51,910 --> 00:09:54,700 new_node சுட்டிக்காட்ட. 233 00:09:56,530 --> 00:09:59,180 சரி, சரி போல, நாம் மட்டும் இப்போது முடிக்க வேண்டும் 234 00:09:59,180 --> 00:10:01,580 டி புதிய கணு அடுத்த சுட்டிக்காட்டி புள்ளி வைத்து, 235 00:10:01,580 --> 00:10:03,250 ஆனால் காத்திருப்பு, எப்படி என்று நாம் என்ன செய்ய முடியும்? 236 00:10:03,250 --> 00:10:05,170 டி அங்கு எங்களுக்கு சொல்ல முடியும் என்று மட்டும் தான், 237 00:10:05,170 --> 00:10:07,630 அடுத்த சுட்டிக்காட்டி முன்னர், சி சேமிக்கப்படும் 238 00:10:07,630 --> 00:10:09,870 ஆனால் நாம் தான் என்று சுட்டிக்காட்டி மீண்டும் எழுதிய 239 00:10:09,870 --> 00:10:11,170 புதிய கணு சுட்டிக்காட்ட, 240 00:10:11,170 --> 00:10:14,230 எனவே இனி, டி நினைவகத்தில் எங்கே எந்த துப்பும் வேண்டும் 241 00:10:14,230 --> 00:10:17,020 நாம் பட்டியல் மற்ற இழந்துவிட்டேன். 242 00:10:17,020 --> 00:10:19,000 அனைத்து நல்ல. 243 00:10:19,000 --> 00:10:21,090 >> எனவே, இந்த உரிமை எப்படி செய்வது? 244 00:10:22,360 --> 00:10:25,090 முதல், டி புதிய கணு அடுத்த சுட்டிக்காட்டி சுட்டி 245 00:10:26,170 --> 00:10:28,990 இப்போது, இரண்டு புதிய கணு மற்றும் சி அடுத்த சுட்டிகள் 246 00:10:28,990 --> 00:10:30,660 அதே முனை, டி குறிக்கின்ற இருக்கும், 247 00:10:30,660 --> 00:10:32,290 ஆனால் அது நல்லது. 248 00:10:32,290 --> 00:10:35,680 இப்போது நாம் புதிய கணு சி அடுத்த சுட்டிக்காட்டி சுட்டி முடியும். 249 00:10:37,450 --> 00:10:39,670 எனவே, நாம் எந்த தரவு இழப்பு இல்லாமல் இந்த செய்துவிட்டேன். 250 00:10:39,670 --> 00:10:42,280 குறியீடு, சி தற்போதைய முனை உள்ளது 251 00:10:42,280 --> 00:10:45,540 பயணித்தல் சுட்டிக்காட்டி கிராலர், சுட்டி காட்டியது என்று 252 00:10:45,540 --> 00:10:50,400 மற்றும் டி, தற்போதைய முனை அடுத்த புலத்தில் மூலம் சுட்டிக்காட்டினார் முனை குறிப்பிடப்படுகின்றன 253 00:10:50,400 --> 00:10:52,600 அல்லது கிராலர் → அடுத்த. 254 00:10:52,600 --> 00:10:55,460 எனவே, நாங்கள் முதல் புதிய கணு அடுத்த சுட்டிக்காட்டி அமைக்க 255 00:10:55,460 --> 00:10:57,370 கிராலர் → அடுத்த சுட்டிக்காட்ட, 256 00:10:57,370 --> 00:11:00,880 நாம் new_node அடுத்த சுட்டிக்காட்டி வேண்டும் என்று ஒரே வழி 257 00:11:00,880 --> 00:11:02,780 விளக்கம் டி சுட்டி. 258 00:11:02,780 --> 00:11:04,540 பின்னர், நாம் தற்போதைய முனை அடுத்த சுட்டிக்காட்டி அமைக்க முடியும் 259 00:11:04,540 --> 00:11:06,330 எங்கள் புதிய கணு வேண்டும், 260 00:11:06,330 --> 00:11:10,980 நாம் வரைபடத்தின் new_node செய்ய சி சுட்டிக்காட்ட காத்திருக்க வேண்டியிருந்தது போல். 261 00:11:10,980 --> 00:11:12,250 இப்போது எல்லாம் சரியாக இருக்கிறது, மற்றும் நாம் இழக்கவில்லை 262 00:11:12,250 --> 00:11:14,490 எந்த தரவு கண்காணிக்க, நாம் தான் முடிந்தது 263 00:11:14,490 --> 00:11:16,200 பட்டியல் மத்தியில் எங்கள் புதிய கணு ஒட்டிக்கொள்கின்றன 264 00:11:16,200 --> 00:11:19,330 முழு விஷயம் மீண்டும் அல்லது எந்த தனிமங்களுக்கு இல்லாமல் 265 00:11:19,330 --> 00:11:22,490 வழியில் நாம் ஒரு நிலையான நீளம் வரிசை கொண்ட வேண்டியிருந்தது. 266 00:11:22,490 --> 00:11:26,020 >> எனவே, தொடர்புடைய பட்டியல்கள் ஒரு அடிப்படை, ஆனால் முக்கியமான, டைனமிக் தரவு கட்டமைப்பு உள்ளது 267 00:11:26,020 --> 00:11:29,080 இது நன்மைகள் மற்றும் தீமைகள் இரண்டும் இல்லை 268 00:11:29,080 --> 00:11:31,260 கோவை மற்றும் பிற தரவு கட்டமைப்புகள் ஒப்பிடும்போது, 269 00:11:31,260 --> 00:11:33,350 மேலும், பெரும்பாலும் கணினி அறிவியல் வழக்கு 270 00:11:33,350 --> 00:11:35,640 இது, ஒவ்வொரு கருவியாக பயன்படுத்த போது எனக்கு முக்கியம் 271 00:11:35,640 --> 00:11:37,960 எனவே நீங்கள் சரியான வேலை சரியான கருவி எடுக்க முடியும். 272 00:11:37,960 --> 00:11:40,060 >> மேலும் நடைமுறை, செய்முறைகளை எழுத முயற்சி 273 00:11:40,060 --> 00:11:42,080 ஒரு இணைக்கப்பட்ட பட்டியலில் இருந்து முனைகளில் நீக்க - 274 00:11:42,080 --> 00:11:44,050 நீங்கள் மாற்றியமைக்க எந்த வரிசையில் பற்றி கவனமாக இருக்க வேண்டும் நினைவில் 275 00:11:44,050 --> 00:11:47,430 உங்கள் பட்டியலில் ஒரு துண்டின் இழக்க கூடாது என்பதை உறுதி செய்ய உங்கள் அடுத்த குறிப்புகள் - 276 00:11:47,430 --> 00:11:50,200 அல்லது ஒரு இணைக்கப்பட்ட பட்டியலில் முனைகளில் எண்ணுவதற்கு ஒரு செயல்பாடு, 277 00:11:50,200 --> 00:11:53,280 ஒரு இணைக்கப்பட்ட பட்டியலில் முனைகளில் அனைத்து வரிசை தலைகீழாக அல்லது ஒரு வேடிக்கையான ஒன்று. 278 00:11:53,280 --> 00:11:56,090 >> என் பெயர் ஜாக்சன் STEINKAMP தான், இந்த CS50 உள்ளது.