[Powered by Google Translate] [வாரம் 6, தொடர்ச்சி]
[டேவிட் ஜே Malan] [ஹார்வர்ட் பல்கலைக்கழகம்]
[இந்த CS50 உள்ளது.] [CS50.TV]
இந்த CS50 மற்றும் இந்த வாரம் 6 இறுதியில் உள்ளது.
எனவே CS50x, edX முயற்சியில் ஈடுபட்டு ஹார்வர்ட் முதல் படிப்புகள் ஒன்று
உண்மையில் கடந்த திங்கட்கிழமை இடம்பெற்றது.
நீங்கள் இணையத்தில் என்ன மற்றவர்களுக்கு ஒரு பார்வை பெற விரும்பினால்
இப்போது இணைந்து தொடர்ந்து, நீங்கள் x.cs50.net என்று தலைமை முடியும்.
என்று, edx.org மீது உரிய இடத்திற்கு நீங்கள் திசைதிருப்பப்படும்
இந்த மற்றும் எம்ஐடி மற்றும் பெர்க்லி இருந்து மற்ற படிப்புகள் இப்போது எங்கு இது.
நீங்கள் ஒரு கணக்கை பதிவு செய்ய வேண்டும்; நீங்கள் பொருள் பெரும்பாலும் அதே என்று கண்டுபிடிக்க வேண்டும்
நாங்கள் எல்லாம் தயாராக போல், தாமதமாக ஒரு சில வாரங்களில் என்றாலும், இந்த செமஸ்டர் இருந்தது. போன்ற
ஆனால் என்ன CS50x மாணவர்கள் இப்போது பார்ப்போம் மிகவும் இது போன்ற ஒரு இடைமுகம் ஆகும்.
இந்த, உதாரணமாக, சிக்கல் செட் 0 ஒத்திகையும் முன்னணி Zamyla உள்ளது.
Edx.org இல் நுழைவதில் மீது, ஒரு CS50x மாணவர் விஷயங்கள் வகையான காண்கிறது
நீங்கள் ஒரு போக்கை பார்க்கும் எதிர்பார்ப்பதை: திங்கள் விரிவுரை,
புதன், பல்வேறு குறும்படங்கள், சிக்கல் செட், மேலோட்டப்பார்வைகள், கள் ஐந்து சொற்பொழிவு.
கூடுதலாக, நீங்கள் இங்கே பார்க்க போல், இயந்திர மொழிபெயர்ப்பு
, இத்தாலியன், ஸ்பானிஷ், ஜப்பனீஸ், சீன ஆங்கிலத்தில் எழுத்துப்படிகள் பற்றி
நிச்சயமாக நிறைவற்ற என்று பிற மொழிகளில் ஒரு கட்டுகளையும்
நாம் ஒரு ஏபிஐ என்று ஏதாவது பயன்படுத்தி நிரலாக்கத்தின்படி அவர்களை தள்ளியது, என
கூகிள் அல்லது பயன்பாட்டு நிரலாக்க இடைமுகம்,
என்று நம்மை மற்ற மொழிகளை ஆங்கிலம் மாற்ற அனுமதிக்கிறது.
ஆனால் சில நூறு பிளஸ் தொண்டர்கள் அற்புதமான ஆவி நன்றி,
தயவு செய்து தொடர்பு பெற முன்வந்தது யார் இணையத்தில் சீரற்ற மக்கள்
இந்த திட்டத்தில், நாம் படிப்படியாக அந்த மொழிபெயர்ப்பு தரத்தை மேம்படுத்த வேண்டும்
மனிதர்கள் நம் கணினிகள் செய்த தவறுகளை திருத்தி கொண்டு.
>> நாம் ஒரு சில மாணவர்கள் நாம் முதலில் எதிர்பார்த்ததை விட திங்கள் காண்பிக்கப்படும் வெளியே அது மாறிவிடும்.
உண்மையில், இப்போது CS50x வீட்டில் சேர்த்து தொடர்ந்து 100,000 மக்கள் உள்ளனர்.
எனவே நீங்கள் கணினி அறிவியல் இந்த போக்கை உருவாக்கும் இந்த தொடக்க வர்க்கத்தின் அனைத்து பகுதியாக உணர
பொதுவாக கல்வி, இன்னும் பரந்த அளவில், அணுகக்கூடிய.
மற்றும் உண்மையில், இந்த மகத்தான ஆன்லைன் படிப்புகள் சில, இப்போது
அவர்கள் அனைவரும் நாம் இங்கே என்ன தெரிகிறது என, இந்த மிக அதிக எண்ணிக்கையில் தொடங்க.
ஆனால் இலக்கு, இறுதியில், CS50x சாத்தியமானது என பூச்சு வரி என பல மக்கள் இங்கு உண்மையில்.
வடிவமைப்பு, CS50x கடந்த திங்கள் முதல் வழங்கப்படும் போகிறது
வேறு பள்ளியில் கடமைகள் உண்டு எல்லோரும் யார் என்று ஏப்ரல் 15, 2013 அனைத்து வழிகளிலும்,,
வேலை, குடும்பம், மற்ற மோதல்கள் போன்ற, சற்று நெகிழ்வு தன்மையுடையதாகும்
இந்த போக்கை மாற்றும் டைவ் எந்த கொண்டு, அது, இது என்று போதுமானதாக
மிகவும் ambitiously செய்யப்படுகிறது ஒரு வழக்கமான செமஸ்டர் போது வெறும் மூன்று மாத காலத்தில் மட்டும்.
ஆனால் இந்த மாணவர்கள், அதே உள்ளடக்கத்தை பார்க்க, அதே பிரச்சனை செட் கைப்பற்றுதல்
அதே ஷார்ட்ஸ் போன்ற அணுகல் கொண்டிருக்கின்றன.
எனவே நாம் இந்த ஒன்றாக அனைத்து உள்ளது என்று.
மற்றும் CS50x இறுதியில் இலக்குகளில் ஒன்றாக போல் பல எல்லோரும் பெற முடியாது
இறுதி வரியில் அவர்களை கணினி அறிவியல் இந்த கிடைத்துள்ள புதிய புரிதலை தர
மற்றும் நிரலாக்க ஆனால் அவர்கள் இந்த பகிர்ந்து அனுபவம் வேண்டும்.
வளாகத்தில் 50 குணவியல்புகளை ஒன்று, நாங்கள் நம்புகிறோம்,
, சில நேரங்களில், நல்ல அல்லது மோசமான, இனவாத அனுபவம் இந்த வகையான வருகிறது
ஆனால் இந்த மக்களுக்கு இடது மற்றும் வலது பக்கம் திரும்ப பெற்று,
அலுவலக நேரம் மற்றும் hackathon மற்றும் சிகப்பு.
இது, ஆன்லைன் எல்லோரும் சேர்ந்து நபர் அந்த செய்ய ஒரு சிறிய கடினமாக உள்ளது
ஆனால் CS50x, முதல் CS50 எக்ஸ்போ ஏப்ரல் மாதம் முடிவுக்கு
நியாயமான எங்கள் கருத்தை ஒரு ஆன்லைன் தழுவல் இருக்கும் இது
, 2 நிமிட வீடியோ - அங்கு மாணவர்கள் இந்த ஆயிரக்கணக்கான ஒரு 1 சமர்ப்பிக்கும்படி
அவர்கள் தங்கள் இறுதி திட்டம் அல்லது வீடியோ ஸ்கிரீன்கேஸ்டை ஹலோ அசைப்பதன் அல்லது
அவர்களின் திட்டம் பற்றி பேசி, அதை demoing,
உங்கள் முந்தைய போல், நியாயமான உள்ள வளாகத்தில் இங்கே செய்யவில்லை
அரையிறுதி இறுதியில், நம்பிக்கை உலக கண்காட்சி வேண்டும் என்று அந்த
CS50x மாணவர்கள் 'இறுதி திட்டங்கள், அந்த மாதிரி எந்த வளாகத்தில் இங்கே நீங்கள் இந்த டிசம்பர் காத்திருக்கிறது.
வரும் மாதங்களில் அது மிக அதிக.
>> 100,000 மாணவர்கள், என்றாலும், இன்னும் சில CAS தேவை வருகிறது.
நீங்கள் இங்கே திட்டு எரியும் மற்றும் CS50 எடுத்து என்று கொடுக்கப்பட்ட
பல வாரங்கள் edX மீது எல்லோரும் இந்த பொருள் வெளியீட்டு முன்கூட்டியே,
நாம் இந்த முயற்சியில் முடிந்தவரை நம் சொந்த மாணவர்கள் பல உள்ளடக்கியது விரும்புகிறேன் உணர்ந்து,
செமஸ்டர் அத்துடன் இந்த குளிர்காலத்தில் மற்றும் வரும் வசந்த இரு.
எனவே நீங்கள் CS50x தொடர்பு கொள்ள விரும்பினால்,
குறிப்பாக CS50x Discuss, CS50 Discuss என்ற edX பதிப்பு, மீது சேர்வதற்கு
நீங்கள் பல வளாகத்தில் பயன்படுத்தி வருகின்றனர் இதில், ஆன்லைன் செய்தி பலகை,
URL ஐ தலைவர் தயவு செய்து, எங்களை நீங்கள் யார் என்று நாம்
நாம் ஒன்றாக ஒரு மாணவர்கள் மற்றும் பணியாளர்கள் குழு மற்றும் ஆசிரிய கட்டமைக்க விரும்புகிறோம் ஏனெனில்
வளாகத்தில் யார் வெறுமனே சேர்ந்து விளையாடும் மற்றும் உதவி.
மற்றும் அவர்கள் நன்கு தெரிந்த என்று ஒரு கேள்வி பார்க்கும் போது,
நீங்கள், இணையத்தில் சில நாட்டில் அங்கு எங்காவது சில பிழை அறிக்கை ஒரு மாணவர் கேட்க
நீயும் அதே பிரச்சினை என்று மோதிரங்கள் ஒரு மணி ஏனெனில்
சில நேரம் முன்பு உங்கள் ஈ-ஹால், வட்டம், பிறகு நீங்கள் மணி மற்றும் உங்கள் சொந்த அனுபவம் பகிர்ந்து கொள்ள முடியும்.
அதனால் நீங்கள் விரும்பினால் பங்கேற்க வேண்டாம்.
>> ஹார்வர்ட் கணினி அறிவியல் படிப்புகள், ஒரு பாரம்பரியம் ஒரு பிட் உள்ளது
நீங்கள் பெருமையுடன் அணிய முடியும் என்று சில ஆடைகள், சில துணிகளை கொண்ட அவர்கள் மத்தியில் CS50,
செமஸ்டர் இன் இறுதியில், நீங்கள் CS50 முடிந்ததும் என்று மிக பெருமையாக கூறினார்
மற்றும் CS50 போன்ற எடுத்து, நாங்கள் எப்போதும் மாணவர்கள் ஈடுபடுத்த முயற்சி
இந்த செயல்முறையை முடிந்த, நாம் அழைக்க பணிகளில் உள்ள,
செமஸ்டர் இந்த நேரத்தில், மாணவர்கள் வடிவமைப்பு சமர்ப்பிக்க
நீங்கள் பயன்படுத்த விரும்பும் விருப்ப அனைத்தும் பயன்படுத்தி, அல்லது என்ன கருவி
நீங்கள் உடைகள் மற்றும் வியர்த்த வடிவங்களை submit ', ஒரு வடிவமைப்பாளர் என்றால்
மற்றும் நாய்களுக்கான umbrellas மற்றும் சிறிய bandanas நாம் இப்போது இல்லை போல்.
எல்லாம் பிறகு - வெற்றியாளர்கள் ஒவ்வொரு ஆண்டும் பின் காட்சிக்கு உள்ளன
store.cs50.net நேரத்தில் நிச்சயமாக வலைத்தளத்தில்.
எல்லாம் அங்கு செலவில் விற்பனை, ஆனால் இணையதளம் தான் தன்னை இயங்கும்
மக்கள் அவர்கள் விரும்பும் வண்ணங்கள் மற்றும் வடிவமைப்புகளை தேர்வு செய்ய அனுமதிக்கிறது.
நான் நாம் மட்டும் கடந்த ஆண்டு வடிவமைப்புகளை சில பகிர்ந்து நினைத்தேன்
ஒரு ஆண்டு பாரம்பரியம் ஆகும், இங்கே இந்த தவிர வலைத்தளத்தில் இருந்தது.
"நான் Faultn Seg நான் ஒவ்வொரு நாள்", கடந்த ஆண்டு அனுப்பப்பட்ட ஒரு
இதில் முன்னாள் மாணவர்கள் அங்கு இன்னும் இருக்கின்றன.
நாம் இந்த ஒரு இருந்தது, "CS50, 1989 துவங்கப்பட்ட."
எங்கள் Bowdens ஒன்று, ராப், கடந்த ஆண்டு மிகவும் பிரபலமாக இருந்தது.
"குழு Bowden" பிறந்தார், இந்த வடிவமைப்பு மேல் விற்பனையாளர்கள் மத்தியில், சமர்ப்பிக்கப்பட்டது.
இங்கு இந்த இருந்தது. பல மக்கள் விற்பனை பதிவுகள் படி "Bowden காய்ச்சல்" என்று.
என்று இப்போது இணையத்தில், உங்கள் வடிவமைப்பு இருக்க முடியும் என்று.
அடுத்த பிரச்சனை இந்த மேலும் விவரங்களுக்கு வந்து அமைக்கிறது.
>> ஒரு கருவி: நீங்கள் இப்போது வட்டம் சில வெளிப்பாடு என்று
GDB சில நேரடி அனுபவம்,
இது, நிச்சயமாக, ஒரு வழு மற்றும் நீங்கள் கையாள அனுமதிக்கிறது
மிகவும் குறைவான அளவில் உங்கள் திட்டம், என்ன வகையான விஷயங்களை செய்து?
GDB நீங்கள் என்ன செய்யலாம்?
அப்படியா? ஏதாவது கொடுங்கள். [மாணவர் பதில், புரிந்து]
நல்ல. செயல்பாடு பற்றிய படி, அதனால் நீங்கள் இயக்க தட்டச்சு இல்லை
மற்றும் நிலையான வெளியீடு விஷயங்கள் அச்சிடுகிறது, அதன் முழுமையாக மூலம் திட்டம் அடியாக உள்ளது.
மாறாக, நீங்கள் அடுத்த தட்டச்சு, வரி மூலம் வரி மூலம் விலக முடியாது
வரி அல்லது நீங்கள் எழுதியது என்று ஒரு பொதுவாக, ஒரு செயல்பாடு பற்றிய டைவ் செய்ய நடவடிக்கை மூலம் வரி மூலம் வரி போக.
GDB நீங்கள் வேறு என்ன செய்யலாம்? அப்படியா? [மாணவர் பதில், புரிந்து]
மாறிகள் அச்சிட. உங்கள் திட்டம் உள்ளே ஒரு சிறிய சுயபரிசோதனை செய்ய வேண்டும் என்றால்
எல்லா இடத்திலும் printf அறிக்கைகள் எழுதுவதில் நாட இல்லாமல்,
நீங்கள் ஒரு மாறி அச்சிட அல்லது ஒரு மாறி காண்பிக்க முடியும்.
நீங்கள் GDB போன்ற ஒரு வழு வேறு என்ன செய்ய முடியும்?
[மாணவர் பதில், புரிந்து]
சரியாக. நீங்கள் முறிவுப்புள்ளிகளை அமைக்க முடியும்; நீ முறித்து மரணதண்டனை சொல்ல முடியும்
முக்கிய செயல்பாடு அல்லது foo விழாவில்.
நீங்கள் வரி 123 இல் முறித்து மரணதண்டனை கூற முடியும்.
மற்றும் முறிவுப்புள்ளிகளை உண்மையில் சக்திவாய்ந்த நுட்பம் ஆகும்
ஏனெனில் நீங்கள் உங்கள் பிரச்சினையை ஒரு பொது உணர்வு இருந்தால்
ஒருவேளை, நீங்கள் திட்டத்தை முழுமையாக மூலம் நுழைவதை நேரத்தை வீணடிக்க வேண்டாம்.
நீங்கள் அடிப்படையில் அங்கு குதித்து பின் தட்டச்சு செய்ய முடியும் -
படி அல்லது அடுத்த அல்லது போல அது வழியாக நுழைவதை.
ஆனால் GDB போன்ற ஒன்றை ப, மனித, நீங்கள் உதவுகிறது என்று
உங்கள் பிரச்சினைகளை கண்டறிய உங்கள் பிழைகள் கண்டறிய.
இது அவசியம் நீங்கள் அவர்களை மிகவும் தெரியாது.
>> எனவே நாம் ஒரு குறுகிய கட்டளை வரி கருவி உள்ளது, மற்ற நாள் style50 அறிமுகம்
என்று சற்று அதிக சுத்தமாக உங்களை விட உங்கள் குறியீடு stylize முயற்சிக்கும், மனித, செய்ய வேண்டும்.
ஆனால் அந்த கூட, உண்மையில் ஒரு அழகியல் விஷயம்.
பயன்படுத்த இன்னும் சிறிது விளங்காத என்று Valgrind என்று இந்த மற்ற கருவி உள்ளது அவுட் ஆனால் அது மாறிவிடும்.
அதன் வெளிப்பாடு முதல் பார்வையில் atrociously ரகசிய உள்ளது.
ஆனால், அது குறிப்பாக இப்போது நாம் கால பகுதியாக இருக்கலாம் என்று, பிரமாதமாக பயனுள்ளதாக இருக்கும்
நீங்கள் எங்கு malloc மற்றும் மாறும் நினைவக ஒதுக்கீடு பயன்படுத்த தொடங்கி.
விஷயங்களை விரைவில் உண்மையில் தவறு போக முடியும்.
ஏனெனில் நீங்கள் உங்கள் நினைவக விடுவிக்க மறந்து, அல்லது நீங்கள் சில NULL சுட்டிக்காட்டி dereference என்றால்,
அல்லது நீங்கள் சில குப்பை சுட்டிக்காட்டி dereference, பொதுவாக முடிவு என்று அறிகுறி என்ன?
தவறு Seg. நீங்கள் கிலோபைட்டுகளை அல்லது மெகாபைட் சில பல இந்த அடிப்படை ஃபைலை
அது முறிந்தது போது, உங்கள் நிரல் நினைவக நிலை பிரதிபலிக்கிறது
ஆனால் உங்கள் திட்டம் இறுதியில், அடுக்கு தவறு குறைகளை Seg
இது ஏதோ கெட்ட எப்போதும் தொடர்பான நடந்தது பொருள்
நீங்கள் எங்காவது அந்த ஒரு நினைவக தொடர்பான தவறு என்று.
எனவே Valgrind இந்த மாதிரி விஷயங்களை கண்டுபிடிக்க உதவும்.
நீங்கள் உங்கள் நிரல் கம்பைல் செய்து பிறகு அதை, GDB போல், நீங்கள் இயக்க ஒரு கருவி தான்
ஆனால் நேரடியாக உங்கள் நிரலை விட, நீங்கள் Valgrind ரன்
நீங்கள் GDB செய்ய போல், இது உங்கள் திட்டம் வெற்றி.
இப்போது, பயன்பாடு, சிறந்த வகையான வெளியீடு பெற
அதனால் அங்கு திரையில் மீது நீங்கள் Valgrind-V ஒரு சிறிய நீண்ட பார்க்கிறேன்.
நீங்கள் ஒரு Linux கணினியில் நிரல்கள் பயன்படுத்தும் போது "எதிராக" உலகளவில் verbose பொருள்.
எனவே இது முன்னிருப்பாக வலிமை விட தரவு வெளிக்காட்டாதே ஆகும்.
"- = முழு கசிவு சரிபார்த்து." இது, அனைத்து நினைவக கசிவை செக் சொல்கிறாள்
நான் செய்த சில தவறுகள். இந்த, கூட, லினக்ஸ் திட்டங்கள் ஒரு பொதுவான முன்னுதாரணம் ஆகும்.
நீங்கள் ஒரு கட்டளை வரி வாதம் இருந்தால் பொதுவாக, என்று, ஒரு "சுவிட்ச்" தான்
என்று, நிரல் நடத்தையை மாற்ற வேண்டும், அது ஒரு கடிதம் தான்
அது-v, ஆனால் மாற்றி என்று இருந்தால், வெறும் ப்ரோக்ராமர் வடிவமைப்பு மூலம்,
, கட்டளை வரி வாதம் கொண்ட வார்த்தைகள் ஒரு முழு சொல் அல்லது தொடர் தொடங்குகிறது -.
இவை மனித மரபுகளை, ஆனால் நீங்கள் அதிக பார்க்கிறேன்.
பின்னர், இறுதியாக, "a.out" இந்த குறிப்பிட்ட எடுத்துக்காட்டாக நிரலை தன்னிச்சையான பெயர்.
இங்கு சில பிரதிநிதி வெளியீடு தான்.
>> நாம் என்று அர்த்தம் என்ன பார்க்க முன், என்னை இங்கு குறியீடு ஒரு துணுக்கை வழியாக செல்லலாம்.
மேலும், விரைவில், என்னை வழி இந்த வெளியேற அனுமதிக்க
மற்றும் அது இங்கே இந்த குறுகிய எடுத்துக்காட்டாக இது memory.c, பாருங்கள் நாம்.
இந்த திட்டத்தில், என்னை செயல்பாடுகள் மற்றும் கேள்விகள் மீது பெரிதாக்க வேண்டும்.
நாம் ஒரு செயல்பாடு அழைக்கும் முக்கிய செயல்பாடு, ஊ, வேண்டும்
பின்னர் என்ன f சற்று தொழில்நுட்ப ஆங்கிலம், செய்ய நடவடிக்கை?
F என்ன செய்ய தொடர?
எப்படி நான் வரி 20 தொடங்க வேண்டும், மற்றும் நட்சத்திரத்தின் இடம் இல்லை,
ஆனால் நான் கடைசி விரிவுரை இங்கு தொடர்ந்து இருப்போம்.
எங்களுக்கு வரி 20 என்ன இருக்கிறது? இடது புறத்தில். நாங்கள் இன்னும் அதை உடைக்க வேண்டும்.
முகப்பு * x: என்ன செய்வான்?
சரி. அது ஒரு சுட்டிக்காட்டி அறிவித்தார், இப்போது அது மேலும் தொழில்நுட்ப இருக்கட்டும்.
அது ஒரு சுட்டிக்காட்டி அறிவிக்க, மிக உறுதியாக, என்ன அர்த்தம்? வேறு யாரோ?
அப்படியா? [மாணவர் பதில், புரிந்து] வெகுதூரம்.
எனவே சம குறியின் வலது பக்க பாடிக்கொண்டிருக்கிறீர்கள்.
ஒரு எண்ணாக * x மீது, தான் இடது மீது கவனம் செலுத்த வேண்டும்.
இந்த ஒரு சுட்டிக்காட்டி "என்று", ஆனால் இப்போது நாம் என்று வரையறை செய்ய ஆழமான உள்ள டைவ்.
என்று உறுதியாக, தொழில்நுட்ப என்ன அர்த்தம்? அப்படியா?
[மாணவர் பதில், புரிந்து]
சரி. இது நினைவகம் ஒரு முகவரியை காப்பாற்ற தயார்.
நல்ல. மற்றும் அது மேலும் ஒரு படி எடுத்து விட இது 32 பிட்கள் என்று ஒரு மாறி, x, அறிவித்தார் உள்ளது.
நான் ஏனெனில் 32 பிட்கள் தெரியும் -?
இந்த வழக்கில் ஒரு சுட்டிக்காட்டி, ஏனெனில் இது, ஒரு முழு எண்ணாக ஏனெனில் அது இல்லை.
அது ஒரு முழு எண்ணாக ஒரு மற்றும் அதே, அந்த தற்செயல்
ஆனால் நட்சத்திரம் இல்லை என்பதை இந்த ஒரு சுட்டிக்காட்டி இருக்கும் பொருள்
மற்றும் பயன்பாடு, பல கணினிகள் போல, ஆனால் அனைத்து, சுட்டிகள் 32 துண்டுகள்.
சமீபத்திய மேக்ஸின், சமீபத்திய கணினிகள் போன்ற நவீன வன்பொருள், நீங்கள், 64 பிட் சுட்டிகள் வேண்டும்
ஆனால் பயன்பாட்டிற்கான உள்ள, இந்த விஷயங்கள் 32 துண்டுகள்.
நாம் அது தரப்படுத்த வேண்டும். மேலும் உறுதியாக, கதை பின்வருமாறு செல்கிறது:
நாம் ஒரு சுட்டிக்காட்டி "என்று"; என்ன அர்த்தம்?
நாம் ஒரு நினைவக முகவரியை சேமித்து தயார்.
இதற்கு என்ன அர்த்தம்?
நாங்கள் 32 பிட்கள் எடுத்து ஒரு மாறி என்று x உருவாக்க
என்று விரைவில் ஒரு முழு முகவரி சேமிக்கும்.
என்று ஒருவேளை நாம் பெற முடியும் என பற்றி துல்லியமான தான்.
உலக எளிமைப்படுத்த மற்றும் x என்ற சுட்டிக்காட்டி அறிவிக்க என்ன முன்னேற்றம் நல்லது.
ஒரு சுட்டிக்காட்டி அறிவிக்க, ஆனால் உணர என்ன உண்மையில் நடக்கிறது புரிந்துகொள்ள
கூட அந்த சில கதாபாத்திரங்கள்.
>> இப்போது, இந்த ஒரு நீண்ட வெளிப்பாடு இருந்தாலும், கிட்டத்தட்ட ஒரு சிறிய எளிதாக இருக்கிறது.
இந்த இப்போது உயர்த்தி என்று, என்ன செய்கிறார்: "malloc (10 * sizeof (int));" சரி?
[மாணவர் பதில், புரிந்து]
நல்ல. நான் அங்கே எடுத்து கொள்கிறேன். இது பத்து முழு நினைவகம் ஒரு துண்டின் ஒதுக்கீடு.
இப்போது தான் சற்று ஆழமாக உள்ள டைவ் நாம் அது பத்து முழு நினைவகம் ஒரு துண்டின் ஒதுக்கீடு உள்ளது.
Malloc என்ன திரும்பி?
மேலும் உறுதியாக அந்த துண்டின் முகவரி, அல்லது, அந்த துண்டின் முதல் பைட் முகவரி.
நான் எப்படி இருக்கிறேன், ப்ரோக்ராமர், என்று நினைவக முனைகளை அந்த துண்டின்?
நான் அதை ஒட்டியுள்ள என்று எனக்கு தெரியும். Malloc, வரையறை, நீங்கள் நினைவகத்தை ஒரு தொடர்ச்சியான துண்டின் கொடுக்கும்.
இது எந்த இடைவெளிகளும். நீங்கள், அந்த துண்டின் ஒவ்வொரு பைட் அணுகல்
மீண்டும் மீண்டும் செல்ல, ஆனால் நினைவகம் இந்த துண்டின் இறுதி எங்கே எப்படி தெரியும்?
நீங்கள் malloc பயன்படுத்த போது? [மாணவர் பதில், புரிந்து] நல்லது.
நீங்கள் செய்ய. நீங்கள் நினைவில் கொள்ள வேண்டும்.
நான் மதிப்பு 10 பயன்படுத்தப்படும் என்று நினைவில் இல்லை, நான் கூட அந்த இங்கே செய்யவில்லை தெரியவில்லை.
ஆனால் பொறுப்பு எனக்கு முற்றிலும் இல்லை. நாம் சரங்களுக்கான சிறிதளவு நம்புவதற்குரிய விட்டேன் எந்த Strlen,,
ஏனெனில் \ 0 கொண்ட இந்த மாநாட்டின் மட்டுமே வேலை
அல்லது ஒரு சரம் இறுதியில் இந்த சிறப்பு nul தன்மை, NUL,.
அந்த நினைவு வெறும் தன்னிச்சையான துகள்களாக இரு இல்லை.
அதை நீங்கள் தான். வரி 20 அதனால், பின்னர், நினைவகம் ஒரு துண்டின் ஒதுக்கீடு
அந்த பத்து முழு சேமிக்க முடியும், அது முதல் பைட் முகவரி சேமித்து
மாறி என்று x நினைவகத்தின் அந்த துண்டின் ஒரு.
ஒரு சுட்டிக்காட்டி இது ஆகவே,. வரி 21 அதனால், துரதிருஷ்டவசமாக, ஒரு தவறு.
ஆனால் முதல், அது என்ன செய்யும்? இது, இடம் 10, குறியிடப்படுவதாயினும் 0 கடை கூறுகிறார்
x மதிப்பு 0 என நினைவகம் துண்டின் ஒரு.
>> அதனால் விஷயங்களை ஒரு ஜோடி போகிறது கவனிக்க.
X ஒரு சுட்டிக்காட்டி என்றாலும், ஒரு சில வாரங்களுக்கு முன்பு இருந்து நினைவுகூர
நீங்கள் இன்னும் வரிசை பாணி சதுர அடைப்புக்குறி குறிப்பு பயன்படுத்தலாம் என்று.
என்று உண்மையில் இன்னும் புரிந்து காணப்படும் சுட்டிக்காட்டி கணித குறுகிய கை குறியீடு தான்.
நாம் இப்படி செய்வாள் என்று பெயர்: முகவரி x எடுத்து, கடந்த 10 புள்ளிகள் நகர்த்த
பின்னர் அந்த இடத்தில் சேமிக்கப்படும் என்ன முகவரிக்கு அங்கு போக.
ஆனால் வெளிப்படையாக, இந்த வாசிக்க வசதியாக பெற ஒரு கோரமான உள்ளது.
எனவே உலக பொதுவாக இது மிகவும் அதிகமான மனித நட்பு வாசிக்க நேரம் தான் சதுர அடைப்புக்குறிக்குள் பயன்படுத்துகிறது.
ஆனால் என்ன உண்மையில் பேட்டை அடியில் நடக்கிறது தான்;
x ஒரு முகவரி, ஒரு வரிசை, உள்ளபடியே இருக்கும்.
இந்த x இடத்தை 10 0 சேமிக்கும்.
ஏன் இந்த மோசமாக உள்ளது? அப்படியா?
[மாணவர் பதில், புரிந்து] சரியாக.
, நாம் மட்டும் பத்து ints ஒதுக்கீடு, ஆனால் சி நிரலாக்கம் போது நாம் 0 இருந்து எண்ணுவதற்கு
எனவே நீங்கள் 0 1 2 3 4 5 6 7 8 9, ஆனால் 10 அணுக வேண்டும்.
எனவே அல்லது நிரல் நொடி தவறு போகிறது அல்லது அது இல்லை.
ஆனால் நாம் உண்மையிலேயே தெரியாது; இந்த ஒரு நிர்ணயிக்கப்படாத வகையான நடத்தை இது.
உண்மையில் நாம் அதிர்ஷ்டம் கிடைக்கும் என்பதை பொறுத்தது.
நான் அந்த கூடுதல் பைட் பயன்படுத்தினால் அது இயங்கு கவலைப்படவில்லை என்று மாறினால்,
அது எனக்கு கொடுக்கவில்லை என்றாலும், என் திட்டத்தை செயலிழக்க மாட்டார்கள்.
, இது, மூல தான் பிழையிருக்கும், ஆனால் நீங்கள் அந்த அறிகுறி பார்க்க மாட்டார்கள்
அல்லது நீங்கள் ஒரே நேரத்தில் அதை பார்க்க முடியும்.
ஆனால் உண்மையில் பிழை இல்லை, உண்மையில், உள்ளது.
நீங்கள் சரியாக இருக்க வேண்டும் என்று ஒரு திட்டம் எழுதி விட்டீர்கள் என்றால், அது, உண்மையில் சிக்கல் உள்ளது
நீங்கள் ஒவ்வொரு முறை சிறிது நேரத்தில் விபத்துக்குள்ளான அந்த பயன்படுத்தி என்று திட்டம் விற்பனை செய்த
ஏனெனில், நிச்சயமாக, இது நல்லது அல்ல. உண்மையில், நீங்கள் Android தொலைபேசி அல்லது ஒரு ஐபோன் இருந்தால்
மேலும், நீங்கள், இந்த நாட்களில் பயன்பாடுகள் பதிவிறக்க நீங்கள் எப்போதும் இருந்தது என்றால் ஒரு பயன்பாட்டை மட்டும் விட்டு
அது மறைந்து திடீரென்று, என்று, எப்போதும் சில நினைவக தொடர்பான பிரச்சினை காரணமாக தான்
ப்ரோக்ராமர் ஒரு சுட்டிக்காட்டி வரை ஸ்க்ரீவ்டு மற்றும் dereferenced மேற்கொள்கின்ற
அவர் இல்லை வேண்டும், மற்றும் iOS அல்லது Android விளைவு தான் முற்றிலும் திட்டம் கொல்ல என்று
மாறாக ஆபத்து வரையறுக்கப்படாத நடத்தை அல்லது பாதுகாப்பு சமரசம் சில வகையான விட.
>> இந்த தவிர இந்த திட்டத்தில் ஒருவர் பிழை உள்ளது.
நான் இந்த திட்டத்தில் வேறு என்ன ஸ்க்ரீவ்டு?
நான் போதித்தார் நான் என்ன நடைமுறையில் இல்லை. அப்படியா?
[மாணவர் பதில், புரிந்து] நல்லது.
நான் நினைவக விடுதலை இல்லை. எனவே இப்போது கட்டைவிரல் விதி
நீங்கள் malloc அழைப்பு எப்போது வேண்டுமானாலும் நீங்கள் முடித்தவுடன், நீங்கள் நினைவகத்தை பயன்படுத்தி இலவச அழைக்க வேண்டும் இருக்க வேண்டும்.
இப்போது, நான் இந்த நினைவகம் விடுவிக்க வேண்டும்?
ஒருவேளை, இந்த முதல் வரியை சரியாக அனுமானித்து, நான் இங்கே அதை செய்ய வேண்டும்.
நான், உதாரணமாக, இங்கே அதை செய்ய முடியவில்லை. ஏன்?
நான் வெளியே நோக்கம். எனவே, சுட்டிகள் பற்றி கூட
இந்த ஒரு வாரத்தில் 2 அல்லது x மட்டுமே அது பிரகடனம் அங்கு சுருள் ப்ரேஸ்களை உள்ளே நோக்கம் இருக்கிறது, அங்கு 3 சிக்கல் உள்ளது.
அதனால் நீங்கள் கண்டிப்பாக அங்கு அது விடுவிக்க முடியாது. அதை விடுவிக்க என் மட்டுமே வாய்ப்பு கிட்டத்தட்ட வரி 21 பிறகு.
இந்த ஒரு மிகவும் எளிமையான திட்டம் தான் நீங்கள் வகையான உங்கள் மனதில் மூடப்பட்டிருக்கும் முறை இது மிகவும் எளிதாக இருந்தது
தவறு எங்கே என்ன சுற்றி திட்டம், செய்கிறாள்.
நீங்கள் முதலில் அதை பார்க்க கூட, வட்டம் இப்போது ஒரு சிறிய கண்டிப்பாக
இந்த தவறுகளை அழகாக எளிதாக தீர்த்து மற்றும் எளிதில் செய்யப்படும் என்று.
ஆனால் ஒரு திட்டம் 12 க்கும் அதிகமான வரிகளை நீண்ட போது, அது, 100 வரிகளை நீண்ட, 50 கோடுகள் நீண்ட நேரம்
தர்க்கரீதியாக அதன் மூலம் நினைத்து, வரி மூலம் உங்கள் குறியீடு வரி மூலம் நடைபயிற்சி,
தொடர்ந்து, பிழைகள் தேடும் முடியும் ஆனால் செய்ய குறிப்பாக வேடிக்கையாக இல்லை
அதை செய்ய கூட கடினம், மற்றும் Valgrind போன்ற ஒரு கருவி உள்ளது, அதனால் தான்.
என்னை போய் இந்த செய்யட்டும்: என் முனைய சாளரத்தில் திறக்க விட,
மற்றும் நினைவகம் நன்றாக தெரிகிறது, ஏனெனில் நான், நினைவக இயங்க அனுமதிக்க.
நான் அதிர்ஷ்டசாலி வருகிறது. வரிசை இறுதியில் கூடுதல் பைட் என்று
மிகவும் சிக்கலான இருக்க தெரியவில்லை.
ஆனால் நான் பார்க்க அதாவது ஒரு நல்லறிவு சோதனை செய்ய, இருப்பினும், என்னை விட
இந்த உண்மையில் சரியான இல்லையா.
>> எனவே Valgrind-V செய்வோம் - = முழு கசிவு சரிபார்த்து
பின்னர் இந்த வழக்கு திட்டத்தின் பெயர் நினைவகம், இல்லை a.out உள்ளது.
என்னை போய் இந்த செய்வோம். Enter விசையை.
கடவுளே. இந்த அதன் வெளிப்பாடு தான், இந்த நான் முன்னர் மறைமுகமாக என்ன.
ஆனால், நீங்கள் இங்கே முட்டாள்தனத்தை மூலம் வாசிக்க கற்று,
இந்த மிக சுவாரசியமாக இல்லை என்று மட்டும் கண்டறியும் வெளிப்பாடு ஆகும்.
என்ன உங்கள் கண் உண்மையில் பார்க்க விரும்புகிறது பிழை அல்லது தவறான எந்த குறிப்பும் இல்லை.
பிரச்சினைகள் பரிந்துரைக்கும் என்று வார்த்தைகள்.
உண்மையில், கீழே இங்கே தவறு என்ன நடக்கிறது என்று பார்க்கலாம்.
நான் ஏதாவது ஒரு சுருக்கத்தை, இல்லை "வெளியேறவும் பயன்பாட்டில்:. 1 தொகுதிகளில் 40 பைட்டுகள்"
நான் இன்னும் ஒரு தொகுதி என்ன நிச்சயம் இல்லை, ஆனால் 40 பைட்டுகள்
என்று இருந்து வரும் எங்கே நான் கண்டுபிடிக்க முடியவில்லை போன்ற உண்மையில் உணர்கிறது.
40 பைட்டுகள். ஏன் வெளியேறவும் பயன்பாட்டில் 40 பைட்டுகள்?
மேலும் குறிப்பாக, நாம் இங்கே கீழே இருந்தால்,
ஏன் நான் நிச்சயமாக 40 பைட்டுகள் இழந்துள்ளனர்? அப்படியா?
[மாணவர் பதில், புரிந்து] பெர்பெக்ட். சரி, அப்படியே.
அங்கு பத்து முழு இருந்தன, அந்த ஒவ்வொரு 4, அல்லது 32 பிட்கள் அளவு
நீங்கள் வேண்டும் என, நான் இலவசமாக அழைத்து இல்லை, ஏனெனில் நான் துல்லியமாக 40 பைட்டுகள் இழந்துவிட்டேன்.
என்று, ஒரு பிழை இருந்தது, இப்போது மேலும் ஒரு சிறிய கீழே இருக்கும் நாம் இந்த பக்கத்தில் பார்க்க
"தவறான அளவு 4 எழுத." இப்போது இது என்ன?
இந்த முகவரியை தெளிவாக, என்ன தள குறிமானம் வெளிப்படுத்தப்படுகிறது?
இந்த அறுபதின்ம, மற்றும் எந்த நேரத்தில் நீங்கள் 0x தொடங்கும் ஒரு எண்ணை பார்க்க
அதை, நாம் மீண்டும் கேள்விகள், நான் நினைக்கிறேன், pset 0 பிரிவில் வழி செய்தது, அறுபதின்ம பொருள்
இது பைனரி எண்ம தசம மாற்றப்படும் மற்றும் மாறி மாறி, ஒரு warmup உடற்பயிற்சி செய்ய தான் இருந்தது.
அறுபதின்ம, வெறும் மனித மாநாட்டின் மூலம், வழக்கமாக சுட்டிகள் பிரதிநிதித்துவம் பயன்படுகிறது
அல்லது, மிகவும் பொதுவாக, முகவரிகள். அது, ஒரு மாநாடு தான்
அதை படிக்க ஒரு சிறிய எளிதாக இருப்பதால், அது, தசம போன்ற ஏதாவது ஒரு சிறிய மிகவும் கச்சிதமான தான்
பெரும்பாலான மனிதர்கள் பயன்படுத்த மற்றும் பைனரி பயனற்றது.
எனவே இப்போது இந்த என்ன அர்த்தம்? ஒரு தவறான எழுதும் உள்ளது போல் நன்றாக தெரிகிறது
memory.c வரிசையில் 21 அளவு 4.
எனவே வரி 21 திரும்பி செல்லலாம், உண்மையில், இங்கே அது தவறான எழுத இருக்கிறது.
எனவே Valgrind, முழுமையாக என் கையை பிடித்து என்ன தீர்வை சொல்லுங்கள் போவதில்லை
ஆனால் அதை நான் தவறான எழுதும் செய்கிறேன் என்று கண்டறியும்.
நான் கூடாது என்று 4 பைட்டுகள் தொடுதல், மற்றும் வெளிப்படையாக என்று, காரணம்
நீங்கள் சுட்டிக்காட்டியது போல், நான் அதற்கு பதிலாக [9] [10] செய்கிறேன் அதிகபட்சம்
அல்லது [0] அல்லது இடையில் ஏதாவது.
Valgrind கொண்டு, நீங்கள் இப்போது ஒரு நிரலை எழுத நீங்கள் எந்த நேரத்தில் உணர
சுட்டிகள் பயன்படுத்துகிறது மற்றும் நினைவக பயன்படுத்துகிறது, மற்றும் malloc இன்னும் குறிப்பாக, என்று
நிச்சயமாக இந்த நீண்ட இயங்கும் பழக்கம் பெற
ஆனால் மிக எளிதாக Valgrind கட்டளை நகல் மற்றும் ஒட்டப்படும்
அங்கு சில பிழைகள் இருந்தால் பார்க்க.
அது, நீங்கள் வெளியீடு பார்க்க ஒவ்வொரு முறையும் பெரும் வேண்டும்
ஆனால் வெறும் பார்வை அனைத்து வெளியீடு மூலம் இட நீங்கள் பார்க்க பார்க்க பிழைகள் குறிப்புகள்
அல்லது எச்சரிக்கைகள் அல்லது தவறான அல்லது இழந்தது.
உங்களை போன்ற ஒலி எங்கோ ஸ்க்ரீவ்டு எந்த வார்த்தைகள்.
உங்கள் கருவி ஒரு புதிய கருவியை, அதனால் உணர.
>> இப்போது திங்கள், நாம் எல்லோரும் ஒரு மொத்தமாக இருந்தது இங்கே வந்து
மற்றும் ஒரு இணைக்கப்பட்ட பட்டியலில் கருத்தை பிரதிபலிக்கும்.
நாங்கள் என்ன பிரச்சினை தீர்வு என இணைக்கப்பட்ட பட்டியலில் அறிமுகப்படுத்தப்பட்டது?
அப்படியா? [மாணவர் பதில், புரிந்து] நல்லது.
வரிசைகள் நினைவக அவர்களை சேர்க்க முடியாது.
நீங்கள் அளவு 10 அணிவரிசை, என்று நீங்கள் தான் ஒதுக்க வேண்டும்.
நீங்கள் முதலில் malloc என்று நீங்கள், realloc போன்ற ஒரு செயல்பாடு அழைக்க முடியும்
விண்வெளி அது இறுதியில் இருந்தால் அந்த அணி வளர முடியும்
வேறு யாரும் பயன்படுத்தி, மற்றும் அங்கு இல்லை என்றால், அது வேறு ஒரு பெரிய துண்டின் காண்பீர்கள் என்று.
ஆனால் அது புதிய வரிசை முறையில் அந்த பைட்டுகள் அனைத்து நகலெடுக்கும்.
இது மிக சரியான தீர்வு புதிது.
ஏன் இந்த கடினமான ஒரு விஷயமாக மாற்றப்பட்டது ஆகும்?
நான் வேலை என்ன, மனிதர்கள் இந்த பிரச்சினை தீர்க்கப்பட வேண்டும்.
நாம் ஏன் இணைக்கப்பட்ட பட்டியலில் உள்ள திங்களன்று அதை தீர்க்க வேண்டிய அவசியம் என்ன? அப்படியா?
[மாணவர் பதில், புரிந்து] இது ஒரு நீண்ட நேரம் ஆகலாம்.
உண்மையில், நீங்கள் malloc அல்லது realloc அல்லது மற்றொரு ஒன்று calloc, நினைத்தீர்கள் எந்த நேரம்,
எந்த நேரத்தில் நீங்கள், திட்டம், இயங்கு பேசுகிறாய்,
நீங்கள் நிரல் மெதுவாக முனைகின்றன.
நீங்கள் சுழல்கள் விஷயங்களை இந்த வகையான செய்கிறீர்கள் என்றால், நீங்கள் உண்மையில் விஷயங்களை பொறுமையாக.
நீங்கள், "ஹலோ உலகம்" வகை திட்டங்கள் எளிய இந்த கவனிக்க போவதில்லை
ஆனால் மிக பெரிய திட்டங்களில், நினைவக மீண்டும் மீண்டும் இயங்கு கேட்டு
அல்லது மீண்டும் மீண்டும் அதை திரும்ப கொடுத்து ஒரு நல்ல விஷயம் இருக்க முடியாது முனைகிறது.
பிளஸ், அது அறிவார்ந்த வகையான - இது நேரம் ஒரு முழு கழிவு தான்.
புதிய வரிசை பற்றி எல்லாம் நகல் இன்னும் நினைவகத்தை ஒதுக்க ஏன், ஆபத்து,
நீங்கள் உண்மையில் வேண்டும் என நீங்கள் மட்டுமே அதிக நினைவகத்தை ஒதுக்க முடியும் என்று ஒரு மாற்று இருந்தால்?
இங்கு உள்ள pluses மற்றும் minuses உள்ளது.
Pluses ஒன்று இப்போது நாம் செயல் என்று தான்.
நினைவகம் துண்டுகளாக்கி இலவச என்று எங்கே தேவையில்லை,
நான் சுட்டிகள் மூலம் உருவாக்க இந்த ரொட்டி crumbs வரிசைப்படுத்த முடியும்
ஒன்றாக என் முழு இணைக்கப்பட்ட பட்டியலில் சரத்திற்கு.
ஆனால் நான் குறைந்த பட்சம் ஒரு விலையை கொடுக்க.
>> என்ன நான் இணைக்கப்பட்ட பட்டியலை பெற்று வரை கொடுக்க வேண்டும்?
அப்படியா? [மாணவர் பதில், புரிந்து] நல்லது.
நீங்கள் இன்னும் நினைவகம் வேண்டும். இப்போது நான், இந்த குறிப்புகள் இடைவெளி தேவை
இந்த சூப்பர் எளிய இணைக்கப்பட்ட பட்டியலில் வழக்கில்
4 பைட்டுகள் அவை முழு எண்கள், சேமிக்க முயற்சிக்கையில் என்று நாம் சொல்லி வைக்க
நன்றாக, ஒரு சுட்டிக்காட்டி 4 பைட்டுகள், எனவே இப்போது நான் உண்மையில் இரு மடங்காக நான்
நினைவக அளவு நான் இந்த பட்டியலில் சேமிக்க வேண்டும்.
ஆனால் மீண்டும், இந்த கணினி அறிவியல் ஒரு நிலையான பரிமாற்றம் ஆகும்
நேரம் மற்றும் விண்வெளி மற்றும் வளர்ச்சி, முயற்சி மற்றும் பிற வளங்கள் இடையே.
ஒரு இணைக்கப்பட்ட பட்டியலில் பயன்படுத்தி மற்றொரு எதிர்மறையாக என்ன? அப்படியா?
[மாணவர் பதில், புரிந்து]
நல்ல. அணுக அவ்வளவு எளிதல்ல. நாம் அந்நிய இனி முடியும்
இப்படி வாரம் 0 கொள்கைகளை பிரித்து வெற்றி.
மேலும் குறிப்பாக, பைனரி தேடல். ஏனெனில் கூட நாம் மனிதர்கள்
இந்த பட்டியல் மத்திய எங்கே கிட்டத்தட்ட பார்க்க முடியும்,
கணினி மட்டுமே இந்த இணைக்கப்பட்ட பட்டியலில் முதல் எனப்படும் முகவரியில் தொடங்கும் என்று தெரிகிறது.
அந்த 0x123 அல்லது அந்த மாதிரி விஷயம்.
மற்றும் நிரல் ஒரே வழி நடுத்தர உறுப்பு காணலாம்
உண்மையில் முழு பட்டியல் தேட வேண்டும்.
அதன் பின்னர், அது உண்மையில் முழு பட்டியல் தேட வேண்டும், ஏனெனில்
ஒருமுறை கூட, சுட்டிகள் பின்பற்றுவதன் மூலம் நடுத்தர உறுப்பு அடைய
நீங்கள், திட்டம், திறன், இந்த பட்டியலில் எப்படி நீண்ட தெரியாது
நீங்கள் அதை இறுதியில் வெற்றி, நீங்கள் எப்படி நிரலாக்கத்தின்படி தெரியும் வரை
நீங்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் முடிவில் இருக்கிறோம் என்று?
ஒரு சிறப்பு NULL சுட்டிக்காட்டி, அதனால் மீண்டும் ஒரு மரபு இருக்கிறது.
இந்த சுட்டியை பயன்படுத்தி விட, நாம் நிச்சயமாக அது சில குப்பை மதிப்பு இருக்க விரும்பவில்லை
எங்காவது மேடையில் சுட்டிக்காட்டி; நாம், அதை கையில் இருக்கும் NULL கீழே வேண்டும்,
இது முடியும் என்று எங்களுக்கு தெரியும், அதனால் நாம் இந்த தரவு கட்டமைப்பில் இந்த முனையம் வேண்டும் என்று.
>> என்ன இந்த கையாள வேண்டும் என்றால்?
நாம், இந்த காட்சி மிக செய்தது, மற்றும் மனிதர்களுடனான
ஆனால் நாம் ஒரு செருகும் செய்ய விரும்பினால்?
எனவே உண்மையான பட்டியலில் 9, 17, 20, 22, 29, 34 ஆகும்.
நாம் எண் 55, அதை ஒரு முனை, ஐந்து malloc இடத்தில் என்ன என்றால்
பின்னர் நாங்கள் திங்களன்று செய்தது போல் பட்டியலில் 55 நுழைக்க வேண்டும்?
எப்படி செய்ய வேண்டும்? நன்றாக, அனிதா வந்து அவர் அடிப்படையில் பட்டியலில் சென்றனர்.
அவர் அடுத்த, அடுத்த, அடுத்த, அடுத்த, அடுத்த பிறகு, முதல் உறுப்பு மணிக்கு தொடங்கியது.
இறுதியாக இடது கை வழி கீழே வெற்றி
மற்றும் ஓ உணர்ந்து, இந்த சுழியாக. அதனால் என்ன சுட்டிக்காட்டி கையாளுதல் செய்ய வேண்டும்?
இறுதியில் இருந்த நபர், எண் 34, அவரது இடது கையை உயர்த்தி தேவை
55 பாயிண்ட், 55 புதிய NULL முற்றாகவும் இருக்க கீழே சுட்டி தமது இடது கை தேவை. என்ன.
அழகாக எளிதாக ஒரு வரிசைப்படுத்தப்பட்ட பட்டியலில் 55 சேர்க்க.
எப்படி இந்த இருக்கும்?
>> என்னை போய் இங்கே சில குறியீடு எடுத்துக்காட்டாக திறந்து விட.
நான் gedit திறந்து, என்னை முதல் இரண்டு கோப்புகளை திறந்து விடுவோம்.
ஒரு list1.h, மற்றும் இந்த குறியீட்டை துண்டின் என்று என்னை ஞாபகப்படுத்த அனுமதியுங்கள்
நாம் ஒரு முனை பிரதிநிதித்துவம் பயன்படும்.
ஒரு முனை பட்டியலில் அடுத்த விஷயத்தை மட்டும் புள்ளிகள் அடுத்த என n என்று ஒரு முழு எண்ணாக மற்றும் ஒரு சுட்டிக்காட்டி இரண்டு உள்ளன.
ஒரு. H கோப்பு இப்போது. ஏன்?
அங்கு இந்த மாநாட்டில், நாங்கள் இந்த ஒரு பெரிய அளவு நம்மை அனுகூலமாக்கிகொண்டீர்கள் இல்லை
printf மற்றும் பிற செயல்பாடுகளை எழுதினார் ஆனால் நபர்
stdio.h என்று ஒரு கோப்பு எழுதி உலகம் ஒரு பரிசாக அந்த செயல்பாடுகளை அனைத்து கொடுத்தார்.
பின்னர் string.h உள்ளது, பின்னர் map.h உள்ளது, மற்றும் இந்த h கோப்புகள் இல்லை
நீங்கள் பார்க்க அல்லது மற்ற மக்கள் எழுதிய கால போது பயன்படுத்தப்படும் என்று.
பொதுவாக அந்த ஆண்டில். H கோப்புகளை typedefs போன்ற மட்டுமே உள்ளன
அல்லது தனிபயன் வகைகள் அல்லது மாறிலிகள் வெளிப்படுத்துவதை வெளிப்படுத்துவதை.
நீங்கள் தலைப்பு கோப்புகள் உள்ள செயல்பாடுகளை 'செயலாக்கங்கள் போடாதே.
நீங்கள், அதற்கு பதிலாக, அவர்களது முன்மாதிரிகளை வைத்து.
அவர்கள் தேவை என்ன, உலக நீங்கள் பகிர விரும்பும் பொருட்களை வைப்பதற்கு
தங்கள் குறியீடு தொகுக்க வேண்டும். அதனால் தான் இந்த பழக்கம் பெற,
நாம் அதையே செய்ய முடிவு. மிக, list1.h அங்கு இல்லை
ஆனால் நாம் உலக மக்களுக்கு வட்டி இருக்கலாம் என்று ஒன்று வைத்துள்ளேன்
எங்கள் இணைக்கப்பட்ட பட்டியலில் செயல்படுத்த பயன்படுத்த வேண்டும்.
இப்போது, list1.c உள்ள, நான் இந்த விஷயத்தை மூலம் போக மாட்டேன்
அது ஒரு பிட் நீண்ட ஏனெனில், இந்த திட்டம், ஆனால் அது வரியில் விரைவில் உண்மையான இயக்க அனுமதிக்க.
என்னை, பட்டியல் 1 தொகுக்க எனக்கு அப்போது பட்டியல் 1 ரன் விட, மற்றும் நீங்கள் என்ன பார்ப்பீர்கள் நாம்
நாம் இங்கே உருவகப்படுத்தப்பட்ட ஒரு எளிய சிறிய நிரல் உள்ளது
எனக்கு ஒரு பட்டியல் எண்களை சேர்க்க மற்றும் நீக்க அனுமதிக்க நடக்கிறது.
என்னை போய் மெனு விருப்பத்தை 3 3 தட்டச்சு செய்யலாம்.
நான் பல நுழைக்க வேண்டும் - நாம் 9 இருந்த முதல் எண், என்ன
இப்போது நான் பட்டியலில் இப்போது 9 தான் கூறினார்.
என்னை போய் இன்னொரு செருகும் செய்வோம், அதனால் நான் மெனு விருப்பத்தை 3.
என்ன எண்ணை நான் நுழைக்க வேண்டும்? 17.
உள்ளிடவும். நான் இன்னும் ஒன்று செய்யலாம்.
என்னை எண் 22 சேர்க்க அனுமதி.
எனவே நாம் ஒரு கணம் முன்பு ஸ்லைடு வடிவத்தில் என்று இணைக்கப்பட்ட பட்டியலில் துவக்கங்கள் வேண்டும்.
இந்த செருகும் உண்மையில் எப்படி நடக்கிறது?
உண்மையில், 22 பட்டியலின் முடிவில் இப்போது.
கதை நாம் திங்களன்று மேடையில் கூறினார் மற்றும் இப்போது recapped
உண்மையில் குறியீடு நடக்கிறது.
ஒரு பார்க்கலாம். என்னை இந்த கோப்பில் கீழே பார்ப்போம்.
நாம், செயல்பாடுகளில் சில விரிவுரை வேண்டும்
ஆனால் நாம், கீழே போய் சொல்ல, நுழைவு செயல்பாடு வேண்டும்.
>> இந்த இணைக்கப்பட்ட பட்டியலில் ஒரு புதிய முனையில் செருகி பற்றி செல்ல எப்படி என்று பார்ப்போம்.
பட்டியல் எங்கே அறிவித்தார்? சரி, நாம், மேலே வழி மேலே
என் இணைக்கப்பட்ட பட்டியலில் அடிப்படையில் ஆரம்பத்தில் NULL என்று ஒரு சுட்டிக்காட்டி என அறிவித்தார் என்று கவனிக்க.
அதனால் நான் பொதுவாக நாம் எதிராக போதித்தார் நான் இது, இங்கே ஒரு உலகளாவிய மாறி பயன்படுத்தி
அதை தக்க வைத்து கொள்ள, உங்கள் குறியீடு ஒரு சிறிய நையாண்டி செய்கிறது, ஏனெனில்
இது சோம்பேறி, வழக்கமாக வகையான, ஆனால் இது சோம்பேறி அல்ல அது தவறு அல்ல இது மோசமில்லை
வாழ்க்கையில் உங்கள் திட்டத்தை ஒரே நோக்கம் ஒரு இணைக்கப்பட்ட பட்டியலில் உருவகப்படுத்த என்று.
இதில் நாம் என்ன சரியாக உள்ளது.
ஒவ்வொரு செயல்பாடு அதை கடக்க வேண்டும் என்றால் முக்கிய இந்த பிரகடனம் மற்றும் காட்டிலும்
நாம் இந்த திட்டத்தை எழுதப்பட்ட நான், நாம் பதிலாக ஓ உணர்ந்து, தான் அதை உலக செய்யலாம்
இந்த திட்டத்தின் முழு நோக்கம் ஒரே ஒரு இணைக்கப்பட்ட பட்டியலில் காட்ட காரணம்.
அதனால் நன்றாக தெரிகிறது. இங்கே என் முன்மாதிரிகள், மற்றும் நாம், இந்த அனைத்து வழியாக போக மாட்டேன்
ஆனால் நான் ஒரு நீக்கு செயல்பாடு, ஒரு கண்டறிய செயல்பாடு, ஒரு நுழைவு செயல்பாடு, மற்றும் ஒரு பயணிக்கின்றன செயல்பாடு எழுதினார்.
ஆனால் இப்போது நுழைவு செயல்பாடு மீண்டும் கீழே போகலாம்
இந்த ஒரு இங்கே வேலை எப்படி பார்க்க.
நுழைவு வரி உள்ளது - இங்கே நாம்.
செருக. நாம் கேட்க போகிறோம், ஏனெனில் அது, எந்த வாதங்களை எடுத்து இல்லை
அவர்கள் நுழைக்க விரும்பவில்லை எண் இந்த செயல்பாடு பயனர் உள்ளே.
ஆனால் முதல், நாம் இன்னும் சில இடத்தை கொடுக்க தயார்.
இந்த மற்ற எடுத்துக்காட்டாக இருந்து நகல் மற்றும் பேஸ்ட் வகை.
அந்த வழக்கில், நாம் ஒரு முழு எண்ணாக ஒதுக்கீடு; இந்த நேரத்தில் நாம் ஒரு முனை ஒதுக்கீடு நீங்கள்.
நான் ஒரு முனை என்பது எவ்வளவு பைட்டுகள் நினைவில் இல்லை, ஆனால் அது நல்லது.
Sizeof எனக்கு என்று கண்டுபிடிக்க முடியாது.
ஏன் நான் கோடு 120 ல் NULL சோதிக்கிறது?
வரி 119 இல் தவறு என்ன? அப்படியா?
[மாணவர் பதில், புரிந்து]
நல்ல. இப்போது நான் அதிகமாக நினைவகம் கேட்டோம் என்று வழக்கு முடியும்
அல்லது ஏதாவது தவறாக மற்றும் இயங்கு, என்னிடம் போதுமான பைட்டுகள் இல்லை
அது NULL திரும்புவதன் மூலம் எவ்வளவு அடையாளம், மற்றும் நான் என சோதிக்க என்றால்
மற்றும் நான் கண்மூடித்தனமாக முகவரியை மீண்டும் பயன்படுத்த தொடர, அதை NULL என்று.
சில அறியப்படாத மதிப்பு இருக்க முடியும்; ஒரு நல்ல விஷயம் வரை நான் -
உண்மையில் ஒரு அறியப்படாத மதிப்பு முடியாது. அதை NULL என்று, நான் விரும்பவில்லை, அதனால்
அதை துஷ்பிரயோகம் மற்றும் அதை dereferencing அபாயத்தை.
அது நடந்தால், நான் திரும்பி மற்றும் நான் எந்த நினைவக திரும்பி வரவில்லை போல நாம் நடிக்க வேண்டும்.
>> இல்லையெனில், நான் எனக்கு செருக ஒரு எண் கொடுக்க சொல்ல, நான், நம் பழைய நண்பர் GetInt அழைப்பு
பின்னர் இந்த நாங்கள் திங்களன்று அறிமுகப்படுத்தப்பட்டது புதிய இலக்கணத்தை இருந்தது.
'Newptr-> n' நீங்கள் malloc வழங்கப்படும் என்று முகவரி எடுத்து பொருள்
இது, ஒரு புதிய கணு பொருள் முதல் பைட் பிரதிபலிக்கிறது
பின்னர் n என்று துறையில் சென்று.
ஒரு சிறிய முக்கியமில்லாத கேள்வி: இந்த குறியீடு என்ன இன்னும் புரிந்து வரி ஆகும்?
நான் எப்படி இந்த எழுதப்பட்ட? குத்துவது எடுக்க வேண்டும்?
[மாணவர் பதில், புரிந்து]
நல்ல. . N ஐ பயன்படுத்தி, ஆனால் இது போன்ற மிக எளிய அல்ல.
நான் முதலில் என்ன செய்ய வேண்டும்? [மாணவர் பதில், புரிந்து]
நல்ல. நான் * newptr.n செய்ய வேண்டும்.
எனவே இந்த புதிய சுட்டிக்காட்டி வெளிப்படையாக ஒரு முகவரியை என்றான். ஏன்?
இது malloc மூலம் திரும்பி கொண்டிருந்தேன். என்று * newptr ", அங்கு சென்று"
நீ அங்கு ஒரு முறை, பின்னர், நீங்கள் மிகவும் பழக்கமான. n, பயன்படுத்தலாம்
ஆனால் இது நாம் மனிதர்கள் போகிறோம் குறிப்பாக, ஒரு சிறிய அசிங்கமான தோற்றம்
அம்புகளை கொண்டு சுட்டிகள் அனைத்து நேரம் வரைந்து; உலக அம்புக்குறியீட்டை குறியீடு மீது தரப்படுத்தப்பட்ட உள்ளது,
இது போலவே தான் செய்கிறது.
இடது விஷயம் சுட்டிக்காட்டி போது> குறியீடு - நீ மட்டும் பயன்படுத்தவும்.
அது ஒரு உண்மையான struct தான், இல்லையெனில்,,. N பயன்படுத்த.
பின்னர் இந்த: நான் ஏன் newptr-> அடுத்த துவக்க வேண்டும் பூஜ்ய வேண்டும்?
நாம் நிலை இறுதியில் ஒரு தொங்கும் இடது கையை விரும்பவில்லை.
நாம் அது நேராக கீழே சுட்டி வேண்டும், இந்த பட்டியல் இறுதி பொருள்
முக்கியமான இந்த முனை இருக்க முடியும், எனவே நாம் நன்றாக அதை NULL என்பது உறுதி.
மேலும், பொதுவாக, உங்கள் மாறிகள் அல்லது உங்கள் தரவு உறுப்பினர்கள் மற்றும் structs ஆரம்பிக்கும்
ஒன்று மட்டும் நன்றாக நடைமுறையில் உள்ளது.
வெறும் குப்பை உள்ளன மற்றும் பொதுவாக உள்ளன தொடர்ந்து விடாமல் பிரச்சனையில் நீங்கள் பெறுகிறார்
நீங்கள் பிறகு ஏதாவது செய்ய மறந்து விட்டால்.
>> இங்கே ஒரு சில சந்தர்ப்பங்களில் தான். இந்த, மீண்டும், நுழைவு விழா
மாறி முதல் அழைப்பு என்றால் நான் சோதித்து முதல் விஷயம்,
உலக மாறி சுழியாக, எந்த இணைக்கப்பட்ட பட்டியலில் உள்ளது என்பதாகும்.
நாம் எந்த எண்கள் செருகிய இல்லை, அது தற்போதைய எண்ணிக்கை செருக சாதாரணமான விஷயம்
பட்டியலில், ஏனெனில் அது பட்டியலில் ஆரம்பத்தில் சொந்தமானது.
அனிதா மட்டும் நடித்து, தனியாக இங்கு நின்றுக்கொண்டிருந்த போது இந்த இருந்தார்
நாம் ஒரு முனை ஒதுக்கப்பட்ட வரை வேறு யாரும் இல்லை, மேடையில் இங்கு தான்
பின்னர் அவர், முதல் முறையாக தனது கையை உயர்த்த முடியும்
எல்லோரும் திங்களன்று தனது பிறகு மேடையில் வந்து இருந்தால்.
இப்போது இங்கே, இந்த நான் சொல்ல ஒரு சிறு சோதனை, n புதிய கணு மதிப்பு
, தற்போதைய முதல் முனை மற்றும் n மதிப்பு <
என்று ஆரம்பித்து அந்த ஒரு இணைக்கப்பட்ட பட்டியலில் உள்ளது என்பதாகும்.
அங்கு பட்டியலில் குறைந்தது ஒரு முனை, ஆனால் இந்த புதிய பையன்
அதை, நாம் சுற்றி விஷயங்களை நகர்த்த வேண்டும் முன் சொந்தமானது.
பட்டியல் மட்டும் தொடங்கியது என்றால் வேறு வார்த்தைகளில்,,, என்று நாம்
என்று ஒரு எண் 17, - உண்மையில், நாம் இன்னும் தெளிவாக இதை செய்ய முடியும்.
நாம் முதலில் அழைத்து இங்கே ஒரு சுட்டிக்காட்டி நமது கதை ஆரம்பித்தால்,
ஆரம்பத்தில், அதை NULL, மற்றும் நாம் எண் 9 செருக
எண் 9 தெளிவாக பட்டியலில் ஆரம்பத்தில் சொந்தமானது.
எனவே தான் முகவரி அல்லது எண் 9 malloced இங்கு அதை வைத்து தான் நடிக்க விடுங்கள்.
முதல் முன்னிருப்பாக 9 இருந்தால், நாம் விவாதித்த முதல் காட்சி தான், இங்கே நாம் புள்ளி இந்த பையன் பொருள்
இதை NULL விட்டு; இப்போது நாம் எண் 9 வேண்டும்.
நாம் சேர்க்க வேண்டும் அடுத்த எண் 17 ஆகும்.
17 இங்கு சொந்தமானது, நாம் இந்த வழியாக சில தருக்க தொலைநிலைக்கல்வி செய்ய போகிறது.
நாம், நாம் எண் 8 நுழைக்க வேண்டும் என்று பாசாங்கு நாம் செய்ய முன் எனவே, அதற்கு பதிலாக நாம்.
>> அதனால் தான் வசதிக்காக மீது ஆணையாக, நான் இங்கே வரைய போகிறேன்.
ஆனால் ஞாபகமிருக்கட்டும், malloc மிகவும் எங்கும் முடியும்.
ஆனால் ஓவியம் மீது ஆணையாக, நான் அதை இங்கே வைக்கிறேன்.
அதனால் நான் பல 8 ஒரு முனை ஒதுக்கீடு செய்த பாசாங்கு; இந்த முன்னிருப்பாக சுழியாக.
இப்போது என்ன நடக்க வேண்டும்? எல்லாம் ஒரு ஜோடி.
நாம் இந்த மாதிரி ஒரு சுட்டிக்காட்டி மேம்படுத்தப்பட்டது அங்கு நாங்கள், திங்களன்று மேடையில் இந்த தவறு
பின்னர் இதை, மற்றும் நாம் கூறி - நாம் மேடையில் எல்லோரையும் அனாதையான.
நீங்கள் can't ஏனெனில் - இங்கு நடவடிக்கைகளின் பொருட்டு, முக்கியமானது
இப்போது நாம் ஒரு இடத்தில் மிதந்து வகையான என்று இந்த முனை 9 இழந்துவிட்டேன்.
இந்த திங்களன்று சரியான அணுகுமுறை அல்ல.
நாம் முதலில் வேறு ஏதாவது செய்ய வேண்டும்.
உலகின் மாநில இந்த தெரிகிறது. ஆரம்பத்தில், 8 ஒதுக்கீடு செய்யப்பட்டுள்ளது.
என்ன 8 சேர்க்கைக்கு ஒரு சிறந்த வழி என்று?
மாறாக முதல் இந்த சுட்டிக்காட்டி புதுப்பிப்பதற்கான, வெறும் பதிலாக இங்கே இந்த புதுப்பிக்க.
எனவே நாம் இந்த பூஜ்ய தன்மையை போகிறது என்று குறியீடு ஒரு வரி வேண்டும்
கணு 9 மணிக்கு சுட்டி காட்டும் ஒரு உண்மையான சுட்டிக்காட்டி கொண்டு,
மற்றும் நாம் பாதுகாப்பாக இங்கே இந்த பையன் நேரத்தில் சுட்டி முதல் மாற்றலாம்.
இப்போது நாம் இரு கூறுகளின் பட்டியலை, ஒரு இணைக்கப்பட்ட பட்டியலில் உள்ளது.
இந்த உண்மையில் இங்கு அப்படி என்ன இருக்கிறது?
நாம் குறியீடு பார்த்தால், நான் சரியாக தான் செய்தேன் என்று கவனிக்க.
நான் newptr கூறினார், இந்த கதை, newptr இந்த பையன் உள்ள நீட்டினாள்.
>> என்னை ஒரு விஷயம் வரைந்து விட்டு, நான் இந்த ஒரு சிறு அறையில் விட்டிருக்க வேண்டும்.
எனவே சிறிய சிறிய சித்திரம் மன்னிக்க.
இந்த பையன் newptr அழைக்கப்படுகிறது.
என்று நாம் வரிசையில், ஒரு சில வரிகளில் முன்பு அறிவித்தார் மாறி இருக்கிறது - வெறும் 25 மேலே.
அது 8 சுட்டி காட்டும். அதனால் நான் newptr-> அடுத்த சொல்லும் போது, struct சென்று அதாவது
newptr மூலம் காட்டியதும் வருகிறது என்று, அதனால் இங்கே நாம், அங்கு போக.
பின்னர் அம்பு அடுத்த துறையில் கிடைக்கும் என்று, பின்னர் = அங்கு என்ன மதிப்பு வைத்து சொல்கிறார்?
என்ன மதிப்பு முதல் இருந்தது;? என்று முதல் இருந்தது மதிப்பு
முதல் இந்த இப்போது இந்த முனை உள்ள சுட்டி வேண்டும் என்றால், எனவே இந்த முனை உள்ள நீட்டினாள்.
வேறுவிதமாக கூறினால், என்ன, என் கையெழுத்தில் ஒரு கேலிக்குரிய குழப்பம் என்றாலும் தெரிகிறது
சும்மா இந்த அம்புகள் நகரும் ஒரு எளிமையான கருத்து என்ன
இந்த ஒரு லைனர் கொண்டு குறியீட்டை மொழிபெயர்கப்பட்டுள்ளது.
அடுத்த துறையில் முதல் என்ன சேமித்து பின் முதல் உண்மையில் என்ன புதுப்பிக்க.
இந்த சில வழியாக முன்னோக்கி வேகமாக முன்னோக்கி செல்லலாம்,
இப்போது இந்த வால் செருகும் மட்டுமே இருக்கும்.
நான் சில முனை அடுத்த புலத்தில் NULL என்று கண்டறிய அங்கு புள்ளி வைக்க வேண்டும்.
கதை, ஒரு விவரம் இந்த நேரத்தில் நான் கடந்த glossing என்று
நான் வரி 142, முன்னோடி சுட்டிக்காட்டி இங்கு மற்றொரு சுட்டிக்காட்டி வரை அறிமுகம் செய்துள்ளோம் என்று.
அடிப்படையில், கதை இந்த கட்டத்தில், ஒரு முறை பட்டியல் நீண்ட பெறுகிறார்,
நான் வகையான இரு விரல்களால் அதை நடக்க வேண்டும் நான் மிகவும் சென்றால் ஏனெனில்,
ஒரு ஒற்றை நீளம் பட்டியலில் நினைவில், நீங்கள் பின்னோக்கி போக முடியாது.
எனவே predptr இந்த யோசனை என் இடது கை மற்றும் newptr - இல்லை newptr.
இங்கு மற்றொரு சுட்டிக்காட்டி என் மற்ற விரல் இல்லை, நான் பட்டியல் நடைபயிற்சி வெறும் வகையான இருக்கிறேன்.
என்று உள்ளது, அதனால் தான். ஆனால் ஒரே இங்கே எளிமையான நிகழ்வுகளில் ஒன்றாக கருத வேண்டும்.
என்று சுட்டிக்காட்டி அடுத்த புலத்தில் NULL இருந்தால், தருக்க உட்குறிப்பு என்ன?
இந்த பட்டியலில் பயணித்து மற்றும் நீங்கள் ஒரு NULL சுட்டிக்காட்டி வெற்றி?
நீங்கள் பட்டியலின் முடிவில் இருக்கிறோம், அதனால் குறியீடு இந்த ஒரு கூடுதல் உறுப்பு சேர்க்க வேண்டும்
உள்ளுணர்வு வகையான, அதன் அடுத்த சுட்டிக்காட்டி NULL என்று முனை எடுக்கும்
இந்த தற்போது சுழியாக, மற்றும் புதிய கணு முகவரி இருக்க வேண்டும், எனினும், அதை மாற்ற.
எனவே தான் நாம் ஒருவர் இடது கை ஓங்கிய மேடையில் ஈர்த்தது என்று குறியீடு அம்பு வரையப்படும்.
>> நான் இப்போது என் கைகளை அசைப்பது வேண்டும் என்று வழக்கு,
நான் நாம் சூழலில் இந்த மாதிரியான அதை செய்யும் போது அது இழந்தது எளிதானது என்று தான்,
பட்டியலில் உள்ள நடுத்தர வயதில் செருகும் சோதிக்கிறது.
நீங்கள் கண்டுபிடிக்க வேண்டும் என்றால் ஆனால் உள்ளுணர்வாக, என்ன வேண்டும்
சில எண் மத்தியில் எங்கிருந்து நீங்கள் நடக்க வேண்டும்
ஒன்றுக்கு மேற்பட்ட விரல் கொண்டு, ஒன்றுக்கும் மேற்பட்ட சுட்டிக்காட்டி,
இது சோதனை மூலம் எங்கிருந்து கண்டுபிடித்தார்கள் உறுப்பு ஆகும் <தற்போதைய ஒன்று,
> தற்போதைய ஒரு முறை நீங்கள், அந்த இடத்தில்
பின்னர் நீங்கள் மிகவும் கவனமாக சுற்றி சுட்டிகள் நகர்த்த அங்கு ஷெல் விளையாட்டின் இந்த வகை செய்ய வேண்டும்.
என்று பதில், நீங்கள் உங்கள் சொந்த வீட்டில் இந்த வழியாக காரணம் விரும்பினால்,
கீழே வெறும் குறியீடு இந்த இரண்டு வரிகளுக்கு கொதித்தது, ஆனால் அந்த கோடுகள் வரிசையில் சூப்பர் முக்கியமானது.
நீங்கள் ஒருவரை கை விட்டு மற்றும் உயர்த்த என்றால் வேறு யாரோ, தவறான முறையில் தான்
மீண்டும், நீங்கள் பட்டியல் orphaning முடியும் என்று.
மேலும் கருத்துருவில் சுருக்கி, வால் உள்ள செருகும் நேரடியாக உள்ளது.
தலைமை புகுத்தியது, மேலும் நேரடியாக இல்லை
ஆனால் நீங்கள் ஒரு கூடுதல் சுட்டிக்காட்டி இந்த முறை புதுப்பிக்க வேண்டும்
இங்கே பட்டியலில் எண் 5 கசக்கி வேண்டும்,
பின்னர் மத்தியில் புகுத்தியது இன்னும் முயற்சி மேற்கொள்கிறது,
மிக கவனமாக அதன் சரியான இடத்தில் எண் 20 செருக,
இதில் 17 மற்றும் 22 இடையே உள்ளது.
நீங்கள், 22 புதிய கணு 20 புள்ளி போன்ற ஏதாவது செய்ய வேண்டும் என்று
பின்னர், அது முனை தான் சுட்டிக்காட்டி கடந்த புதுப்பிக்க வேண்டும்?
உண்மையில் இது செருக, 17 தான்.
எனவே மீண்டும், அந்த குறிப்பிட்ட செயல்படுத்த உண்மையான குறியீடு ஒத்திவைக்க வேண்டும்.
>> முதலில், இது ஒரு சிறிய பெரும், ஆனால் இது உண்மையில் ஒரு முடிவிலா சுழற்சியில் தான்
என்று,, தேடுகிறது தேடுகிறது, தேடுகிறது, தேடுகிறது, மற்றும் நீங்கள் NULL சுட்டிக்காட்டி வெற்றி என விரைவில் முறியடிக்கும்
எந்த இடத்தில் நீங்கள் தேவையான செருகும் செய்ய முடியும்.
இந்த, பின்னர், பிரதிநிதி இணைக்கப்பட்ட பட்டியலில் சேர்த்தல் குறியீடு உள்ளது.
, என்று நிறைய இருந்தது, மற்றும் நாம் ஒரு பிரச்சினையை தீர்க்க போல் அது உணர்கிறது
ஆனால் நாம் ஒரு முழு மற்ற ஒரு அறிமுகப்படுத்தப்பட்டது. வெளிப்படையாக, நாம் இந்த நேரத்தில் செலவு
பெரிய ஓ மற்றும் Ω மற்றும் விரைவாக சிக்கல்களை தீர்க்க முயற்சி, நேரம் இயங்கும்,
இங்கு நாம் பின்னோக்கி, அது போல ஒரு பெரிய அடியை எடுத்து.
இன்னும், இலக்கு தரவு சேமிக்க என்றால்,
நாங்கள் திங்களன்று கூறினார் என, பரிசுத்த கிரெயில் போல் உணர்கிறேன், உண்மையில் வேண்டும்
உடனடியாக பொருட்களை சேமிக்க.
>> உண்மையில், நாம் ஒரு கணம் போட்டு தள்ளி இணைக்கப்பட்ட பட்டியலில் என்று நினைக்கிறேன்
நாங்கள் பதிலாக ஒரு அட்டவணை கருத்து அறிமுகப்படுத்தப்பட்டது.
ஒரு வரிசைக்கு ஒரு கணம் அது ஒரு அட்டவணையில் யோசிப்போம்.
இந்த வரிசையில் இந்த வழக்கில் இங்கே சில 26 கூறுகள், 25 மூலம் 0 உள்ளது
நீங்கள் பெயர்கள் சேமிப்பு சில துண்டின் தேவை என்று நினைக்கிறேன்:
ஆலிஸ் மற்றும் பாப் மற்றும் சார்லி மற்றும் போல.
மற்றும் அந்த பெயர்களை சேமிக்க சில தரவு கட்டமைப்பு வேண்டும்.
சரி, நீங்கள் ஒரு இணைக்கப்பட்ட பட்டியலில் போல பயன்படுத்த முடியும்
மற்றும் நீ முன்னும் பின்னுமாக பாப் பிறகு பாப் மற்றும் சார்லி முன் ஆலிஸ் சேர்க்கைக்கு பட்டியலில் நடக்க செய்ய முடியும்.
மேலும், உண்மையில், நீங்கள் ஒரு ஒதுக்கி என்று போன்ற குறியீடு பார்க்க விரும்பினால்,
list2.h, நாம் சரியாக செய்ய வேண்டும் என்று தெரியும்.
நாம் இந்த குறியீடு மூலம் போக மாட்டேன், ஆனால் இந்த முதல் உதாரணமாக ஒரு மாறுபாடு இருக்கிறது
என்று நாம் என்று மாணவர் முன்னர் பார்த்த ஒருவர் struct, அறிமுகப்படுத்துகிறது
பின்னர் அது உண்மையில் இணைக்கப்பட்ட பட்டியலில் சேமித்து ஒரு மாணவர் அமைப்பு ஒரு சுட்டிக்காட்டி உள்ளது
மாறாக ஒரு சாதாரண சிறிய முழு, n.
, குறியீடு உண்மையான சரங்களை அடங்கும் என்று அங்கு மிக உணர
ஆனால் கையில் கோல் உண்மையில் இப்போது திறன் பிரச்சினையை என்றால்,
நாம் ஆலிஸ் என்ற ஒரு பொருள் கொடுத்து நீங்கள் நன்றாக இருக்கும் என்று,
நாம், ஒரு தரவு கட்டமைப்பில் சரியான இடம் சென்று கொடுக்க வேண்டும்
அது ஆலிஸ் வைத்து மிகவும் நன்றாக இருக்கும் போல் தெரிகிறது,
அதன் பெயர் முதல் இடத்தில், ஒரு தொடங்குகிறது.
அதன் பெயர் இரண்டாவது இடத்தில், பி தொடங்குகிறது பாப்,.
ஒரு வரிசைக்கு கொண்டு, அல்லது, அதை ஒரு அட்டவணை, என்று ஒரு ஹாஷ் அட்டவணை அழைப்பு ஆரம்பிப்போம்
நாம் சரியாக செய்ய முடியும். நாம் ஆலிஸ் போன்ற ஒரு பெயர் கொடுத்து இருந்தால்,
ஆலிஸ் போன்ற ஒரு சரம், நீங்கள் ஒரு-L-i-c-e-அங்கு வைத்து?
நாம் ஒரு hueristic வேண்டும். நாம் ஆலிஸ் போன்ற சில உள்ளீடு எடுத்து ஒரு செயல்பாடு தேவை
மற்றும் ஒரு பதில் திரும்பி, "இந்த இடத்தில் ஆலிஸ் போடவும்."
இந்த விழாவில், இந்த கறுப்பு பெட்டி, ஒரு ஹாஷ் சார்பு என்று போகிறது.
>> ஒரு ஹாஷ் சார்பு, "அலைஸ்" போன்ற, ஒரு உள்ளீடு எடுக்கும் என்று ஒன்று உள்ளது
நீங்கள் திரும்பி, பொதுவாக, சில தரவு கட்டமைப்பில் எண் இடம் ஆலிஸ் எங்கிருந்து.
இந்த வழக்கில், எங்கள் ஹாஷ் சார்பு ஒப்பீட்டளவில் எளிமையான இருக்க வேண்டும்.
எங்கள் ஹாஷ் சார்பு நீங்கள் எந்த கேரக்டர் நான் கவலைப்பட வேண்டும் "ஆலிஸ்", வழங்கப்படும் என்றால், என்ன சொல்ல வேண்டும்?
முதல் ஒரு. அதனால் நான் [0] பார்க்க, மற்றும் நான் [0] கதாபாத்திரம் ஒரு இருந்தால், எண் 0 திருப்பி சொல்ல.
இது பி இருந்தால், 1 திருப்பி. இது சி என்றால், அதனால் அடிக்கடி 2 திரும்பி, மற்றும்.
அனைத்து 0 குறியீட்டெண், மற்றும் அதனால் இனிமேல் என்னை ஆலிஸ் பின்னர் பாப் மற்றும் சார்லி நுழைக்க அனுமதிக்க முடியும்
இந்த தரவு அமைப்பிற்கு. ஆனால் ஒரு பிரச்சனை.
என்ன அனிதா மீண்டும் சேர்த்து வருகிறது? என்றால்
நாம் அனிதா எங்கே வைக்க? அவரது பெயர் கூட, ஒரு கடிதம் தொடங்குகிறது
இந்த பிரச்சனையை நாம் ஒரு பெரிய குழப்பம் செய்த போல இது இருக்கிறது.
நாம் இப்போது ஒரு தரவு கட்டமைப்பு பற்றிய உடனடி புகுத்தியது, மாறா நேரம் புகுத்தியது, வேண்டும்
மாறாக மோசமாக-வழக்கை விட ஒருபடி,
ஆனால் நாம் இந்த வழக்கில் அனிதா என்ன செய்ய முடியும்?
இரண்டு விருப்பங்கள் உண்மையில், என்ன? அப்படியா?
[மாணவர் பதில், புரிந்து] சரி, நாம் மற்றொரு பரிமாணத்தை முடியும்.
நல்லது. எனவே நாம் திங்களன்று வாய்மொழியாக பற்றி பேசினார் போன்ற 3D உள்ள விஷயங்கள் வெளியே அமைக்க முடியும்.
நாம் இங்கே இன்னொரு அணுகலை சேர்க்க, ஆனால், நான் இந்த எளிய வைக்க முயற்சி செய்கிறேன் என்று நினைக்கிறேன் முடியும்.
இங்கே முழு நோக்கம், உடனடியாக மாறா நேரம் அணுக வேண்டும்
அதனால் மிகவும் சிக்கலான சேர்க்கும்.
இந்த தரவு அமைப்பிற்கு அனிதா நுழைக்க முயற்சி போது மற்ற விருப்பங்கள் என்ன? அப்படியா?
[மாணவர் பதில், புரிந்து] நல்லது. எனவே, கீழே எல்லோரும் நகர்த்த முடியும்
அவர் உண்மையிலேயே விரும்புகிறார் அங்கு பின்னர் சார்லி பாப் மற்றும் ஆலிஸ், கீழே nudges போன்ற நாம் அனிதா வைத்து.
>> நிச்சயமாக, இப்போது, இந்த ஒரு பக்க விளைவு இல்லை.
இந்த தரவு கட்டமைப்பை நாம் மக்கள் மீண்டும் நுழைக்க விரும்பவில்லை என்பதால் பயனுள்ளதாக இருக்கும்
ஆனால் அவர்கள் பின்னர் அங்கு என்றால் சரிபார்க்க வேண்டும், ஏனென்றால்
நாங்கள் தரவு கட்டமைப்பில் பெயர்கள் ஆல் அவுட் அச்சிட வேண்டும் என்றால்.
நாம் இறுதியில் இந்த தரவு ஏதாவது செய்ய போகிறோம்.
எனவே இப்போது நாம் அவள் இருக்க வேண்டும் எங்கே இனி யார் ஆலிஸ், மேல் ஸ்க்ரீவ்டு என்ன இருக்கிறது.
அல்லது பாப் உள்ளது, அல்லது சார்லி உள்ளது.
அதனால் இது ஒரு நல்ல யோசனை அல்ல.
ஆனால் உண்மையில், இந்த ஒரு வழி. நாங்கள் அனைவரும் கீழே மாற்ற முடியும்
அல்லது கர்மம், அனிதா விளையாட்டு தாமதமாக வந்து, நாம் ஏன் அனிதா போடாதே
இல்லை இங்கே, இங்கே இல்லை, இல்லை இங்கே, அது வெறும் பட்டியலில் சிறிது குறைவாக அவளை வைத்து விடுங்கள்.
ஆனால் பின்னர் இந்த பிரச்சினை மீண்டும் பொறுப்பேற்று தொடங்கும்.
நீங்கள் அவரது முதல் பெயர் அடிப்படையில், உடனடியாக ஆலிஸ் கண்டுபிடிக்க முடியும்.
உடனடியாக பாப், மற்றும் சார்லி. ஆனால் நீங்கள், அனிதா பார்க்க
நீங்கள் அடிக்கடி பார்க்க, ஆலிஸ் வழி உள்ளது.
சரி, எனக்கு ஆலிஸ் கீழே பார்க்கிறேன். பாப் அனிதா அல்ல.
சார்லி அனிதா அல்ல. ஓ, அனிதா உள்ளது.
நீங்கள் தர்க்கம் என்று ரயில் வழி தொடர்ந்து இருந்தால்,
இந்த புதிய தரவு கட்டமைப்பை கொண்டு கண்டறியும் அல்லது அனிதா சேர்க்க மோசமான இயங்கும் நேரம் என்ன?
அது சரி, ஓ (n) என்று?
மோசமான நிலையில் இருப்பதால், ஆலிஸ், பாப், சார்லி உள்ளது. . .
அனைத்து "ஒய்" என்ற பெயரில் யாராவது வழி கீழே, ஒரே ஒரு இடத்தில் உள்ளது விட்டு.
அதிர்ஷ்டவசமாக, நாம் "Z" என்று யாரும் இல்லை, அதனால் நாம் மிகவும் கீழே அனிதா வைத்து.
>> நாம் உண்மையில் அந்த பிரச்சனை இல்லை.
அதனால் நாம் இந்த மூன்றாவது பரிமாணம் அறிமுகப்படுத்த வேண்டும்.
இந்த மூன்றாவது பரிமாணம் அறிமுகப்படுத்த என்றால் அது, மாறிவிடும்
நாங்கள் செய்தபின் இந்த செய்ய முடியாது, ஆனால் பரிசுத்த கிரெயில் பெற போகிறது
நிலையான நேர செருகும் மற்றும் மாறும் புகுத்தல் என்று
நாம் அளவு 26 கடின குறியீடு ஒரு வரிசைக்கு இல்லை.
நாம் வேண்டும் என நாம் பல பெயர்கள் சேர்க்க முடியாது, ஆனால் நாம் இங்கு நம் 5 நிமிட இடைவெளி
பின்னர் ஒழுங்காக செய்ய.
எல்லாம் சரி. நான் அழகாக செயற்கையாக இருக்கிறது கதை அமைக்க
ஆலிஸ் பின்னர் பாப் மற்றும் சார்லி பின்னர் அனிதா, தேர்ந்தெடுப்பதன் மூலம்
அதன் பெயர்தானே ஆலிஸ் இணைவதாக இருந்தது.
ஆனால் நாம் திங்களன்று முடிவுக்கு கேள்வி இது எப்படி கருதப்படுகிறது
இந்த வகையான மோதல்கள் கிடைக்கும் என்று? வேறுவிதமாக கூறினால்,
இந்த அட்டவணை கட்டமைப்பு பயன்படுத்த ஆரம்பித்தால், அது உண்மையில் ஒரு வரிசை உள்ளது
26 இடங்களில் இந்த வழக்கில்,
எங்கள் உள்ளீடுகள் பதிலாக பரவியுள்ள என்றால் என்ன?
அது செயற்கையாக ஆலிஸ் மற்றும் பாப் மற்றும் சார்லி மற்றும் டேவிட் மற்றும் மிகவும் முன்னும் பின்னுமாக அகர வரிசைப்படி,
அது சீராக இசட் மூலம் ஒரு விநியோகித்தனர்
>> ஒருவேளை நாம் தான் அதிர்ஷ்டம் கிடைக்கும், நாம் இரண்டு ஒரு அல்லது இரண்டு B இன் வேண்டும் போவதில்லை
ஒருவர் சுட்டிக்காட்டினார், மிக அதிக நிகழ்தகவு, ஆனால்
நாங்கள் பொதுவான இந்த பிரச்சனை இல்லை என்றால் 0 25
ஆனால், என்ன, 0 364 அல்லது 65, ஒரு பொதுவான ஆண்டு நாட்கள் பெரும்பாலும் எண்,
மற்றும் கேள்வி கேட்டேன், "இந்த அறையில் இரண்டு அதே பிறந்த நாள் என்று நிகழ்தகவு என்ன?"
அது மற்றொரு வகையில், நிகழ்தகவு எங்களுக்கு இரண்டு ஒரு துவங்கும் ஒரு பெயர் உண்டு என்று என்ன?
கேள்வி வகையான, அதே தான், ஆனால் இந்த முகவரி இடம்
இந்த தேடல் இடம், பிறந்த நாள் நிகழ்வில் பெரியது
நாம் எழுத்தில் உள்ள எழுத்துக்களை விட ஆண்டில் பல நாட்கள் ஏனெனில்.
ஒரு மோதல் நிகழ்தகவு என்ன?
சரி, நாம் கணித எதிர் வழி கண்டுபிடித்து இந்த நினைக்க முடியாது.
இல்லை மோதல்களின் நிகழ்தகவு என்ன?
சரி, இங்கு இந்த கருத்து என்ன நிகழ்தகவு என்று கூறுகிறார்
அவர்கள் ஒரு தனிப்பட்ட பிறந்த நாள் என்று இந்த அறையில் ஒரு நபர், அங்கு என்றால்?
இது 100% தான். ஏனெனில் அறையில் ஒரே ஒரு நபர் இருந்தால்,
அவரது பிறந்த ஆண்டு அவுட் 365 நாட்கள் எந்த இருக்க முடியும்.
எனவே 365/365 விருப்பங்கள் என்னை 1 ஒரு மதிப்பு கொடுக்கிறது.
எனவே நேரத்தில் கேள்வி நிகழ்தகவு வெறும் 1.
ஆனால் அறையில் இரண்டாவது நபர் இருந்தால்,
அவர்களின் பிறந்த நாள் வேறு என்று நிகழ்தகவு என்ன?
மட்டுமே 364 சாத்தியம் நாட்கள், அசட்டை நெட்டாண்டுகளில், அங்கு
அவர்களின் பிறந்த மற்ற நபர்கள் இணைவதாக இல்லை.
எனவே 364/365. ஒரு மூன்றாவது நபர் வந்தால், அது முன்னும் பின்னும் 363/365, மற்றும்.
எனவே, சிறிய மற்றும் சிறிய பெறுகின்றனர் இது, இந்த பின்னத்தின் ஒன்றாக பெருக்கி கொள்ள
கண்டுபிடிக்க நம் அனைவருக்கும் தனிப்பட்ட பிறந்த நாள் என்று நிகழ்தகவு என்ன?
ஆனால் நாம், நிச்சயமாக, அந்த பதில் எடுத்து அதை சுற்றி புரட்ட முடியும்
மற்றும் அந்த 1 கழித்து அனைத்து, நாம் இறுதியில் கிடைக்கும் வெளிப்பாடு செய்ய
உங்கள் கணித நூல்கள் மீண்டும் நினைவில் இருந்தால், அது, இது போன்ற ஒரு சிறிய ஒன்று தெரிகிறது
இது மிகவும் எளிதாக வரைபட விளக்கம்.
இங்கு இந்த கிராஃபிக், x அச்சில் பிறந்தநாள் எண்ணிக்கை உள்ளது
அல்லது பிறந்த மக்கள், மற்றும் y அச்சில் எண்ணிக்கை ஒரு போட்டியில் நிகழ்தகவு ஆகும்.
என்ன இப்படி சொல்கிறான், நீங்கள் இருந்தால், கூட, தான் சொல்கிறேன் என்று
22, 23 போன்ற ஏதாவது செய்யலாம்.
அறையில் 22 அல்லது 23 பேர், இருந்தால்
அந்த சில பேர் இரண்டு அதே பிறந்த நாள் நடக்க போகிறது என்று நிகழ்தகவு
combinatorially, உண்மையில் சூப்பர் அதிகமாக உள்ளது.
50% முரண்பாடுகள் என்று நடைமுறையில் மட்டும் 22 பேர், ஒரு கருத்தரங்கு, ஒரு வர்க்கம்,
அந்த மக்கள் 2 அதே பிறந்த நாள் நடக்க போகிறது.
ஏனெனில் நீங்கள் அதே பிறந்த முடியும் இதில் பல வழிகள் இருக்கிறது.
இன்னும் மோசமாக, நீங்கள் தரவரிசையில் வலது பக்கத்தில் இருக்கும் என்றால்,
அந்த நேரத்தில் நீங்கள், அது 58 மாணவர்கள் ஒரு வர்க்கம் இல்லை
ஒரு பிறந்த நாள் கொண்ட 2 பேர் நிகழ்தகவு சூப்பர், சூப்பர் உயர், கிட்டத்தட்ட 100% ஆகும்.
இப்போது, அந்த உண்மையான வாழ்க்கை பற்றி ஒரு வேடிக்கையான உண்மை வகையான தான்.
>> ஆனால் தாக்கங்கள், இப்போது, தரவு கட்டமைப்புகள் மற்றும் சேமிப்பதற்கென தகவல்
நீங்கள் தரவு ஒரு நல்ல, சுத்தமான, சீருடை விநியோகம் இல்லை அனுமானித்து என்று அர்த்தம்
நீங்கள் எல்லாம் ஒரு கூட்டத்தை பொருந்தும் ஒரு பெரிய போதுமான வரிசை உள்ளது
நீங்கள் தனிப்பட்ட இடங்களில் மக்கள் போகிறோம் என்று அர்த்தமல்ல.
நீங்கள் மோதல்கள் இருக்கலாம். , இது என என, ஹெஷிங் இந்த கருத்து மிகவும்
"ஆலிஸ்" ஒரு உள்ளீடு எடுத்து சில வழியில் அதை அமுக்கு
பின்னர் 0 அல்லது 1 அல்லது 2 ஒரு பதில் திரும்ப பெறுவது.
அந்த விழாவில் இருந்து சில வெளியீடு திரும்பி பெற மோதல் இந்த நிகழ்தகவு பாதிக்கப்படுகிறது.
நாம் எப்படி அந்த மோதல்கள் கையாள முடியும்?
சரி, ஒரு வழக்கில், நாம் கருத்து என்று யோசனை ஆகும்.
நாம் மட்டும், இன்னும் கொஞ்சம் எளிமையாக, ஒருவேளை எல்லோரும் மாற்ற, அல்லது
மாறாக வேறு நடவடிக்கை அனைவருக்கும் விட, இது தான் கிடைக்கும் இடத்தில் கீழே அனிதா நகர்த்த வேண்டும்.
ஆலிஸ் 0 இருக்கிறார் என்றால், பாப் 1 உள்ளது, சார்லி, 2 ஆகும்
நாம் மட்டும் இடம் 3 மணிக்கு அனிதா வைக்கிறேன்.
இந்த ஆய்வு லீனியர் என்று தரவு கட்டமைப்புகள் ஒரு நுட்பமாகும்.
நீங்கள் இந்த வரியை நடைபயிற்சி, மற்றும் நீங்கள் ஆய்வு வகையான நீங்கள் நேரியல் ஏனெனில்
தரவு கட்டமைப்பு இன்னும் புள்ளிகள் கிடைக்கும்.
நிச்சயமாக, இந்த ஓ (n) என்ற devolves.
தரவு கட்டமைப்பு உண்மையில் முழு இருந்தால், அதை 25 பேர், ஏற்கனவே அங்கு
பின்னர் அனிதா சேர்த்து வந்தால், அவர் இடம் Z என்ன மணிக்கு முடிவடைகிறது, மற்றும் அது நல்லது.
அவள் இன்னும் பொருந்தும், நாம் பிறகு பார்க்கலாம்.
>> ஆனால் இந்த விஷயங்களை வேகமாக நோக்கம் மாறாக இருந்தது.
நாம் பதிலாக இந்த மூன்றாவது பரிமாணம் அறிமுகப்படுத்தப்பட்டது அதனால் என்ன?
அந்த நுட்பத்தை பொதுவாக தனி சங்கிலியாக்கல் என்று, அல்லது சங்கிலிகள் உள்ளன.
மற்றும் ஒரு ஹாஷ் அட்டவணை இப்போது, இந்த அட்டவணை அமைப்பு என்ன ஆகும்,
உங்கள் அட்டவணை மட்டும் சுட்டிகள் ஒரு வரிசை ஆகும்.
ஆனால் என்ன அந்த சுட்டிகள் சுட்டி கணிப்பு என்ன?
ஒரு இணைக்கப்பட்ட பட்டியலில். இந்த இரு உலகின் சிறந்த எடுத்து அதனால் என்ன?
நாங்கள் ஆரம்ப குறியீடுகள் ஐந்து வரிசைகள் பயன்படுத்த
தரவு கட்டமைப்பாக நாம் உடனடியாக, [1], [30] அல்லது நான்காவது [0] செல்லலாம்
ஆனால் நாம் சில நெகிழ்வு நாம் அனிதா மற்றும் ஆலிஸ் மற்றும் ஆடம் பொருந்த முடியும்
மற்றும் வேறு ஒரு பெயர்,
நாம் அதற்கு பதிலாக மற்ற அச்சு தன்னிச்சையாக வளரட்டும்.
நாம் இறுதியாக, திங்கள் வரை, தொடர்புடைய பட்டியல் என்று வெளிப்படுத்தும் திறனை கொண்டுள்ளன.
நாம் தன்னிச்சையாக ஒரு தரவு கட்டமைப்பு வளர முடியும்.
மாறாக, நாம் தான், ஒரு பெரிய 2 பரிமாண அணிகளில் முடியும்
ஆனால் அது ஒரு மோசமான நிலைமை இருக்க போகிறது 2 பரிமாண அணிகளில் வரிசைகளில் ஒரு
அதன் பெயர் ஏ ஆரம்பிக்க நடக்கும் கூடுதல் நபருக்கு போதுமானதாக இல்லை
கடவுள் நாம் ஒரு பெரிய 2 பரிமாண கட்டமைப்பை மறு வேண்டும்
ஒரு பெயரில் பல மக்கள், அங்கு தான்
Z ஒன்று என்ற மிக சில பேர் அங்கு குறிப்பாக போது.
அது ஒரு மிக அடர்த்தியற்ற தரவு கட்டமைப்பு இருக்க போகிறது.
அதனால் அது எந்த வகையில் சரியானது அல்ல, ஆனால் இப்போது நாம் குறைந்தது திறனை கொண்டுள்ளன
ஆலிஸ் அல்லது அனிதா எங்கிருந்து உடனடியாக கண்டுபிடிக்க,
குறைந்தது செங்குத்து அச்சு அடிப்படையில்,
மற்றும் நாம் இந்த இணைக்கப்பட்ட பட்டியலில் அனிதா அல்லது ஆலிஸ் வைத்து அங்கு முடிவெடுக்க வேண்டும்.
நாம் விஷயங்களை வரிசையாக்க பற்றி கவலை இல்லை என்றால், எவ்வளவு விரைவாக நாம் இந்த மாதிரி ஒரு அமைப்பு என்ற ஆலிஸ் நுழைக்க முடியும்?
அதை தொடர்ந்து நேரம். [0] என நாம் குறியீட்டு, மற்றும் எந்த ஒரு இருக்கிறது என்றால்,
ஆலிஸ் என்று இணைக்கப்பட்ட பட்டியலில் ஆரம்பத்தில் செல்கிறது.
ஆனால் ஒரு பெரிய விசயமில்லை. அனிதா பின்னர் உடன் வந்தால், ஏனெனில்
படிகள் சில எண்ணை பின்னர், அனிதா அங்கு சொந்தம்?
நன்றாக, [0]. Oop. ஆலிஸ் என்று இணைக்கப்பட்ட பட்டியலில் ஏற்கனவே உள்ளது.
>> ஆனால் நாம் இந்த பெயர்கள் வரிசையாக்க பற்றி கவலை இல்லை என்றால்,
நாம் தான் ஆலிஸ் மீது, நுழைவு அனிதா நகர்த்த முடியும், ஆனால் கூட நிலையான நேரம்.
ஆலிஸ் மற்றும் ஆடம் மற்றும் அனைத்து இந்த மற்ற ஒரு பெயர்கள், அங்கு கூட
அது உண்மையில் உடல் அவர்களை மாற்றுவதால் இல்லை. ஏன்?
நாம் தான் தெரியும் யார் இணைக்கப்பட்ட பட்டியலில், இங்கு ஏனெனில் இந்த முனைகளில் எப்படியும்?
நீங்கள் செய்ய வேண்டியது எல்லாம் ரொட்டி crumbs நகர்த்த வேண்டும்.
சுமார் அம்புகள் நகர்த்த; நீங்கள் உடல் முழுவதும் எந்த தரவு நகர்த்த இல்லை.
எனவே நாம் உடனடியாக, அந்த வழக்கில், அனிதா சேர்த்துவிடும். மாறா நேரம்.
அதனால் நாங்கள் தொடர்ந்து நேர தேடல், மற்றும் அனிதா போன்ற யாரோ மாறா நேரம் செருகும் வேண்டும்.
ஆனால் உலக oversimplifying வகையான.
நாம் பின்னர் ஆலிஸ் கண்டுபிடிக்க வேண்டும் என்றால்?
எப்படி பல நடவடிக்கைகளை எடுத்து வருகிறது?
[மாணவர் பதில், புரிந்து]
சரியாக. இணைக்கப்பட்ட பட்டியலில் ஆலிஸ் முன் மக்கள் எண்ணிக்கை.
எங்கள் தரவு கட்டமைப்பு, மீண்டும், இந்த செங்குத்து அணுகல் ஏனெனில் அது, மிக சரியான இல்லை
பின்னர் அது தொங்கி இந்த இணைக்கப்பட்ட பட்டியலில் உள்ளது - உண்மையில், அது ஒரு வரிசை வரைய நாம்.
இந்த இணைக்கப்பட்ட பட்டியலில் இந்த ஒரு சிறிய ஏதோ இருக்கிறது என்று அதிலிருந்து தொங்கும்.
ஆனால் பிரச்சனை என்றால் ஆலிஸ் மற்றும் ஆடம் மற்றும் அனைத்து இந்த மற்ற ஒரு பெயர்கள்
அங்கு இன்னும் முடிவுக்கு,
யாரோ வழிமுறைகளை ஒரு கூட்டத்தை எடுத்து முடிவடையும் என்று கண்டுபிடித்து,
, நீங்கள் இணைக்கப்பட்ட பட்டியலில் தொடரவேண்டும் bcause
இது ஒரு நேரியல் செயல் ஆகும்.
எனவே உண்மையில், பின்னர், செருகும் நேரம் இறுதியில் n பட்டியலில் கூறுகள் எண்ணிக்கை ஓ (n), ஆகும்.
வகுக்கப்பட்ட, அது தன்னிச்சையாக அதை மீ தொடர்புடைய பட்டியல்கள் எண்ணிக்கை மீ, அழைப்பு விடு
நாம் இந்த செங்குத்து அச்சு வேண்டும் என்று.
வேறுவிதமாக கூறினால், நாம் உண்மையான பெயர்கள் ஒரு சீரான பரவலை என்றால்,
முற்றிலும் நம்பத்தகாத. மற்றவர்களை விட சில கடிதங்கள் வெளிப்படையாக இன்னும் இருக்கிறது.
>> ஆனால் நாம் இப்போது ஒரு சீரான விநியோகம் கருதி இருந்தால்,
நாம் மொத்த மக்கள், மற்றும் சி மொத்த சங்கிலிகள் n
இந்த சங்கிலியின் ஒவ்வொரு நமக்கு கிடைக்கும், பிறகு நீளம்
மிகவும் எளிமையாக மொத்த, n சங்கிலிகள் எண்ணிக்கை வகுக்க போகிறது.
எனவே n / மீ. நாம் அனைத்து கணித வீழ்வது இருக்க முடியும் ஆனால் இங்கே தான்.
இந்த ஒரு நிலையான எண் ஏனெனில் மீ, ஒரு நிலையான.
நீங்கள், ஆரம்பத்தில் உங்கள் வரிசை அறிவிக்க போகிறீர்கள்
நாம் பெரிதாக்க செங்குத்து அச்சு அல்ல. வரையறை, சரி என்று.
அது மாறும் என்று, பேச, ஒரே கிடைமட்ட அச்சு தான்.
எனவே தொழில்நுட்ப, இந்த ஒரு நிலையாக இருக்கும். அதனால் இப்போது, செருகும் நேரம்
அழகான மிகவும் ஓ (n) ஆகும்.
அதனால் அனைத்து அவ்வளவு நன்றாக இல்லை.
ஆனால் உண்மையை இங்கே என்ன? சரி, இந்த நேரத்தில், வாரங்கள்,
நாம் சொல்லி ஓ (n ²). ஓ (n), 2 x n ², - n, 2 வகுக்கப்பட்ட. . . Ech.
இது n ² தான். ஆனால் இப்போது, செமஸ்டர் இந்த பகுதியில்,
நாங்கள் மீண்டும் உண்மையான உலக பற்றி பேசவும் முடியாது.
மற்றும் n / மீ மட்டும் தனியாக n விட முற்றிலும் வேகமாக உள்ளது.
நீங்கள் ஒரு ஆயிரம் பெயர்கள், மற்றும் பல வாளிகள் அவற்றை உடைக்க வேண்டும்
நீங்கள், இந்த சங்கிலியின் ஒவ்வொரு பத்து பெயர்கள் என்று
முற்றிலும் பத்து விஷயங்களை தேடி ஆயிரம் விஷயங்களை விட வேகமாக இருக்கும்.
எனவே எதிர்வரும் பிரச்சனை தொகுப்பில் ஒன்றை நீங்கள் சவால் போகிறது
சரியாக என்று நினைக்க கூட, yeah,
தொலைத்தொடுகோட்டு மற்றும் கணித, இது தான் நேரான உள்ளது,
பொருட்களை கண்டுபிடிக்க முயற்சிக்கும் போது, அது பொது உறிஞ்சப்பட்டு.
உண்மையில், அது வேகமாக இருக்கிறது நடக்கிறது
ஏனெனில் இந்த வகுக்குமெண் வேண்டும்.
எனவே மீண்டும் இந்த வர்த்தக பரிமாற்றம் இருப்பதாக நடக்கிறது
மற்றும் கோட்பாடு மற்றும் உண்மையில் இடையில் இந்த மோதல்,
மற்றும் கைப்பிடிகளை ஒரு செமஸ்டர் இந்த கட்டத்தில் திருப்பு ஆரம்பிக்கும்
நாம் அப்படி semster இறுதியில் தயார் என உண்மையில் ஒரு மேலும்,
நாம் வலை நிரலாக்க உலக அறிமுகப்படுத்த, என
உங்கள் பயனர் போகிறீர்கள் ஏனெனில் அங்கு உண்மையில், செயல்திறன் எண்ணிக்கை போகிறது
ஏழை வடிவமைப்பு முடிவுகள் நினைக்கிறேன் பாராட்ட தொடங்கும்.
>> நீங்கள் ஒரு இணைக்கப்பட்ட செயல்படுத்த பற்றி எப்படி போக - ஒரு ஹாஷ் அட்டவணை 31 தனிமங்களுடன்?
முந்தைய எடுத்துக்காட்டாக பிறந்தநாட்களை பற்றி தன்னிச்சையாக இருந்தது.
யாரோ ஜனவரி 1 அல்லது பிப்ரவரி 1 ஒரு நாள் இருந்தால், நாம் இந்த வாளி அவர்களுக்கு வைக்கிறேன்.
இது ஜனவரி 2, பிப்ரவரி 2, மார்ச் 2 இருந்தால், நாம் இந்த வாளி அவர்களுக்கு வைக்கிறேன்.
இது 31 அதனால் தான். எப்படி ஒரு ஹாஷ் அட்டவணை அறிவிக்க?
அது மிகவும் எளிமையான முடியும், கணு * அட்டவணை அது என் தன்னிச்சையான பெயர், [31] ஆகும்.
இந்த, முனைகளில் என்னை 31 சுட்டிகள் கொடுக்கிறது
என்னை இணைக்கப்பட்ட பட்டியலில் 31 சுட்டிகள் வேண்டும் அனுமதிக்கிறது
அந்த சங்கிலியை ஆரம்பத்தில் NULL கூட.
நான் சேமிக்க வேண்டும் என்றால் நான் "பாப்", "சார்லி" "ஆலிஸ்," வைத்து என்ன வேண்டும்?
சரி, நாம் ஒரு கட்டமைப்பை அந்த விஷயங்களை மடிக்க வேண்டும்
நாம் ஆலிஸ், பாப் சுட்டிக்காட்ட சார்லி சுட்டிக்காட்ட, மற்றும் முன்னும் பின்னுமாக. தேவை
நாம் மட்டும் தனியாக பெயர்கள் முடியாது, அதனால் நான் இங்கே கணு என்ற புதிய அமைப்பை உருவாக்க முடியும்.
>> ஒரு உண்மையான முனை என்ன? இந்த புதிய இணைக்கப்பட்ட பட்டியலில் ஒரு முனை என்ன?
வார்த்தை என்று முதல் விஷயம், நபரின் பெயர் உள்ளது.
LENGTH, மறைமுகமாக, மனித பெயர் அதிகபட்ச நீளம் தொடர்புடையதாக
என்று என்ன, 20, வேடிக்கையான மூலையில் நேரங்களில் 30, 40 எழுத்துகள்,
மற்றும் +1 என்ன ஆகும்? அது கூடுதல் NULL தன்மை, \ 0 தான்.
இந்த முனை, உள்ளே கூட "ஒன்று" போர்த்தப்படுகின்றது
ஆனால் அது அடுத்த ஒரு சுட்டிக்காட்டி அறிவிக்கிறது
நாம் சார்லி என்ற பாப் சங்கிலி ஆலிஸ் முடியும் மற்றும் முன்னும் பின்னுமாக என்று.
NULL முடியும் ஆனால் அவசியம் இருக்க வேண்டும் இல்லை.
இந்த புல அட்டவணைகள் எந்த கேள்விகள்? அப்படியா?
[மாணவர் புரிந்து, கேள்வி கேட்டு] ஒரு வரிசை - நல்ல கேள்வி.
ஏன் ஒரு வரிசைக்கு பதிலாக வெறும் எரிப்பதை * இந்த எரிப்பதை சொல்?
இந்த ஓரளவு தன்னிச்சையாக எடுத்துக்காட்டாக, நான் நாட வேண்டும் விரும்பவில்லை
அசல் பெயர்கள் ஒவ்வொரு malloc வேண்டும்.
நான் சரம் நினைவகம் அதிகபட்ச அளவு அறிவிக்க வேண்டும்
நான் ஆலிஸ் \ 0 மற்றும் malloc மற்றும் இலவச போன்ற சமாளிக்க வேண்டும் கட்டமைப்பாக நகலெடுக்க முடியவில்லை.
நான் வெளி பயன்பாடு இன்னும் நனவாக வேண்டும் என்றால் ஆனால் நான் அதை செய்ய முடியும். கேள்வி நல்ல.
இந்த விலகி பொதுமைப்படுத்த முயற்சி செய்வோம்
மேலும் பொதுவாக தரவு கட்டமைப்புகள் இன்று எஞ்சிய கவனம்
நாம் ஒரே அடிப்படைகளை பயன்படுத்தி தீர்க்க முடியும் என்று மற்ற பிரச்சினைகள்
கூட தரவு கட்டமைப்புகள் இருந்தாலும் தங்கள் விவரங்கள் வேறுபடுகின்றன கூடும்.
>> அது கணினி அறிவியல் அவுட் சுழல்கிறது, மரங்கள் மிகவும் பொதுவான.
நீங்கள், ஒரு குடும்பம் மரம் போன்ற ஒரு மரம் மாதிரி யோசிக்க முடியும்
சில வேர்கள், சில பெண் தலைவி அல்லது பிரதிபா, அங்கு தான்
பாட்டி, அல்லது தாத்தா அல்லது முந்தைய திரும்பி,
இதில் கீழே அம்மா, அப்பா அல்லது பல்வேறு உடன்பிறந்தவர்கள் அல்லது போல இருக்கும்.
எனவே, ஒரு மரம் கட்டமைப்பு முனைகள் மற்றும் குழந்தைகள் உள்ளன
ஒவ்வொரு முனையின் வழக்கமாக 0 அல்லது அதற்கு மேற்பட்ட குழந்தைகள்.
மற்றும் வாசகங்கள் சில நீங்கள் இங்கே இந்த படத்தில் பார்க்கிறீர்கள் என்று
இது முனைகளை சிறிய குழந்தைகள் அல்லது grandkids எந்த
யார், அவர்களிடம் இருந்து வெளிப்படும் இல்லை அம்புகள் வேண்டும்
அந்த என்று அழைக்கப்படும் இலைகள், மற்றும் உள்ளே யாரும் இல்லை
ஒரு உள் முனை ஆகும்; அந்த வழிகளில் எதையும் அழைக்க முடியும்.
ஆனால் இந்த அமைப்பு மிகவும் பொதுவானது. இந்த ஒரு சிறிய தன்னிச்சையான தான்.
நாம், நாம் சரியான மூன்று குழந்தைகள், இடது ஒரு குழந்தை வேண்டும்
கீழே இரண்டு குழந்தைகள் உள்ளன.
எனவே, நாம் விஷயங்களை தரநிலையாக்கத்தை ஆரம்பித்தால் வெவ்வேறு அளவிலான மரங்கள், ஆனால் முடியும்
நீங்கள் ஒரு முந்தைய குறுகிய இருந்து இரும தேடல் அன்று பேட்ரிக் வீடியோ இந்த நினைவு இருக்கும்
ஆன்லைன், பைனரி தேடல் வரிசை மூலம் நடைமுறைப்படுத்தப்பட வேண்டும் இல்லை
ஒரு blackboard காகிதம் அல்லது துண்டுகள்.
நீங்கள் ஒரு சிக்கலான தரவு கட்டமைப்பு உங்கள் எண்கள் சேமிக்க வேண்டும் என்று நினைக்கிறேன்.
இந்த மாதிரி ஒரு மரம் உருவாக்க முடியும்.
நீங்கள் சி அறிவித்தார் ஒரு முனை முடியும், மற்றும் கணு உள்ளே குறைந்தது இரண்டு கூறுகள் உள்ளன.
நீங்கள் சேமிக்க விரும்பும் எண், மற்றும் வேறு - நன்றாக, நாம் இன்னும் வேண்டும்.
மற்ற அதன் குழந்தைகள் ஆகும்.
இங்கு மற்றொரு தரவு அமைப்பு தான். இந்த நேரத்தில், ஒரு முனை n ஒரு எண் சேமித்து வரையறுக்கப்படுகிறது
பின்னர் இரண்டு குறிப்புகள்; இடது குழந்தை மற்றும் வலது குழந்தை.
அவர்கள் தன்னிச்சையாக அல்ல. என்ன இந்த மரம் பற்றிய சுவாரஸ்யமான விஷயம்?
>> நாம் பேட்ரிக் அவரது வீடியோ இது தான் தீட்டப்பட்டது எப்படி இந்த அமைக்கப்பட்டன அல்லது நீங்கள் எவ்வாறு முறை என்ன?
அதை, இங்கே நடக்கிறது சில வரிசையாக்க இல்லை என்று வகையான கண்டிப்பாக
ஆனால் விதியை என்ன? அப்படியா?
[மாணவர் பதில், புரிந்து]
ஆனால். இந்த ஏறெடுத்தும் பார்க்க, நீங்கள், இடது சிறிய எண்கள் பார்க்க
பெரிய இடது எண்கள், ஆனால் ஒவ்வொரு முனையின் உண்மை.
ஒவ்வொரு முனையின், அதை விட அதன் இடது குழந்தை குறைவாக, அதை விட அதன் சரியான குழந்தை அதிக.
நான் பல 44, என்று, இந்த தரவு கட்டமைப்பு தேட விரும்பினால் என்ன, இந்த இப்போது அர்த்தம் உள்ளது
நான், ஏனெனில் இப்போது இந்த சிக்கலான தரவு கட்டமைப்புகள் அனைத்தையும் போல, வேர் துவங்க வேண்டும்
நாம் மட்டும் தொடக்கத்தில், ஒன்று ஒரு சுட்டிக்காட்டி இருக்கிறது.
இந்த வழக்கில், தொடக்கத்தில் ரூட் உள்ளது. இது, இடது இறுதியில் இல்லை
இந்த அமைப்பு வேர் தான். எனவே நான் இங்கு 55 தான் பார்க்க, நான் 44 தேடிக்கொண்டிருக்கிறேன்.
எந்த திசையில் நான் போக வேண்டும்?
வெளிப்படையாக, வலது மிக பெரிய போகிறேன் ஏனெனில், நான், இடது போக வேண்டும்.
இங்கு கவனிக்க, நீங்கள் கருத்து பகுதியில் மரம் நறுக்குவதில் வகையான இருக்கும்
நீங்கள் வலது பக்கத்தில் கீழே போவதில்லை என்பதால்.
எனவே இப்போது நான் 55 முதல் 33 செல்ல. இது பல மிக சிறிய விஷயம்.
நான் 44 தேடிக்கொண்டிருக்கிறேன், ஆனால் இப்போது நான் 44 இந்த மரம் இருந்தால், நான் வலது வெளிப்படையாக போகலாம் என்று.
எனவே மீண்டும், நான் சீரமைப்பு பகுதியில் மரம் இருக்கிறது.
இது தொலைபேசி புத்தகத்தில் கருத்து மிகவும் அதிகமாக ஒரே விஷயம்.
அதை, நாம் blackboard பேப்பர்கள் என்ன செய்தாள் ஒத்ததாக உள்ளது
ஆனால் அது உண்மையில் செய்ய அனுமதிக்கிறது என்று ஒரு சிக்கலான அமைப்பு தான்
இந்த, பிரித்து வழிமுறை வடிவமைப்பு மூலம் வெற்றி
உண்மையில், இந்த மாதிரி ஒரு அமைப்பு பயணித்து - அச்சச்சோ.
இந்த மாதிரி ஒரு அமைப்பு பயணித்து, அது எங்கே ", இந்த வழியில் செல்ல அல்லது அந்த வழியில் சென்று"
பிரிவில் அதை செயல்படுத்தும் போது முதலில் உங்கள் மனதில் வளைந்து அனைத்து அந்த குறியீடு என்பது
அல்லது, மறுநிகழ்வு அல்லது மறு செய்கை பயன்படுத்தி, பைனரி தேடுவதற்கு, வீட்டில் அது வழியாக நடைபயிற்சி
அதை கழுத்தில் ஒரு வலி தான். நடுத்தர உறுப்பு கண்டறிய, உங்கள் ரவுண்டிங் அல்லது கீழே செய்வது.
>> நாம் இப்போது மீண்டும் மறுநிகழ்வு பயன்படுத்த முடியும் என்பதால், ஒரு அழகு, இந்த இருக்கிறது
ஆனால் மிகவும் சுத்தமாக. உண்மையில், நீங்கள் எண் 55 மணிக்கு மேலும் உங்களுக்கு 44 கண்டறிய வேண்டும் என்றால்,
இந்த வழக்கில் விட்டு போக, பின் என்ன செய்வது? நீங்கள் சரியான அதே வழிமுறையை ரன்.
நீங்கள் முனை மதிப்பு சரிபார்த்து, பிறகு இடது அல்லது வலது போக.
நீங்கள் இடது அல்லது வலது போக, கணு மதிப்பு சரிபார்க்கவும்.
இந்த செய்தபின் மறுநிகழ்வு பொருத்தமானதாகும்.
அதனால் கூட கடந்த காலத்தில் நாம் மறுநிகழ்வு சம்பந்தப்பட்ட சில மிகவும் தன்னிச்சையான உதாரணங்கள் செய்துவிட்டேன்
என்று, தரவு stuctures கொண்டு, சூத்திர வேண்டும்
குறிப்பாக மரங்கள், அது, ஒரு பிரச்சினையை எடுத்து இந்த யோசனை ஒரு முழுமையான விண்ணப்ப படிவம்
அது குறைந்து, பின்னர் அதே வகை, ஆனால் சிறிய, நிரல் தீர்க்கும்.
>> நாம் அறிமுகப்படுத்த முடியும் என்று மற்றொரு தரவு கட்டமைப்பு உள்ளது.
இந்த ஒரு ரகசிய பார்க்க முதல் பார்வையில் வடிவமைக்கப்பட்டுள்ளது, ஆனால் இந்த ஒரு ஆச்சரியமான விஷயம் தான்.
எனவே இந்த வார்த்தை மீட்பு இருந்து பெறப்பட்ட ஒரு trie, trie, என்று ஒரு தரவு கட்டமைப்பு
இது மீண்டும் முயற்சித்து-Val உச்சரிக்கப்படுகிறது, ஆனால் அந்த உலக இந்த விஷயங்களை அழைப்பது இல்லை. முயற்சிக்கிறது. டி r-i-e.
இது சில வகையான மர கட்டமைப்பாக இருக்கிறது, ஆனால் ஒரு trie முனைகளுக்கிடையே ஒவ்வொரு
என்ன தோன்றுகிறது? அதை சுருக்கமாக வகையான ஏனெனில் இந்த ஒரு பிட் தவறான.
ஆனால் இந்த trie ஒவ்வொரு கணு உண்மையில் ஒரு வரிசை என்பது தெரிகிறது.
மற்றும் கூட இந்த வரைபடம் ஆசிரியர், இது காட்டுகிறது
இந்த வழக்கில், இந்த trie அதன் நோக்கம் வாழ்க்கையில் வார்த்தைகள் சேமிக்க ஒரு தரவு கட்டமைப்பு
ஒரு-L-i-c-e அல்லது B-o-ப போல.
மற்றும் வழியில் இதில் மிகவும் முன்னும் பின்னும் இந்த தரவு கடைகள் ஆலிஸ் மற்றும் பாப் மற்றும் சார்லி மற்றும் அனிதா மற்றும்
அது, ஒரு trie அலைஸ் இன் சேமிக்க அதன்படி ஒரு வரிசை பயன்படுத்துகிறது
நாம், ஒரு வரிசை போல் வேர் கணு துவங்க
அது சுருக்கெழுத்து குறிமுறை எழுதப்பட்ட.
என்று எந்த பெயர்கள் இருந்தன ஏனெனில் ஆசிரியர் abcdefg தவிர்க்கப்பட்டன.
அவர்கள் தான் எம் மற்றும் பி மற்றும் டி காட்டியது, ஆனால் இந்த வழக்கில்,
அது இங்கே சில பெயர்களை விட்டு ஆலிஸ் மற்றும் பாப் மற்றும் சார்லி இருந்து நகர்த்த வேண்டும்.
மேக்ஸ்வெல் இந்த படத்தில் உண்மையில்.
எனவே எப்படி ஆசிரியர் அங்காடி செய்தது, M-a-x-W-e-l-l?
அவர் வேர் கணு தொடங்கினார், மற்றும் சென்றார் [M], எனவே சுமார் 13, வரிசையில் 13 வது இடம்.
பின்னர் அங்கு இருந்து, ஒரு சுட்டிக்காட்டி இருக்கிறது.
மற்றொரு வரிசைக்கு முக்கிய ஒரு சுட்டிக்காட்டி.
அங்கு இருந்து ஆசிரியர், மேல் இடது அங்கு சித்தரிக்கப்பட்ட, இடம் ஒரு நேரத்தில் அந்த அணி மீது குறியிடப்படுவதாயினும்
பின்னர் அவர், மற்றொரு வரிசை என்று சுட்டிக்காட்டி தொடர்ந்து
மற்றும் இடம் எக்ஸ் நேரத்தில் சுட்டிக்காட்டி சென்றார்
பின்னர் அதனால் இனிமேல் அடுத்த வரிசையில் இடம் W, மின், எல், எல், மற்றும்,
இறுதியாக, அது உண்மையில் இந்த படத்தை வைக்க முயற்சி செய்வோம்.
குறியீடு போன்ற ஒரு முனை ஆனால் என்ன செய்வது?
ஒரு trie ஒரு முனை மேலும் முனைகளில் சுட்டிகளையும் ஒரு வரிசை உள்ளது.
ஆனால் குறைந்த பட்சம் இந்த நடைமுறைப்படுத்துவதில், பூலியன் மதிப்பை சில வகையான இருக்கும் இருக்கிறது.
நான் அதை is_word அழைக்க நடக்கும். ஏன்?
நீங்கள் மேக்ஸ்வெல் சேர்த்த போது, நீங்கள் சேர்த்த ஏனெனில்
இந்த தரவு அமைப்பிற்கு எதையும்.
நீங்கள் எக்ஸ் எழுத போவதில்லை எம் எழுதி
நீங்கள் செய்கிறீர்கள் அனைத்து சுட்டிகளையும் தொடர்ந்து இருக்கிறது.
பின்னர், M, ஒரு பிரதிபலிக்கிறது என்று சுட்டிக்காட்டி, பிரதிபலிக்கிறது என்று சுட்டிக்காட்டி
பின்னர் எக்ஸ், W, மின், எல், எல், பிரதிபலிக்கிறது என்று சுட்டிக்காட்டி
ஆனால் என்ன இறுதியில் செய்ய வேண்டும் என்பதை, செல்ல வகை, நான் இந்த இடத்தை அடைந்தது.
தரவு கட்டமைப்பு இங்கு முடிவடைகிறது என்று ஒரு வார்த்தை இருந்தது.
>> அதனால் என்ன ஒரு trie உண்மையில் நிரப்பப்பட்ட மற்றும் ஆசிரியர் பிரதிநிதித்துவம் தேர்வு
சிறிய முக்கோணங்கள் இந்த terminuses.
உண்மை இந்த தான் உண்மையில் இந்த முக்கோண இங்கே என்று பொருள், இந்த பூலியன் மதிப்பை
நீங்கள் மரத்தில் பின்னோக்கி சென்றால், பொருள்
என்று மேக்ஸ்வெல் இந்த உள்ளது என்ற வார்த்தைக்கு என்ன அர்த்தம்.
உதாரணமாக ஆனால் வார்த்தை foo,,
, மரம் இல்லை நான் மேலே இங்கு வேர் கணு மணிக்கு ஆரம்பித்தால், ஏனெனில்,
இல்லை f சுட்டிக்காட்டி, இல்லை ஓ சுட்டிக்காட்டி, இல்லை ஓ சுட்டிக்காட்டி இருக்கிறது. Foo இந்த அகராதியில் ஒரு பெயர் அல்ல.
ஆனால் இதற்கு மாறாக, டர்னிங், T-U-R-i-n-கிராம். மீண்டும், நான் t அல்லது நல்ல அல்லது r அல்லது நான் அல்லது n அல்லது கிராம் சேமிக்க முடியவில்லை.
ஆனால் நான் இங்கு இந்த முனை உண்மையான வழியில் ஒரு மதிப்பு இந்த தரவு கட்டமைப்பில் கடை இல்லை - மரத்தில்
உண்மை is_word இந்த பூலியன் மதிப்பை அமைக்க.
எனவே ஒரு trie, இந்த சுவாரசியமான மெட்டா அமைப்பு வகை
நீங்கள் உண்மையில் அகராதியில் இந்த வகையான வார்த்தைகளை தங்களை சேமித்து எங்கே.
தெளிவாக இருக்க வேண்டும், நீங்கள் ஆம் அல்லது இல்லை சேமிக்க நீங்கள், இங்கே முடியும் என்று ஒரு வார்த்தை உள்ளது.
>> இப்போது உட்குறிப்பு என்ன?
நீங்கள் நினைவகத்தில் சேமிக்க முயற்சிக்கும் ஒரு அகராதியில் 150,000 வார்த்தைகள் இருந்தால்
ஒரு இணைக்கப்பட்ட பட்டியலில் போல பயன்படுத்தி,
உங்கள் இணைக்கப்பட்ட பட்டியலில் 150,000 முனைகளில் நடக்க போகிறது.
மற்றும் அகர வரிசைப்படி அந்த வார்த்தைகள் ஒரு கண்டறியும் ஓ (n) நேரம் ஆகலாம்.
நேரியல் நேரம். ஆனால் ஒரு trie இங்கு வழக்கில்,
ஒரு வார்த்தை கண்டறியும் இயங்கும் நேரம் என்ன?
அதை இங்கே அழகு மாறிவிடும் என்று நீங்கள் ஏற்கனவே இந்த அகராதியில் 149.999 வார்த்தைகள், இல்லை என்றால்
இந்த தரவு கட்டமைப்பு செயல்படுத்தப்படும்,
அந்த வகையில், ஆலிஸ் போன்ற, ஆலிஸ் ஒரு நபரை கண்டுபிடிக்க அல்லது செருக அது எவ்வளவு நேரம் ஆகும்?
சரி, அதை பின் கதாபாத்திரத்தை ஒருவேளை 6 வழிமுறைகளை, 5 தான்.
ஏனெனில் அமைப்பு மற்ற பெயர்கள் presense
ஆலிஸ் சேர்க்கைக்கு வழியில் இல்லை.
மேலும், ஆலிஸ் கண்டுபிடிப்பதில் இந்த அகராதியில் 150,000 வார்த்தைகள் உள்ளன முறை
, அனைத்து ஆலிஸ் கண்டறியும் உங்கள் வழியில் இல்லை
ஆலிஸ் என்பதால். . . . . இங்கே, ஏனெனில் நான் ஒரு பூலியன் மதிப்பை காணலாம்.
எந்த பூலியன் உண்மை, பின் ஆலிஸ் இருந்தால் வார்த்தைகள் இந்த தரவு கட்டமைப்பு இல்லை.
வேறுவிதமாக கூறினால், இந்த புதிய முறையில் விஷயங்களை விஷயங்களை கண்டுபிடித்து சேர்க்க இயங்கும் நேரம்
trie தரவு அமைப்பு ஓ என்று - அதை n இல்லை.
150,000 மக்கள் presense ஆலிஸ் பாதிப்பு இல்லை, ஏனெனில், அது போல.
அது கே ஆங்கிலத்தில் ஒரு வார்த்தை அதிகபட்ச நீளம் எங்கே, k, அழைப்பு எனவே நாம்
இது பொதுவாக எந்த 20-ஏதாவது எழுத்துக்களை விட வேண்டும்.
எனவே, k ஒரு நிலையாக இருக்கும். பரிசுத்த கிரெயில் நாம் இப்போது இல்லை போல் தெரிகிறது
செருகி ஒரு trie, மாறா நேரம் என்று நீக்கியதை பெற, ஐ க்கு உள்ளது.
ஏனெனில் ஏற்கனவே அமைப்பில் விஷயங்களை எண்ணிக்கை,
இது கூட உடல் அங்கு இல்லை. மீண்டும், அவர்கள் வெறும் ஆஃப் சோதிக்க வகையான நீங்கள், ஆம் அல்லது இல்லை,
அதன் எதிர்கால இயங்கும் நேரம் இல்லை தாக்கம் உள்ளது.
>> ஆனால் ஒரு கேட்ச் இருக்கும் இருக்கிறது, இல்லையென்றால் நாம் எவ்வளவு நேரம் வீணாகியது
இந்த மற்ற தரவு கட்டமைப்புகள் மட்டும் இறுதியாக ஆச்சரியமாக இருக்கிறது என்று இரகசிய ஒரு பெற.
அதனால் என்ன விலை நாம் இங்கே இந்த பெருமை அடைய கொடுக்கிறீர்கள்? விண்வெளி.
இந்த விஷயம் பெரும் ஆகும். மற்றும் காரணம் என்று நூலாசிரியர்
இங்கே அது இப்போது இல்லை, கவனிக்க வரிசைகள் போன்ற இந்த விஷயங்களை எல்லாம்,
அவர் மரத்தின் ஓய்வு, trie மீதமுள்ள, வரைய இல்லை
அவர்கள் வெறும் கதை தொடர்புடைய இல்லை என்பதால்.
ஆனால் இந்த முனைகளில் அனைத்து பரந்த சூப்பர், மற்றும் மரம் ஒவ்வொரு கணு எடுத்து
26 அல்லது உண்மையில், இந்த விஷயத்தில் நான் மேற்கோளைச் இடைவெளி உட்பட ஏனெனில் 27 எழுத்துகள் இருக்க முடியும்
அதனால் நாம் apostrophized வார்த்தைகள் உண்டு.
இந்த வழக்கில், இந்த பரந்த வரிசைகள் இருக்கும். அவர்கள் picutured கூட,
இந்த ரேம் ஒரு பாரிய அளவு எடுத்து.
இதில், நவீன வன்பொருள் especilly, நன்றாக இருக்கும்
ஆனால் அந்த பரிமாற்றம் தான். நாம் இன்னும் வெளி செலவு குறைவான நேரம் கிடைக்கும்.
எனவே இந்த அனைத்து போகிறது?
நன்றாக, செய்வோம் - இங்கே பார்க்கலாம்.
இங்கே இந்த பையன் ஒரு ஜம்ப் செய்வோம்.
>> அதை நம்ப அல்லது, சி இப்போது சில நேரம் உள்ளது என வேடிக்கையாக,
நாம் நவீன விஷயங்களை மாற்றம் நேரம் அங்கு செமஸ்டர் உள்ள புள்ளி அடையும்.
அதிக அளவில் விஷயங்கள். மேலும் வாரங்கள் அடுத்த இரண்டு என்றாலும்
நாம் இன்னும் சுட்டிகள் மற்றும் நினைவக மேலாண்மை உலகில் நம்மை மூழ்கடித்து தொடர்ந்து நான்
நாம் எழுப்ப முடியும் என்று ஆறுதல் பெற,
இறுதியில் விளையாட்டு இந்த மொழி, முரண்பாடாக, இல்லை அறிமுகப்படுத்த இறுதியில் உள்ளது.
நாம் HTML பற்றி 10 நிமிடங்கள் போல், செலவிட வேண்டும்.
HTML என்பது ஒரு மொழி ஆகும், என்ன ஒரு மொழி ஆகும்
'இந்த தைரியமான செய்ய' என்று அந்த திறந்த அடைப்புக்குறிக்குள் மற்றும் மூடிய அடைப்புக்குறிக்குள் இந்த தொடர்
'இந்த மையமாக வைத்து' இந்த சாய்வு செய்ய '.'
இது அனைத்து என்பதை அறிவார்ந்த சுவாரசியமாக இல்லை, ஆனால் அது பயனுள்ள சூப்பர் தான்.
அது நிச்சயமாக இந்த நாட்களில் எங்கும் நிறைந்திருக்கிற தான்.
ஆனால் என்ன HTML உலக பற்றி சக்தி வாய்ந்தது, மற்றும் வலை நிரலாக்க பொதுவாக,
டைனமிக் விஷயங்கள் கட்டி; PHP அல்லது Python அல்லது ரூபி அல்லது ஜாவா அல்லது சி # போன்ற மொழிகளில் குறியீடு எழுதும்.
உண்மையில், அதை தேர்வு உங்கள் மொழி, மற்றும் மாறும் HTML உருவாக்கும்.
மாறும் CSS என்று ஒன்று உருவாக்குவது.
விழுத்தொடர் பாணி தாள்கள், அழகியல் பற்றி மேலும் இது.
அதனால் கூட, இன்று, நான், நன்கு Google.com போன்ற சில இணைய சென்றால்
மற்றும் நான், ஒருவேளை நீங்கள் முன்பு செய்த எந்த டெவலப்பர், பார்வை மூலம், பார்க்க சென்று
ஆனால் மூல பார்வையிட செல்லும், இந்த பொருட்கள் பெரும்பாலும் அழகாக புரிந்து தெரிகிறது.
ஆனால் இந்த Google.com செயல்படுத்தும் அடிப்படை குறியீடு உள்ளது.
முன் இறுதியில். உண்மையில் இந்த பஞ்சுபோன்ற அழகியல் பொருள்.
இந்த இங்கே CSS உள்ளது. நான் கீழே ஸ்க்ரோலிங் வைத்து நாம் சில வண்ண குறியீட்டு பொருள் கிடைக்கும்.
இந்த HTML ஆகும். , கூகிள் குறியீடு ஒரு குழப்பம் போல், ஆனால் நான் உண்மையில் வேறு சாளரத்தை திறக்க வேண்டும்
இந்த சில கட்டமைப்பு பார்க்க முடியும்.
நான் இந்த திறந்து என்றால், இங்கே கவனிக்க, அது இன்னும் சிறிது படிக்க வேண்டும்.
நாம் முன்னரே பார்க்க போகிறோம், [வார்த்தை] டேக் இல்லை,
HTML, தலை, உடல், கிராம, திரைக்கதை, உரை பகுதியில், span, மையமாக, DIV.
இந்த மேலும், முதல் பார்வையில் ரகசிய காணப்படும் வகை
ஆனால் இந்த குழப்பம் அனைத்து, சில முறைகள், மற்றும் மீண்டும் மீண்டும் முறைகள் பின்வருமாறு
ஒருமுறை நாங்கள் அடிப்படைகளை இறங்கி, எனவே நீங்கள் இந்த குறியீடு எழுத முடியும்
பின்னர் இங்கு என்று மற்றொரு மொழி, பயன்படுத்தி இந்த குறியீடு கையாள.
மற்றும் இங்கு ஒரு உலாவி உள்ளே இயங்கும் ஒரு மொழி
நாம் கூகிள் வரைபடங்கள் பயன்படுத்தும் போக்கை கடை கருவியாக ஹார்வர்ட் படிப்புகள், பயன்படுத்த இன்று
நீங்கள் சுறுசுறுப்பு ஒரு மொத்தமாக கொடுக்க, பேஸ்புக், உடனடி நிலை மேம்படுத்தல்கள் காட்ட நீங்கள் கொடுக்கும்
வேலை உடனடியாக நீங்கள் ட்வீட் காட்ட இது பயன்படுகிறது.
இந்த அனைத்து நாம் உள்ளே மூழ்கடித்து கொள்வாய்
ஆனால் அங்கு பெற, நாம் இணைய பற்றி ஒரு சிறிய ஒன்று புரிந்து கொள்ள வேண்டும்.
இங்கே இந்த கிளி தான் நீண்ட ஒரு நிமிடம் தான், இப்போது இந்த உண்மையில், இது கருதி நாம்,
இண்டர்நெட் வந்து பற்றி என்ன ஒரு டீஸர் பணிபுரிகிறார் எப்படி. நான் "நிகர என்ற வாரியர்ஸ்." கொடுக்க
>> [♫ ஸ்லோ கோரஸ் இசை ♫]
[ஆண் கதை] அவர் ஒரு செய்தி வந்தது.
ஒரு நெறிமுறை அவரது சொந்த கொண்டு.
[♫ விரைவான மின்னணு இசை ♫]
அவர், திசைவிகள் அக்கறையில்லாமலும், குளிர் ஃபயர்வால்கள் ஒரு உலக வந்தது
மரண விட மோசமாக ஆபத்துக்களை.
அவர் வேகமாக தான். அவர் வலுவான தான். அவர் TCP / IP, மற்றும் அவர் உங்கள் முகவரி இருக்கிறது.
நிகர போர்வீரர்கள்.
[Malan] அடுத்த வாரம், பின்னர். இண்டர்நெட். வலை நிரலாக்க. இந்த CS50 உள்ளது.
[CS50.TV]