[संगीत खेल]
अध्यक्ष 1: सब ठीक है.
हर कोई वापस अनुभाग में आपका स्वागत है.
मैं आप सभी को सफलतापूर्वक कर रहे हैं आशा अपने प्रश्नोत्तरी से बरामद
पिछले सप्ताह से.
मैं इसे समय पर थोड़ा सा पागल है पता है.
आप कर रहे हैं, अगर मैं पहले कह रहा था मानक विचलन के भीतर,
वास्तव में, विशेष रूप से, इसके बारे में चिंता मत करो एक कम आराम अनुभाग के लिए.
यही कारण है कि आप जहां होना चाहिए के बारे में है.
>> आप तो कमाल, महान किया है.
आप के लिए यश.
और अगर आपको लगता है कि आप की जरूरत है थोड़ा और अधिक मदद, कृपया
तक पहुँचने के लिए स्वतंत्र महसूस TFS में से किसी को बाहर.
हम सब यहाँ मदद करने के लिए कर रहे हैं.
>> हम सिखाने यही कारण है कि.
मैं तुम्हारे लिए यहाँ हर सोमवार हूँ यही कारण है कि गुरुवार को लोगों और कार्यालय में घंटे.
इसलिए मुझे यह बताने के लिए स्वतंत्र महसूस कृपया आप कुछ के बारे में चिंतित हैं
या प्रश्नोत्तरी पर अगर कुछ भी नहीं है कि क्या तुम सच में पता करने के लिए करना चाहते हैं.
>> तो आज के लिए एजेंडा है सभी डेटा संरचनाओं के बारे में.
इनमें से कुछ अभी सिर्फ होने जा रहे हैं आप इन के साथ परिचित पाने के लिए.
आप कभी लागू नहीं हो सकता इस वर्ग में उन्हें.
आप करेंगे उनमें से कुछ, अपने वर्तनीकार pset के लिए की तरह.
>> आप अपनी पसंद होगा हैश तालिकाओं और कोशिश करता है के बीच.
तो हम निश्चित रूप से उन पर जा रहा हूँ.
यह एक तरह से निश्चित रूप से अधिक होने जा रहा है एक उच्च स्तरीय खंड की आज, हालांकि,
क्योंकि उन्हें वहाँ की एक बहुत हैं, और अगर हम कार्यान्वयन के विवरण में चला गया
इन सब पर, हम नहीं होगा यहां तक ​​कि लिंक सूचियों के माध्यम से प्राप्त
और शायद हैश तालिकाओं का एक छोटा सा.
>> तो मेरे साथ सहन.
हम क्या कर रही हो नहीं जा रहे हैं के रूप में ज्यादा इस बार कोडिंग.
आप इसके बारे में किसी भी सवाल है, तो या आप इसे लागू देखना चाहते हैं
या खुद के लिए कोशिश, मैं निश्चित रूप से की सिफारिश
, study.cs50.net करने जा रहा है जो इन सब का उदाहरण है.
यह मेरी PowerPoints होगा नोटों के साथ कि हम
कुछ प्रोग्रामिंग के रूप में भी इस्तेमाल करते हैं व्यायाम, विशेष रूप से चीजों के लिए
लिंक सूचियों और द्विआधारी की तरह पेड़ों के ढेर और cues.
तो थोड़ा अधिक उच्च स्तर, जो आप लोगों के लिए अच्छा हो सकता है.
>> उस के साथ तो, हम शुरू हो जाएगी.
और यह भी, yes-- क्विज़.
मैं में हैं जो आप में से अधिकांश लगता है मेरे अनुभाग, आपके क्विज़ है
लेकिन किसी को या किसी कारण में आता है आप नहीं है, वे यहीं सामने हो.
>> तो सूचियों जुड़े.
चला जाता है की मैं इस तरह पता अपने प्रश्नोत्तरी से पहले वापस करने के लिए.
यही कारण है कि पहले सप्ताह था हम इस बारे में सीखा है.
लेकिन इस मामले में, हम सिर्फ हूँ गहराई में एक छोटा सा और जाना.
>> तो क्यों न हम एक चुन सकते हैं एक सरणी से अधिक सूची जुड़ा हुआ?
उन्हें क्या अलग है?
हाँ?
>> दर्शक: आप का विस्तार कर सकते हैं एक लिंक एक सरणी के निश्चित आकार बनाम सूची.
अध्यक्ष 1: ठीक है.
एक सरणी एक जबकि आकार तय किया गया है लिंक सूची एक चर आकार की है.
हम नहीं जानते कि अगर तो कैसे जितना हम संग्रहीत करना चाहते हैं,
एक लिंक सूची हमें एक महान देता है तरीके से करना है कि हम सिर्फ यह कर सकते हैं क्योंकि
अन्य नोड पर जोड़ सकते हैं और पर जोड़ अन्य नोड और एक अन्य नोड पर जोड़ें.
लेकिन क्या एक व्यापार बंद हो सकता है?
किसी को व्यापार बंद याद करता है सरणियों और लिंक सूचियों के बीच?
Mmhmm?
>> दर्शक: आप के लिए है सभी तरह के माध्यम से जाना
लिंक की गई सूची के माध्यम से एक सूची में एक तत्व हैं.
एक सरणी में, आप कर सकते हैं सिर्फ एक तत्व हैं.
>> अध्यक्ष 1: ठीक है.
तो arrays-- साथ
>> दर्शक: [अश्राव्य].
>> अध्यक्ष 1: सरणियों के साथ, हम क्या रैंडम एक्सेस कहा जाता है.
हम चाहते हैं कि क्या इसका मतलब है कि एक सूची का कभी पांचवें बिंदु
या के पांचवें बिंदु हमारे सरणी, हम सिर्फ यह हड़पने कर सकते हैं.
यह एक लिंक सूची है, तो हमारे पास है ठीक है, के माध्यम से पुनरावृति करने के लिए?
इसलिए एक तत्व में पहुँचने एक सरणी, निरंतर समय है
यह होगा एक लिंक की गई सूची के साथ, जबकि सबसे अधिक संभावना है, क्योंकि शायद रैखिक समय हो
हमारे तत्व अंत में सभी तरह है.
हम सब कुछ के माध्यम से खोज करने के लिए.
इन सभी डेटा के साथ तो हम जा रहे हैं संरचनाओं
पर थोड़ा और अधिक समय खर्च हो, pluses और नकारात्मक क्या कर रहे हैं.
हम चाहते हो सकता है जब एक दूसरे के ऊपर का उपयोग करें?
और उस की तरह है बड़ा बात दूर ले जाना.
>> तो हम यहाँ है एक नोड की परिभाषा.
यह एक तत्व में की तरह है हमारे लिंक सूची, है ना?
तो हम सभी परिचित हैं हमारे typedef structs साथ,
हम पिछली बार की समीक्षा में खत्म हो गया था जो.
बस बनाने यह मूल रूप से किया गया था हम इस्तेमाल कर सकते हैं कि एक और डेटा प्रकार.
>> और इस मामले में, यह कुछ नोड है उस में कुछ पूर्णांक का आयोजन करेगा.
और फिर दूसरा भाग यहाँ क्या हो रहा है?
कोई है?
>> दर्शक: [अश्राव्य].
>> अध्यक्ष 1: हाँ.
यह अगले नोड के लिए एक संकेत है.
तो यह वास्तव में यहाँ होना चाहिए.
इस प्रकार का एक सूचक है अगली बात के लिए नोड.
और कि क्या वे हमारे नोड शामिल हैं.
कूल.
>> खोज के साथ सब ठीक है, तो, हम थे अगर तुम सिर्फ हाथ से पहले कह
के माध्यम से खोज करने के लिए जा रहा है, आप वास्तव में पुनरावृति करने के लिए है
आपके लिंक की गई सूची के माध्यम से.
हम संख्या के लिए देख रहे हैं तो 9, हम अपने सिर पर शुरू होगा
और कि शुरुआत में हमें बताते हैं हमारे लिंक की गई सूची की, है ना?
और हम ठीक है, इस करता है, का कहना है नोड संख्या 9 होते हैं?
कोई?
>> सब ठीक है, अगले एक के पास जाओ.
यह पालन करें.
यह संख्या 9 होते हैं?
नहीं.
अगले एक का पालन करें.
>> इसलिए हम वास्तव में पुनरावृति करने के लिए है हमारे लिंक की गई सूची के माध्यम से.
हम सिर्फ 9 जहां सीधे नहीं जा सकते.
और तुम लोग वास्तव में करना चाहते हैं वहाँ कुछ छद्म कोड ऊपर देखते हैं.
हम यहां कुछ खोज समारोह कि उस में ले करता है क्या in-- लेता है?
आपको क्या लगता है?
तो आसान है.
ये क्या है?
दर्शक: [अश्राव्य].
अध्यक्ष 1: हम देख रहे हैं संख्या.
है ना?
और क्या इस के अनुरूप होगा?
यह करने के लिए एक सूचक है?
>> दर्शकों: एक नोड.
>> अध्यक्ष 1: सूची में एक नोड हम सही, पर देख रहे हैं कि?
इसलिए हम कुछ नोड्स यहां सूचक हैं.
यह जा रहा है कि एक बिंदु है वास्तव में हमारी सूची के माध्यम से पुनरावृति.
हम सूची में बराबर सेट सिर्फ है कि क्योंकि
यह करने के लिए बराबर की स्थापना हमारे लिंक की गई सूची में से शुरू करते हैं.
>> और यह नल नहीं है, जबकि हम अभी भी हमारी सूची में बातें है
कि नोड है देखने के लिए जाँच हम देख रहे हैं संख्या.
सच लौटें.
अन्यथा, सही, यह अद्यतन?
>> यह रिक्त है, तो हम बाहर निकलने हमारे जबकि पाश और झूठी वापसी
इसका मतलब है कि क्योंकि हम यह पता नहीं चला है.
हर कोई यह कैसे काम करता मिलता है?
ठीक.
>> आप, प्रविष्टि के साथ तो तीन अलग अलग तरीके हैं.
आप आप संलग्न कर सकते हैं, पहले जोड़ें कर सकते हैं मिश्रित में और आप सम्मिलित कर सकते हैं.
इस मामले में, हम कर रहे हैं एक प्रीपेंड क्या करने जा रहा.
किसी को भी कैसे उन जानती है तीन मामलों में अलग हो सकता है?
>> तो पहले जोड़ें डाल का मतलब है कि यह अपनी सूची के मोर्चे पर.
तो मतलब यह होगा कि कोई फर्क नहीं पड़ता कि अपने नोड, कोई बात नहीं है क्या
मूल्य क्या है, आप जा रहे हैं ठीक है, सामने यहीं रखा करने के लिए?
यह पहली बार होने जा रहा है अपनी सूची में तत्व.
>> आप इसे संलग्न हैं, तो यह जा रहा है अपनी सूची के वापस जाने के लिए.
और मिश्रित आप कर रहे हैं इसका मतलब में डालने जगह में वास्तव में डाला जा रहा
यह रहता है जहां आपके लिंक की गई सूची के अनुसार छाँटे गए.
फिर, आप कैसे उपयोग उन और जब आप का उपयोग
उन्हें अपने मामले के आधार पर अलग अलग होंगे.
यह करने की जरूरत नहीं है, तो हल किया जाना, पहले जोड़ें आदत
क्या ज्यादातर लोगों के होने की तुम नहीं करते क्योंकि उपयोग
पूरी सूची के माध्यम से जाना है ठीक है, उस पर जोड़ने के लिए अंत खोजने के लिए?
तुम सिर्फ सही में यह छड़ी कर सकते हैं.
>> इसलिए हम एक के माध्यम से जाना जाएगा प्रविष्टि 1 अभी.
मैं जा रहा हूँ तो यह है कि एक बात अत्यधिक इस pset पर की सिफारिश
हमेशा की तरह, चीजें बाहर आकर्षित करने के लिए है.
आप अद्यतन कि यह बहुत महत्वपूर्ण है सही क्रम में अपने संकेत
आप उन्हें अद्यतन क्योंकि अगर थोड़ा आदेश से बाहर है,
आप को समाप्त करने के लिए जा रहे हैं अपनी सूची के कुछ हिस्सों को खोने.
>> तो उदाहरण के लिए, इस मामले में, हम कर रहे हैं 1 के लिए सिर्फ बात करने के लिए सिर कह रहा.
हम सिर्फ इतना है कि करते हैं इस 1 बचत के बिना,
हम कोई पता नहीं है क्या 1 अब करने के लिए बात करनी चाहिए
हम खो दिया है क्योंकि क्या सिर की ओर इशारा किया.
तो एक बात याद करने के लिए जब आप एक प्रीपेंड कर रहे हैं
क्या बचा है पहली करने के लिए सिर अंक,
तो यह पुन: असाइन करें, और उसके बाद अद्यतन क्या आपके नए नोड के लिए कहना चाहिए.
इस मामले में, यह ऐसा करने का एक तरीका है.
>> हम इसे इस तरह से किया था तो अगर जहां हम सिर्फ सिर reassigned
हम मूल रूप से हमारे खोना पूरी सूची है, है ना?
यह करने के लिए एक तरह से करने के लिए 1 बिंदु है अगले, और फिर 1 के लिए सिर बिंदु है.
या फिर आप की तरह की तरह कर सकते हैं मैं के बारे में बात की थी, जो अस्थायी भंडारण,.
>> लेकिन तुम्हारी फिर नियत सही क्रम में संकेत
बहुत, बहुत होने जा रहा है इस pset के लिए महत्वपूर्ण.
अन्यथा, आप एक हैश लिए जा रहे हैं तालिका या सिर्फ होने जा रहा है कि एक कोशिश
शब्द का ही हिस्सा है कि आप you're-- Mmhmm ​​तो चाहते हैं और?
दर्शक: अस्थायी क्या था भंडारण बात आप के बारे में बात कर रहे थे?
अध्यक्ष 1: अस्थायी भंडारण.
तो बुनियादी तौर पर एक और आप यह कर सकते हैं रास्ता
जैसे, कुछ के सिर की दुकान है यह अस्थायी चर की दुकान.
1 को आवंटित और तो बात करने के लिए 1 अद्यतन
जो कुछ भी करने के लिए सिर को इंगित करने के लिए प्रयोग किया जाता है.
इस तरह से जाहिर है अधिक सुरुचिपूर्ण आप क्योंकि
एक अस्थायी मूल्य की जरूरत नहीं है, लेकिन बस यह करने के लिए एक और रास्ता पेशकश.
और हम वास्तव में क्या करना है इस के लिए कुछ कोड.
लिंक की गई सूची के लिए तो, हम वास्तव में कुछ कोड है.
तो इस prepending है, यहां डालें.
तो यह सिर में प्रवेश करती है.
>> तो पहली बात, आप की जरूरत है जाहिर है, अपने नए नोड बनाने,
और बातिल के लिए जाँच करें.
हमेशा अच्छा.
और फिर आप मूल्य प्रदान करने की आवश्यकता है.
जब भी आप, आप एक नया नोड बनाने यह अगले की ओर इशारा कर रहा है पता नहीं क्या,
तो आप अशक्त करने के लिए इसे प्रारंभ करने में चाहते हैं.
यह कुछ ओर इशारा करते हुए अंत करता है वरना, यह फिर नियत और यह ठीक है हो जाता है.
यह पहली बात है सूची में, यह जरूरत
क्योंकि अशक्त करने के लिए बात करने के लिए उस सूची के अंत में है.
>> तो फिर यह सम्मिलित करने के लिए, हम हम यहाँ देखें हमारे नोड के अगले मूल्य बताए हैं
सिर जो कुछ भी हो, जो हम यहाँ क्या किया है.
यही कारण है कि हम अभी क्या किया है.
और फिर हम बात करने के लिए सिर बताए रहे हमारे नए नोड के लिए, याद है, क्योंकि
नई, एक नोड के लिए कुछ सूचक है और कहा कि वास्तव में सिर में है.
यह ठीक है कि हम क्यों है इस तीर उपसाधन है.
कूल?
Mmhmm?
>> दर्शक: हम करने के लिए है पहले अशक्त करने के लिए नए अगले इनिशियलाइज़,
या हम सिर्फ सिर को को प्रारंभ कर सकते हैं?
>> अध्यक्ष 1: अगले नई शुरू करने के लिए रिक्त होने की जरूरत
आप नहीं जानते क्योंकि जहां यह होने जा रहा है.
इसके अलावा, इस तरह की है सिर्फ एक प्रतिमान पसंद है.
आप यह शून्य के बराबर सिर्फ बनाने के लिए सेट सुनिश्चित करें कि सभी अपने ठिकानों को कवर कर रहे हैं कि
तुम इतना है कि किसी भी reassignment पहले आप हमेशा यह होगा कि गारंटी हो
एक विशिष्ट मूल्य की ओर इशारा किया एक कचरा मूल्य की तरह बनाम.
हाँ, हम आवंटित, क्योंकि स्वचालित रूप से अगले नया,
लेकिन यह सिर्फ एक तरह अधिक है अच्छा अभ्यास इसे प्रारंभ करने में
उस रास्ते में और फिर पुन: असाइन.
>> ठीक है, तो दोगुना अब सूचियों जुड़े.
हम क्या सोचते हैं?
क्या साथ अलग है दोगुना सूचियों जुड़ा हुआ?
>> इसलिए हमारे लिंक सूचियों में, हम कर सकते हैं केवल सही, एक दिशा में कदम?
हम केवल अगले है.
हम केवल आगे जा सकते हैं.
>> एक दोगुना लिंक की गई सूची के साथ, हम भी पीछे की ओर ले जा सकते हैं.
इसलिए हम न केवल हम संग्रहीत करना चाहते हैं कि संख्या,
यह अगले करने के लिए अंक जहां हम हैं और हम अभी कहाँ से आया.
तो इस बात के लिए अनुमति देता है कुछ बेहतर चंक्रमण.
>> तो दोगुना जुड़े हुए नोड्स, बहुत समान, है ना?
फर्क सिर्फ इतना है कि हम अब है एक अगले और पिछले एक है.
यह फर्क सिर्फ इतना है.
>> हम थे तो पहले जोड़ें या append-- हम करने के लिए here-- इस के लिए कोई कोड नहीं है
लेकिन आप कोशिश कर रहे थे और महत्वपूर्ण बात यह डालें
तुम बनाने की जरूरत है सुनिश्चित करें कि आप बताए रहे
दोनों अपने पिछले और अपने सही ढंग से अगले सूचक.
तो इस मामले में, आप होगा केवल अगले प्रारंभ नहीं,
आप पिछले इनिशियलाइज़.
हम सूची के सिर पर हैं, तो हम सिर बराबर नया बनाना होगा न केवल,
लेकिन हमारी नई पिछले चाहिए सही, सिर को इंगित?
>> यही फर्क सिर्फ इतना है.
और आप के साथ और अधिक अभ्यास चाहते हैं डालने के साथ जुड़े हुए सूचियों के साथ इन,
डालने के साथ, हटाने के साथ एक मिश्रित सूची में,
study.cs50.net बाहर की जाँच करें.
महान अभ्यास का एक गुच्छा है.
मैं अत्यधिक उन्हें सलाह देते हैं.
मुझे लगता है हम उन के माध्यम से जाने के लिए समय था लेकिन डेटा संरचनाओं का एक बहुत कुछ है
के माध्यम से प्राप्त करने के लिए.
>> ठीक है, हैश तालिकाओं तो.
यह शायद सबसे अधिक है अपने pset के लिए उपयोगी बिट
यहाँ आप हो जा रहे हैं क्योंकि इन में से एक, या एक कोशिश को लागू करने.
मैं वास्तव में हैश तालिकाओं पसंद है.
वे बहुत अच्छा कर रहे हैं.
>> तो बुनियादी तौर पर क्या होता है एक हैश तालिका है
हम वास्तव में तेजी की जरूरत है जब है प्रविष्टि, विलोपन, और देखने का.
उन हम कर रहे हैं कि बातें कर रहे हैं एक हैश तालिका में प्राथमिकता.
वे बहुत बड़ा प्राप्त कर सकते हैं लेकिन हम कोशिश करता है के साथ देखेंगे के रूप में,
बहुत बड़ा कर रहे हैं कि बातें कर रहे हैं.
>> लेकिन मूल रूप से, सभी एक हैश तालिका एक हैश समारोह है
कि प्रत्येक डालने के लिए जो बाल्टी आपको बताता है अपने डेटा की, में अपने तत्वों में से प्रत्येक.
एक आसान तरीका एक हैश तालिका के बारे में सोचना यह सिर्फ बातें की बाल्टी है कि है,
सही?
आप से बातें छंटाई कर रहे हैं तो जब उनके नाम के पहले अक्षर की तरह,
उस तरह का एक हैश तालिका की तरह है.
>> मैं समूह के लिए गए थे तो तुम लोग है के नाम से शुरू होता है जो कोई भी के समूहों में
यहाँ पर एक साथ, या जन्मदिन जो कोई भी है जनवरी, फरवरी, मार्च में है
जो भी हो, कि प्रभावी ढंग से है एक हैश तालिका बनाने.
यह सिर्फ बाल्टी पैदा कर रहा है कि आप में अपने तत्वों को सॉर्ट
आप उन्हें आसानी से मिल सकते हैं.
मैं चाहता हूँ कि जब इस तरह से तो तुम में से एक लगता है,
मैं खोज करने के लिए नहीं है अपने नामों में से प्रत्येक के माध्यम से.
मैं ओह, तरह हो सकता है, मुझे पता है कि डेनिएल का जन्मदिन in-- है
दर्शक: --April.
अध्यक्ष 1 अप्रैल.
इसलिए मैं अपने अप्रैल में देखो बाल्टी, और किसी भी भाग्य के साथ,
वह केवल एक ही वहाँ में हो जाएगा और मेरे समय, उस अर्थ में निरंतर था
मैं देखने के लिए है जबकि अगर लोगों की एक पूरी गुच्छा के माध्यम से,
यह बहुत लंबे समय तक ले जा रहा है.
तो हैश तालिकाओं वास्तव में सिर्फ बाल्टी हैं.
आसान तरीका उन्हें सोचने के लिए.
>> तो एक बहुत ही महत्वपूर्ण बात के बारे में एक हैश तालिका एक हैश समारोह है.
तो बातें मैं बस की तरह, के बारे में बात की थी अपने पहले नाम के पहले अक्षर
या अपने जन्मदिन महीने, इन विचार कर रहे हैं कि
वास्तव में एक हैश समारोह के लिए सहसंबंधी.
यह तय करने का सिर्फ एक रास्ता है जो आप ठीक कह रहे हैं तत्व में चला जाता बाल्टी?
तो इस pset के लिए, आप देख सकते हैं आप चाहते हैं कि किसी भी हैश समारोह बहुत ज्यादा.
>> अपने खुद के होने की जरूरत नहीं है.
कुछ वास्तव में अच्छा लोगों को बाहर कर रहे हैं पागल गणित के सभी प्रकार करते हैं कि.
और अगर आप अपने बनाना चाहते हैं सुपर फास्ट spellchecker,
मैं निश्चित रूप से होगा उन में से एक में देखो.
>> लेकिन वहाँ भी कर रहे हैं गणना की तरह साधारण लोगों,
शब्दों के योग की तरह प्रत्येक पत्र एक संख्या है.
राशि की गणना.
यही बाल्टी निर्धारित करता है.
उन्होंने यह भी आसान वाले हैं कि सिर्फ एक है यहां के सभी तरह हैं,
बी के सभी यहाँ है.
उन में से कोई एक.
>> असल में, यह बस जो आपको बताता है सरणी सूचकांक में जाना चाहिए अपने तत्व.
बस bucket-- निर्णय लेने यह सब एक हैश समारोह है.
तो यहाँ हम जो एक उदाहरण है स्ट्रिंग का सिर्फ पहला पत्र
कि मैं बस के बारे में बात कर रहा था.
>> तो तुम सिर्फ है कि कुछ हैश है अपने स्ट्रिंग शून्य से एक के पहले अक्षर,
आप कुछ दे देंगे जो 0 और 25 के बीच संख्या.
और क्या आप क्या करना चाहते है इस प्रतिनिधित्व करता है कि यह सुनिश्चित कर लें
अपने हैश का आकार table-- कितने बाल्टी कर रहे हैं.
इनमें से कई के साथ हैश काम करता है, वे कर रहे हैं
जा रहा है कि हो सकता है मानों लौट लिए दूर बकेट की संख्या से ऊपर होना
आप वास्तव में है कि अपने हैश तालिका में,
इसलिए तुम बनाने की जरूरत सुनिश्चित करें और उन द्वारा आधुनिक.
अन्यथा, यह कहने के लिए जा रहा है, ओह, यह बाल्टी 5000 में होना चाहिए
लेकिन आप केवल 30 है अपने हैश तालिका में बाल्टी.
और हां, हम सब यही जानते हैं कुछ पागल त्रुटियों में परिणाम के लिए जा रहा.
तो द्वारा आधुनिक बनाना अपने हैश तालिका का आकार.
कूल.
टकराव तो.
हर कोई अब तक अच्छा है?
Mmhmm?
>> दर्शक: क्यों यह होगा इतने बड़े पैमाने पर मूल्य वापसी?
>> अध्यक्ष 1: एल्गोरिथ्म पर निर्भर करता है अपने हैश समारोह का उपयोग करता है.
उनमें से कुछ भी करेंगे पागल गुणन.
और यह हो रही है सब के बारे में एक भी वितरण,
इसलिए वे वास्तव में कुछ करना कभी कभी पागल चीजें.
बस इतना ही.
कुछ और?
ठीक.
>> टकराव तो.
असल में, जैसा कि मैंने पहले कहा था, बेहतरीन परिदृश्य में,
मैं इस पर गौर किसी बाल्टी है एक बात के लिए जा रहा,
तो मैं सही, पर सब देखने की जरूरत नहीं है?
मैं या तो यह पता है वहाँ या यह है नहीं, और है कि हम वास्तव में चाहते क्या है.
लेकिन हम दसियों के हजारों की है अगर डेटा अंक और उस नंबर से भी कम
बाल्टी की, हमारे पास करने के लिए जा रहे हैं टकराव जहां अंततः कुछ
एक में खत्म करने के लिए किया जा रहा है पहले से ही एक तत्व है कि बाल्टी.
>> तो सवाल यह है क्या हम उस स्थिति में क्या करते हो?
हम क्या करते हैं?
हम पहले से ही वहाँ कुछ है?
हम सिर्फ इसे बाहर फेंक है?
>> नहीं.
हम उन दोनों को रखने के लिए है.
तो तरीका है कि हम आमतौर पर कि क्या करना है?
डेटा संरचना क्या है हम बस के बारे में बात की थी?
दर्शक: लिंक की गई सूची.
अध्यक्ष 1: एक लिंक सूची.
तो अब, बजाय इनमें से प्रत्येक की बाल्टी बस, एक तत्व वाले
इसके बारे में एक लिंक की गई सूची को शामिल करने जा रहा है इसे में hashed गया है कि तत्वों.
ठीक है, हर किसी तरह का विचार है कि प्राप्त करता है?
हम एक सरणी नहीं हो सकता था क्योंकि हम कितनी बातें पता नहीं है क्योंकि
वहाँ में होने जा रहे हैं.
एक लिंक सूची के लिए हमें की अनुमति देता है बस सही संख्या है कि
ठीक है, कि बाल्टी में hashed रहे हैं?
>> जांच कर रही है तो रैखिक मूल रूप से इस idea--
यह एक टकराव से निपटने के लिए एक ही रास्ता है.
आप क्या कर सकते हैं इस में, अगर है मामला, बेर 1 में hashed किया गया था
और हम पहले से ही है वहाँ कुछ है, तुम बस
जब तक नीचे जा रहा रखने आप एक खाली स्लॉट हैं.
यही कारण है कि इसे संभाल करने के लिए एक ही रास्ता है.
संभाल करने के लिए अन्य रास्ता इसके साथ है क्या हम बस
लिंक्ड called-- सूची श्रृंखलन कहा जाता है.
>> इसलिए इस विचार अगर काम करता है आपको लगता है कि आपके हैश तालिका
की तुलना में बहुत बड़ा है अपने डेटा सेट या आप अगर
कोशिश करते हैं और श्रृंखलन को कम करना चाहते हैं यह बिल्कुल जरूरी है जब तक.
तो एक बात रैखिक है जाहिर है इसका मतलब है की जांच
अपने हैश समारोह है कि के रूप में काफी उपयोगी नहीं है
आप उपयोग कर समाप्त करने के लिए जा रहे हैं क्योंकि अपने हैश समारोह, एक बात करने के लिए हो रही है,
आप करने के लिए नीचे की जांच रैखिक उपलब्ध है कि कुछ जगह.
लेकिन अब, ज़ाहिर है, कुछ भी , वहाँ समाप्त होता है कि बाकी
आप के लिए करने जा रहे हैं आगे भी नीचे खोज.
>> और वहाँ एक बहुत अधिक है खोज व्यय कि
एक तत्व inputting में चला जाता है अब अपने हैश तालिका में, सही?
और अब तुम जाओ और कोशिश करते हैं और पाते हैं जब बेर फिर, आप इसे हैश करने जा रहे हैं,
और यह कहने के लिए जा रहा है ओह, बाल्टी 1 में देखो,
और यह नहीं होने जा रहा है 1 में बाल्टी, तो आप कर रहे हैं
पार करने के लिए किया जा रहा इन में से बाकी के माध्यम से.
इसलिए यह कभी कभी उपयोगी है लेकिन ज्यादातर मामलों में,
हम कहते हैं कि करने के लिए जा रहे हैं श्रृंखलन आप क्या करना चाहते है.
>> इसलिए हम इस बारे में पहले बात की थी.
मैं खुद के लिए एक छोटे से आगे हो गया.
लेकिन श्रृंखलन मूल रूप से यह है कि अपने हैश तालिका में प्रत्येक बाल्टी
सिर्फ एक लिंक सूची है.
>> तो एक और तरीका है, या एक से अधिक तकनीकी जिस तरह से, एक हैश तालिका के बारे में सोचना
यह सिर्फ एक सरणी है कि है लिंक सूचियों का जो
जब आप अपने शब्दकोश लिख रहे हैं और आप इसे लोड करने के लिए कोशिश कर रहे हैं,
एक के रूप में इसके बारे में सोच लिंक सूचियों की सरणी
यह बहुत आसान हो जाएगा आप को प्रारंभ करने के लिए.
>> दर्शक: तो हैश तालिका एक पूर्व निर्धारित आकार की है,
बाल्टी से एक [अश्राव्य] की तरह?
>> अध्यक्ष 1: ठीक है.
इसलिए यह का एक सेट संख्या है आप determine-- कि बाल्टी
जो तुम लोगों को चाहिए साथ खेलने के लिए स्वतंत्र महसूस हो रहा है.
यह बहुत अच्छा हो सकता है देखते हैं क्या होता
आप बाल्टी का अपना नंबर बदलने के रूप में.
लेकिन हाँ, यह है एक बाल्टी की निर्धारित संख्या.
क्या आप के रूप में फिट करने के लिए अनुमति देता है आप जरूरत के रूप में कई तत्वों
इस अलग श्रृंखलन जहां आप है प्रत्येक बाल्टी में सूचियों जुड़ा हुआ है.
वह अपने हैश तालिका मतलब वास्तव में आकार का हो जाएगा
अगर आप सही होने की जरूरत है कि यह?
उस लिंक सूचियों की सारी बात है.
कूल.
>> वहाँ तो हर कोई ठीक है?
ठीक है.
आह.
बस क्या हुआ?
वास्तव में अब.
कोई मुझे मार रहा है लगता है.
>> ठीक है हम में जाने के लिए जा रहे हैं एक छोटे से पागल हो रहे हैं जो की कोशिश करता है,.
मैं हैश टेबल की तरह.
मुझे लगता है वे वास्तव में अच्छा कर रहे हैं लगता है.
कोशिश करता है, भी अच्छा कर रहे हैं.
>> इसलिए किसी को भी एक कोशिश है क्या याद है?
आप पर चले गए हैं चाहिए यह संक्षिप्त व्याख्यान में?
आप यह कैसे काम करता है की तरह याद है?
दर्शक: मैं सिर्फ हिला रहा हूँ हम इसे खत्म हो जाना था.
अध्यक्ष 1: हम इसे खत्म हो जाना है.
ठीक है, हम वास्तव में जाने के लिए जा रहे हैं यह अब खत्म हो गया है कि हम क्या कह रहे हैं.
>> दर्शक: यह एक पुनर्प्राप्ति पेड़ के लिए है.
>> अध्यक्ष 1: हाँ.
यह एक पुनर्प्राप्ति पेड़ है.
बहुत बढ़िया.
तो यहाँ सूचना के लिए एक बात यह है कि हम व्यक्तिगत चरित्र को देख रहे हैं
यहाँ, है ना?
>> इसलिए हमारे हैश समारोह के साथ पहले, हम एक पूरे के रूप में शब्दों को देख रहे थे,
और अब हम और अधिक लग रही हो वर्ण, है ना?
तो हम यहाँ और मेंडेल अधिक मैक्सवेल है.
तो बुनियादी तौर पर एक try-- एक तरह से सोचने के लिए इस बारे में है कि हर स्तर यहाँ है
पत्र की एक सरणी है.
तो यह अपने रूट नोड सही, यहाँ है?
इस सब के सब वर्ण है हर शब्द की शुरुआत के लिए वर्णमाला.
>> और क्या आप क्या करना चाहते है कहते हैं, ठीक है, हम कुछ एम शब्द है.
हम मैक्सवेल के लिए देखने के लिए जा रहे हैं, इसलिए कर रहे हैं हम एक पूरी करने के लिए एम और एम अंक के लिए जाना
अन्य एक सरणी जहां हर के रूप में लंबे समय के रूप में वहाँ शब्द,
एक है कि एक शब्द है दूसरा पत्र के रूप में,
के रूप में लंबे समय से एक शब्द है कि वहाँ के रूप में दूसरा पत्र के रूप में बी है,
यह एक सूचक होगा कुछ अगले सरणी के लिए जा रहा.
>> शायद एक नहीं है शब्द है कि सांसद कुछ,
इस में पी स्थिति में तो सरणी, यह सिर्फ रिक्त होगा.
यह कोई शब्द नहीं है, ठीक है, कहना होगा कि एम ठीक है, एक पी द्वारा पालन किया है?
इसलिए हम यह प्रत्येक बारे में सोचते हैं इन छोटी बातों में से एक
वास्तव में इनमें से एक है जेड के माध्यम से एक से बड़े सरणियों
इसलिए चीजों में से एक हो सकता है क्या कि एक कोशिश की एक खामी की तरह है?
>> दर्शक: स्मृति का एक बहुत.
>> अध्यक्ष 1: यह सही, स्मृति की एक टन है?
यहां इन ब्लॉकों में से हर एक को 26 रिक्त स्थान, 26 तत्व सरणी का प्रतिनिधित्व करता है.
इसलिए कोशिश करता है अंतरिक्ष भारी अविश्वसनीय रूप से मिलता है.
>> लेकिन वे बहुत तेजी से कर रहे हैं.
तो अविश्वसनीय रूप से तेजी से लेकिन वास्तव में अंतरिक्ष अक्षम.
एक तरह से लगाने की है जो बाहर एक तुम चाहते हो.
ये अपने pset के लिए वास्तव में अच्छा कर रहे हैं लेकिन वे स्मृति का एक बहुत ले कर,
तो आप बंद व्यापार.
हाँ?
>> दर्शक: यह संभव होगा फिर एक कोशिश की स्थापना की और करने के लिए
आप एक बार सभी आप need-- कि इसमें डेटा
कि मतलब होता अगर मैं नहीं जानता.
मैं से छुटकारा मिल गया था सभी नल वर्ण, लेकिन फिर
आप सूचकांक them-- करने में सक्षम नहीं होगा
>> अध्यक्ष 1: आप अभी भी उन्हें जरूरत है.
>> दर्शक: - उसी तरह हर बार.
अध्यक्ष 1: हाँ.
तुम चलो रिक्त पात्रों की जरूरत वहाँ एक शब्द नहीं है यदि आप जानते हैं.
क्या आप चाहते हैं कुछ है बेन किया?
ठीक.
ठीक है, तो हम जा रहे हैं अधिक एक छोटा सा जाने के लिए
पीछे तकनीकी विस्तार में एक कोशिश करते हैं और एक उदाहरण के माध्यम से काम करते हैं.
>> ठीक है, तो यह एक ही बात है.
एक लिंक की गई सूची में, हमारे मुख्य जबकि ? तरह of-- मैं चाहते हैं शब्द क्या है -
ब्लॉक के निर्माण की तरह एक नोड था.
एक कोशिश में, हम भी, एक नोड है लेकिन यह अलग ढंग से परिभाषित किया है.
>> इसलिए हम कुछ bool है कि एक शब्द है कि क्या वास्तव में प्रतिनिधित्व करता है
इस स्थान पर मौजूद है, और उसके बाद हम here-- या बल्कि कुछ सरणी है
इस एक के लिए एक संकेत है 27 अक्षरों की सरणी.
और यह इस, इस मामले में, के लिए है 27-- मैं आप सभी को पसंद कर रहे हैं यकीन है, इंतजार
वर्णमाला में 26 अक्षर हैं.
क्यों हम 27 की क्या ज़रूरत है?
>> इतने पर निर्भर करता है आप इस लागू रास्ता,
इस एक pset से है कि apostrophes के लिए अनुमति दी.
तो यही कारण है कि अतिरिक्त एक है.
तुम भी कुछ में होगा मामलों अशक्त टर्मिनेटर
में से एक के रूप में शामिल किया जाता है यह होने की अनुमति दी है कि वर्ण,
और कहा कि वे करने के लिए जाँच कैसे यह शब्द के अंत में अगर देखें.
आप रुचि रखते हैं, बाहर की जाँच Study.cs50 पर केविन वीडियो,
साथ ही विकिपीडिया के रूप में वहाँ कुछ अच्छा संसाधनों.
>> लेकिन हम सिर्फ तरह के माध्यम से जाने के लिए जा रहे हैं आप एक कोशिश के माध्यम से काम कर सकते हैं कि कैसे
आप एक दी रहे हैं.
इसलिए हम यहां कि एक सुपर सरल एक है उन में शब्द "बल्ला" और "ज़ूम" है.
और हम यहाँ देखते हैं, यहाँ इस छोटे से अंतरिक्ष
हमारे bool का प्रतिनिधित्व करता है हाँ, यह एक शब्द है, कहते हैं.
और फिर यह हमारी है वर्णों की सरणियों, है ना?
>> इसलिए हम के माध्यम से जाने के लिए जा रहे हैं इस कोशिश में "बल्ला" ढूँढने.
तो सही, शीर्ष पर शुरू हो?
और हम ख से मेल खाती है कि पता दूसरा सूचकांक, दूसरा तत्व
इस श्रेणी में, ए और बी है.
तो लगभग एक दूसरे के.
>> और यह ठीक है, में है कि शांत पालन कहते हैं, अगले सरणी, हम याद है क्योंकि,
यह इन की कि प्रत्येक नहीं है वास्तव तत्व शामिल हैं.
इन सरणियों में से हर एक सही, एक सूचक होता है?
इसे बनाने के लिए एक महत्वपूर्ण अंतर है.
>> मैं यह कोशिश करता हैं be-- जा रहा है पहले समय पर पाने के लिए वास्तव में कड़ी मेहनत,
तो यह है, भले ही दूसरी या तीसरी बार
और यह एक तरह अब भी है मुश्किल सूरत की,
आप देखने के लिए जाना अगर मैं वादा करता हूँ कम फिर कल,
यह शायद एक बहुत अधिक समझ कर दूँगा.
इसे पचाने के लिए एक बहुत लेता है.
मैं अब भी कभी कभी हूँ जैसे, प्रतीक्षा, एक कोशिश क्या है?
मैं यह कैसे इस्तेमाल करते हैं?
>> इसलिए हम इस मामले में ख है, जो हमारी दूसरी सूचकांक है.
हम था, कहते हैं, सी या डी या किसी भी अन्य पत्र,
हम सूचकांक करने के लिए कि वापस मैप करने की आवश्यकता हमारे सरणी के उस से मेल खाती है.
इसलिए हम rchar तरह ले जाएगा और सिर्फ हम एक 0-25 में यह नक्शा करने के लिए बंद घटाना.
अच्छा सब लोग कैसे हम हमारे वर्ण मैप?
ठीक.
>> तो हम एक दूसरे के और हम करने के लिए जाना देखना है कि, हां, यह शून्य करने के लिए नहीं है.
हम यह अगले सरणी के लिए पर स्थानांतरित कर सकते हैं.
इसलिए हम यहां यह अगले सरणी पर चलते हैं.
>> और हम अब, ठीक है, का कहना है कि हम एक यहां है अगर देखने की जरूरत है.
एक नल है या यह करता है वास्तव में आगे बढ़ने?
तो एक वास्तव में ले जाता है इस सरणी में आगे.
और हम ठीक है, टी हमारे पिछले पत्र है, कहते हैं.
तो हम सूचकांक में टी के पास जाओ.
और फिर हम आगे बढ़ना क्योंकि एक और एक है.
और यह एक, हाँ, मूल रूप से कहते हैं कि यह एक शब्द कहना है कि वहाँ here--
आप इस का पालन करें कि पथ, आप आ चुके हैं
एक शब्द में, हम जानते हैं कि जो "बल्ले है."
हाँ?
>> दर्शक: लगता है कि करने के लिए यह मानक है तो सूचकांक 0 और 1 के रूप में एक प्रकार का है
या अंत में है करने के लिए?
>> अध्यक्ष 1: नहीं
हम में वापस देखो तो अगर हमारे यहां घोषणा, यह एक bool है,
तो यह आपके नोड में अपनी ही तत्व है.
तो यह सरणी का हिस्सा नहीं है.
कूल.
हम अपने शब्द खत्म और इसलिए जब हम कर रहे हैं इस सरणी में, हम क्या करना चाहते
इस एक शब्द है के लिए एक जांच करना है.
और इस मामले में, यह हाँ लौटेंगे.
>> तो उस पर ध्यान दें, हम उस "चिड़ियाघर" पता है - "चिड़ियाघर" एक शब्द है कि मनुष्य के रूप में हम जानते हैं,
सही?
लेकिन यहाँ होता कोशिश कर रहे हैं नहीं, ऐसा नहीं है, कहते हैं.
और यह कहना चाहूँगा कि हम क्योंकि यहाँ एक शब्द के रूप में यह नामित नहीं किया है.
यहां तक ​​कि हम पार कर सकते हैं, हालांकि इस सरणी के माध्यम से,
इस कोशिश, नहीं, यह कहना होगा चिड़ियाघर अपने शब्दकोश में नहीं है
हम नहीं है क्योंकि जैसे यह निर्दिष्ट.
>> तो एक तरह से that-- क्या करना ओह, माफ करना, इस एक.
तो इस मामले में, "चिड़ियाघर" नहीं है एक शब्द है, लेकिन यह हमारे कोशिश में है.
लेकिन इस एक में, हम यह कहना चाहते हैं "स्नान," क्या होता है शब्द का परिचय
हम through-- बी, ए, टी का पालन है.
हम इस सरणी में कर रहे हैं, और हम एच के लिए खोज करने के लिए जाना.
>> इस मामले में, जब हम एच में सूचक को देखो,
यह ठीक है, नल की ओर इशारा कर रहा है?
यह स्पष्ट रूप से है तो जब तक एक और सरणी की ओर इशारा करते,
आप मान सभी संकेत दिए कि इस सरणी में अशक्त की ओर इशारा कर रहे हैं.
इस मामले में तो, ज इशारा कर रहा है हम कुछ नहीं कर सकते तो रिक्त करने के लिए,
इसलिए यह भी लौटेंगे झूठी, "स्नान" यहाँ नहीं है.
तो अब हम वास्तव में कर रहे हैं के माध्यम से जाना जा रहा
कैसे हम वास्तव में कहना होगा कि "चिड़ियाघर" हमारी कोशिश में है.
कैसे हम अपने कोशिश में "चिड़ियाघर" सम्मिलित करते हैं?
हम साथ शुरू कर दिया है कि एक ही तरह से तो हमारे लिंक की गई सूची में, हम जड़ में शुरू करते हैं.
संदेह में, पर जब शुरू इन बातों की जड़.
>> और हम, ठीक है, जेड कहूँगा.
जेड इस में मौजूद है, और यह करता है.
तो आप को पर आगे बढ़ रहे हैं अपने अगले सरणी, ठीक है?
और फिर अगले एक पर, हम ठीक है, ओ मौजूद है, कहते हैं?
यह करता है.
यह फिर से.
>> और इसलिए हमारे अगले एक पर, हम, कहा है ठीक है, "चिड़ियाघर" यहाँ पहले से ही मौजूद है.
हम सब करने की ज़रूरत यह बराबर सेट है सच करने के लिए, वहाँ एक शब्द है कि वहाँ.
आप सब कुछ का पालन किया था उस बिंदु से पहले तक,
यह एक शब्द है, तो बस ऐसे करने के लिए यह बराबर निर्धारित किया है.
हाँ?
>> दर्शक: तो फिर ऐसा करता है "बा" एक शब्द भी है कि क्या मतलब है?
>> अध्यक्ष 1: नहीं
तो इस मामले में, "बीए" हम मिल जाएगा यहाँ, हम, यह एक शब्द है कहेंगे
और यह अभी भी नहीं होगा.
ठीक है?
Mmhmm?
>> दर्शक: आप एक बार तो यह एक शब्द और आप यह तो हाँ कहते हैं,
एम के लिए जाने के लिए शामिल होंगे?
>> अध्यक्ष 1: तो यह क्या करना है with-- आप में इस लोड कर रहे हैं.
आप "चिड़ियाघर" एक शब्द है कहना.
आप check-- जब जाना जैसे, आप कहना चाहते हैं का कहना है,
"चिड़ियाघर" इस ​​शब्दकोश में मौजूद है?
आप केवल "चिड़ियाघर" के लिए खोज करने के लिए जा रहे हैं और तो यह एक शब्द है यह देखने के लिए जाँच करें.
आप कभी नहीं स्थानांतरित करने के लिए जा रहे हैं ऐसा नहीं है क्योंकि एम के माध्यम से
क्या आप के लिए देख रहे हैं.
>> इसलिए हम वास्तव में करना चाहता था इस कोशिश में "स्नान" जोड़ने,
हम एक ही बात करेंगे हम साथ किया था "चिड़ियाघर"
जब हम हम देखना होगा कि सिवाय कोशिश करते हैं और एच के लिए मिलता है, यह मौजूद नहीं है.
कोशिश कर के रूप में तो आप यह सोच सकते हैं एक लिंक की गई सूची में एक नया नोड जोड़ने के लिए,
तो हम एक और जोड़ने की आवश्यकता होगी तो जैसे इन सरणियों में से एक,.
और फिर हम सिर्फ एच सेट है हम क्या करते हैं इस ओर इशारा करते हुए इस सरणी के तत्व.
>> और फिर क्या हम यहाँ क्या करना चाहता है?
सच करने के लिए यह बराबर जोड़ें क्योंकि यह एक शब्द है.
कूल.
मुझे पता है.
कोशिश करता सबसे रोमांचक हैं.
मेरा विश्वास करो, मुझे पता है.
>> तो एक बात की कोशिश करता है के साथ महसूस करने के लिए, मुझे लगता है वे बहुत कुशल हैं, ने कहा.
तो हम वे देखा है अंतरिक्ष की एक टन ले.
वे एक तरह से भ्रमित कर रहे हैं.
तो क्यों न हम कभी इन का प्रयोग करेंगे?
वे कर रहे हैं क्योंकि हम इन उपयोग अविश्वसनीय रूप से कुशल है.
>> आप कभी भी देख रहे हैं तो एक शब्द, आप ही कर रहे हैं
शब्द की लंबाई से घिरा.
तो अगर आप एक के लिए देख रहे हैं लंबाई पाँच की है कि शब्द,
आप केवल कभी करने के लिए जा रहे हैं ठीक है, सबसे पाँच तुलना में बना?
तो यह है कि यह मूल रूप से एक निरंतर बना देता है.
प्रविष्टि और देखने की तरह मूल रूप से निरंतर समय हैं.
>> आप कभी भी प्राप्त कर सकते हैं तो लगातार समय में कुछ,
कि यह हो जाता है के रूप में अच्छा है.
आप से बेहतर नहीं हो सकते इन बातों के लिए निरंतर समय.
तो उस में से एक है कोशिश करता है की विशाल चाहता.
>> लेकिन यह अंतरिक्ष के एक बहुत है.
तो आप किस तरह का फैसला करना है क्या आप के लिए महत्वपूर्ण है.
और आज के कंप्यूटर पर, अंतरिक्ष एक कोशिश का समय लग सकता है कि
शायद प्रभावित नहीं करता आपको लगता है कि ज्यादा है, लेकिन शायद
आप कुछ के साथ काम कर रहे हैं कि, दूर, बहुत अधिक बातें है
और एक कोशिश सिर्फ उचित नहीं है.
हाँ?
>> दर्शक: रुको, तो आप 26 है हर एक में पत्र?
>> अध्यक्ष 1: Mmhmm.
हाँ, आप 26 है.
आप कुछ तो शब्द मार्कर और है आप में से हर एक में 26 संकेत दिए हैं.
और वे point-- रहे
>> दर्शकों: और हर 26 वे प्रत्येक 26 की क्या ज़रूरत है?
>> अध्यक्ष 1: हाँ.
आप कर सकते हैं और वह है, क्यों है यह काफी तेजी से फैलता है, देखते हैं.
ठीक है.
तो हम पेड़ों में पाने के लिए जा रहे हैं जो मुझे पसंद आसान है लगता है और शायद होगा
एक अच्छा सा राहत हो वहाँ की कोशिश करता है.
तो उम्मीद है कि आप में से ज्यादातर पहले एक पेड़ देखा है.
बहुत पसंद नहीं बाहर वालों, जो मैं
किसी को पता नहीं है हाल ही में सड़क पर चला गया.
मैं एप्पल इस सप्ताह के अंत उठा चला गया, और ओह, मेरे भगवान, यह खूबसूरत था.
मैं पत्ते नहीं पता था कि सुंदर लग सकता है.
>> तो यह सिर्फ एक पेड़ है, सही है?
यह सिर्फ कुछ नोड है, और यह अन्य नोड्स के एक गुच्छा के लिए अंक.
आप यहाँ देख, यह है एक आवर्ती विषय की तरह.
नोड्स नोड्स ओर इशारा करते हुए एक तरह से है कई डाटा संरचनाओं का सार.
यह सिर्फ हम पर निर्भर करता है उन्हें एक दूसरे से बात कर सकते है
और हम कैसे पार उन के माध्यम से और कैसे हम
निर्धारित करता है कि चीजों को डालने उनकी विभिन्न विशेषताओं.
>> तो बस कुछ शब्दावली, जो मैं पहले का उपयोग किया है.
तो जड़ बहुत शीर्ष पर है जो कुछ भी है.
हम हमेशा शुरू जहां यह है.
तुम भी सिर के रूप में सोच सकते हैं.
लेकिन पेड़ों के लिए, हम करने के लिए करते हैं रूट के रूप में इसे देखें.
>> नीचे here-- पर कुछ भी बहुत, बहुत bottom-- पर
माना पत्ते हैं.
तो उसके साथ चला जाता पूरे पेड़ बात है, है ना?
पत्तियां अपने पेड़ के किनारों पर हैं.
>> और फिर हम भी की एक जोड़ी है शर्तों के संबंध में नोड्स के बारे में बात करने के लिए
एक दूसरे से.
तो हम, माता पिता है बच्चों, और भाई बहन.
तो इस मामले में, 3 है 5, 6, और 7 के माता पिता.
इसलिए माता पिता है जो कुछ है आप कर रहे हैं जो कुछ भी ऊपर एक कदम
तो बस, की चर्चा करते हुए एक परिवार के पेड़ की तरह.
उम्मीद है, यह सब एक छोटी सी है बिट की कोशिश करता है और अधिक से अधिक सहज ज्ञान युक्त.
>> भाई बहन है कि किसी भी कर रहे हैं सही ही माता-पिता,?
वे यहाँ एक ही स्तर पर कर रहे हैं.
और फिर मैं, के रूप में था कह, बच्चों को बस रहे हैं
नीचे एक कदम जो कुछ भी है सवाल में नोड, ठीक है?
कूल.
तो एक द्विआधारी पेड़.
किसी को एक पर एक खतरा लगता सकते हैं द्विआधारी पेड़ की विशेषताओं?
>> दर्शक: अधिकतम दो पत्ते.
>> अध्यक्ष 1: ठीक है.
तो दो पत्तियों की अधिकतम.
तो पहले इस एक में, हम इस एक था कि, तीन की थी, लेकिन एक द्विआधारी पेड़ में
तुम दोनों में से एक अधिकतम है माता पिता के प्रति बच्चों, है ना?
एक और वहाँ दिलचस्प विशेषता.
किसी को भी पता है कि करता है?
द्विआधारी पेड़.
>> तो एक द्विआधारी पेड़ सब कुछ होगा the-- पर इस एक sorted-- नहीं है
लेकिन एक छाँटे गए द्विआधारी पेड़ में, सही पर सब कुछ
, माता-पिता की तुलना में अधिक है और बाईं तरफ सब कुछ
माता-पिता की तुलना में कम है.
और वह एक प्रश्नोत्तरी कर दिया गया है सवाल से पहले, तो अच्छा है पता करने के लिए.
इसलिए हम इस परिभाषित रास्ता, फिर, हम एक और नोड है.
यह क्या करने के लिए बहुत इसी तरह लग रहा है?
दोगुना
>> दर्शक: लिंक सूचियों
>> अध्यक्ष 1: एक डबल लिंक सूची, है ना?
इसलिए हम इस जगह पिछले और अगले के साथ,
यह एक दोगुना लिंक सूची होगी.
लेकिन इस मामले में, हम वास्तव में छोड़ दिया और सही है और यह बात है.
अन्यथा, यह बिल्कुल वैसा ही है.
हम अभी भी तत्व है यदि आप के लिए देख रहे हैं
और आप सिर्फ दो संकेत है जो कुछ करने जा अगले है.
हाँ, इतना द्विआधारी खोज वृक्ष.
हम पर, सब कुछ नोटिस यहीं अधिक than-- है
तुरंत या सब कुछ यहाँ सही करने के लिए
, सब कुछ से अधिक है यहां से भी कम है.
>> इसलिए हम के माध्यम से खोज रहे थे, यह द्विआधारी खोज के बहुत करीब से देखना चाहिए
यहाँ, है ना?
बजाय देख सिवाय आधा सरणी में,
हम बस या तो छोड़ दिया पर देख रहे हैं पक्ष या पेड़ के दाईं ओर.
यह थोड़ा आसान हो जाता है तो, मुझे लगता है.
>> अपने रूट नल है तो, अगर जाहिर है यह सिर्फ झूठी है.
यह वहाँ है, तो जाहिर है कि यह सच है.
यह तुलना में कम है, तो हम छोड़ दिया खोज.
यह अधिक से अधिक है, हम सही खोज.
यह वास्तव में द्विआधारी खोज की तरह है बस एक अलग डेटा संरचना
कि हम प्रयोग कर रहे हैं.
इसके बजाय एक सरणी की, यह सिर्फ एक द्विआधारी पेड़ है.
>> ठीक है, ढेर.
और यह भी, यह हम जैसे लग रहा है समय का एक छोटा सा हो सकता है.
अगर हम करते हैं, मैं जाने के लिए खुश हूँ इस के किसी भी फिर से.
ठीक है, तो ढेर.
किसी को क्या याद है stacks-- एक ढेर में से किसी विशेषताओं?
>> ठीक है, हम में से ज्यादातर तो, मुझे लगता है, भोजन में खाने halls--
हम करने के लिए तरह नहीं हो सकता जितना.
लेकिन जाहिर है, आप एक ढेर के बारे में सोच सकते हैं सचमुच सिर्फ ट्रे के एक ढेर के रूप में
या चीजों के ढेर.
और क्या महत्वपूर्ण है महसूस करने के लिए यह है कि है
विशेषता something-- हम यह by-- कॉल कि LIFO है.
किसी को भी उस के लिए खड़ा है क्या पता है?
Mmhmm?
>> दर्शक: पहला, में बाहर पिछले.
>> अध्यक्ष 1: ठीक है, पहले, में बाहर पिछले.
हम जानते हैं कि अगर हां, तो हम चीजों को स्टैकिंग रहे हैं ऊपर, सबसे आसान बात off-- हड़पने के लिए
और शायद एक ही चीज़ हम हड़पने कर सकते हैं हमारे ढेर बड़ा enough-- अगर बंद
कि शीर्ष तत्व है.
तो जो कुछ पर डाल दिया गया था हम यहाँ देख last--,
जो भी धकेल दिया गया था अधिकांश पर recently-- है
पहली बार होने जा हम बंद पॉप बात यह है कि, ठीक है?
>> तो क्या हम यहाँ है एक और typedef संरचना.
यह वास्तव में सिर्फ एक तरह है डेटा संरचना में पाठ्यक्रम दुर्घटना,
तो तुम लोगों पर फेंक एक बहुत कुछ है.
मुझे पता है.
तो अभी तक एक संरचना.
संरचनाओं के लिए याय.
>> और इस मामले में, यह कुछ सूचक है कुछ क्षमता है कि एक सरणी के लिए.
तो यह हमारे ढेर का प्रतिनिधित्व करता है यहाँ, हमारे वास्तविक सरणी की तरह
कि हमारे तत्वों पकड़ रखा है.
और फिर यहाँ हम कुछ आकार है.
>> और आम तौर पर, आप रखना चाहते हैं अपने ढेर कितना बड़ा है का ट्रैक
यह अनुमति देने के लिए क्या हो रहा है, क्योंकि क्या आप आकार पता अगर है ऐसा करने के लिए,
यह आप कहने के लिए अनुमति देता है, ठीक है, मैं क्षमता में हूँ?
मैं अधिक कुछ भी जोड़ सकते हैं?
और यह भी बताता है जहां आपके ढेर के ऊपर
इतना है कि तुम क्या जानते हैं वास्तव में दूर ले सकते हैं.
और कहा कि वास्तव में हो रहा है यहां एक छोटे से अधिक स्पष्ट हो.
>> तो धक्का, एक बात के लिए, आप अगर धक्का को लागू करने के लिए कभी थे,
मैं सिर्फ कह रहा था के रूप में, अपने ढेर सही, एक सीमित आकार की है?
हमारे सरणी कुछ क्षमता थी.
यह एक सरणी है.
यह एक निश्चित आकार है, तो हम करने की आवश्यकता है हम अधिक नहीं डाल रहे हैं कि यह सुनिश्चित कर लें
हम से हमारे सरणी में वास्तव में के लिए जगह है.
>> तो जब आप एक धक्का बना रहे हैं समारोह, आप ठीक है, कहना है पहली बात,
मैं अपने ढेर में स्थान है?
, मैं नहीं करते हैं, क्षमा करें क्योंकि मैं अपने तत्व की दुकान नहीं कर सकते हैं.
मुझे क्या करना है, तो आप संग्रहीत करना चाहते हैं यह ढेर के शीर्ष पर, सही?
>> और यह हमारे पास क्यों है हमारे आकार का ट्रैक रखने के लिए.
हम अपने आकार का ट्रैक रखने नहीं है, हम इसे लगाने के लिए जहां पता नहीं है.
हम कितनी बातें पता नहीं है पहले से ही हमारे सरणी में हैं.
जाहिर है जैसा तरीके हैं हो सकता है कि आप यह कर सकता है.
आप अशक्त करने के लिए सब कुछ को प्रारंभ कर सकता है और फिर नवीनतम नल के लिए जाँच,
लेकिन एक बहुत आसान बात बस है ठीक है, आकार का ट्रैक रखने, कहने के लिए.
मुझे पता है की तरह मैं चार तत्वों मेरे सरणी में, अगले बात तो
हम पर डाल दिया है, हम कर रहे हैं सूचकांक 4 में स्टोर करने के लिए जा रहा है.
और फिर, ज़ाहिर है, इस का मतलब है कि आप सफलतापूर्वक कुछ धक्का दिया
अपने ढेर पर, आप आकार बढ़ाना चाहते हैं
आप जानते हैं कि ऐसा है तो आप ऐसा कर रहे हैं जहां आप पर अधिक बातें धक्का कर सकते हैं कि.
>> हम पॉप करने की कोशिश कर रहे हैं तो ढेर बंद कुछ,
पहली बात क्या हो सकता है हम के लिए जाँच करना चाहते हैं?
आपको लेने के लिए कोशिश कर रहे हैं अपने ढेर से दूर कुछ.
आप यकीन है कि वहाँ रहे हैं अपने ढेर में कुछ और?
नहीं.
तो क्या हम जाँच करना चाहते हो?
>> दर्शक: [अश्राव्य].
अध्यक्ष 1: आकार के लिए जाँच करें?
आकार.
इसलिए हम यह देखने के लिए जाँच करना चाहते हैं हमारे आकार ठीक है, 0 से अधिक है?
अगर ऐसा है, तो हम कम करना चाहते 0 से हमारे आकार और कहा कि वापसी.
क्यों?
>> पहले एक में हम थे धक्का, हम इसे धक्का दिया
आकार और फिर अद्यतन आकार पर.
इस मामले में, हम आकार decrementing रहे और फिर इसे तोड़, यह दूर ले जा रही
हमारे सरणी से.
क्यों हम ऐसा कर सकता है?
इसलिए मैं अपने ढेर पर एक बात है, उस बिंदु पर मेरे आकार क्या होगा?
1.
>> और जहां तत्व 1 संग्रहीत किया जाता है?
क्या इंडेक्स पर?
दर्शक: 0.
अध्यक्ष 1: 0.
इस मामले में तो, हम हमेशा sure-- बनाने की जरूरत
बजाय लौटने की आकार शून्य से 1, क्योंकि हम
हमारे तत्व है कि पता 1 कम में संग्रहित किया जा रहा
हमारे आकार है, जो भी इस बस यह ध्यान रखती है.
यह एक थोड़ा और अधिक सुंदर तरीका है.
और हम सिर्फ हमारे घटती तो आकार और आकार वापसी.
Mmhmm?
>> दर्शक: मैं सिर्फ सामान्य रूप में लगता है क्यों इस डेटा संरचना होगा
फायदेमंद हो सकता है?
>> अध्यक्ष 1: यह आपके संदर्भ पर निर्भर करता है.
सिद्धांत से कुछ के लिए तो, आप ठीक with-- काम कर रहे हैं,
एक फायदेमंद नहीं है अगर मुझे देखते हैं कि बाहर से अधिक के लिए फायदेमंद है
सीएस की.
ढेर के साथ, किसी भी समय आप की जरूरत कुछ का ट्रैक रखने के लिए कि
सबसे हाल ही में जोड़ा जाता है जब है आप एक ढेर का उपयोग करना चाहते करने जा रहे हैं.
>> और मैं एक अच्छा के बारे में सोच नहीं सकते अभी उस का उदाहरण.
लेकिन जब भी सबसे हाल ही में बात, आपके लिए सबसे अधिक महत्वपूर्ण है
कि जब एक ढेर है उपयोगी होने जा रहा है.
मैं अगर सोच की कोशिश कर रहा हूँ इस के लिए एक अच्छा एक है.
मैं अगले में एक अच्छा उदाहरण के बारे में सोच 20 मिनट, मैं निश्चित रूप से आपको बता देंगे.
>> लेकिन कुल मिलाकर, अगर वहाँ कुछ भी, की तरह मैं सबसे अधिक है, जहां सबसे हाल ही में कहा
कि, सबसे महत्वपूर्ण है है जहां एक ढेर खेलने में आता है.
कतारों जबकि विपरीत की तरह कर रहे हैं.
और सभी छोटे कुत्तों.
ठीक है, यह अच्छा नहीं है?
मैं मुझे ऐसा करना चाहिए की तरह लग रहा है सिर्फ एक चलनेवाली वीडियो
सही के बीच में आप लोगों के लिए अनुभाग
यह एक तीव्र खंड है.
>> तो एक कतार.
असल में एक पंक्ति एक लाइन की तरह है.
तुम लोग मुझे इस रोज यकीन उपयोग कर रहा हूँ, बस हमारे डाइनिंग हॉल में पसंद है.
इसलिए हम में जाना है और मैं कर रहा हूँ, हमारे ट्रे मिल
सुनिश्चित करें कि आप लाइन में इंतजार करना पड़ स्वाइप या अपने भोजन पाने के लिए.
>> यहां फर्क तो इस फीफो है कि है.
तो LIFO पहले, में पिछले था बाहर, फीफो पहले पहली बार बाहर, में है.
तो यह आप कहाँ रखा जो कुछ है पहले पर अपने सबसे महत्वपूर्ण है.
आप इंतजार कर रहे थे तो अगर एक line-- में आप कर सकते हैं
आप के पास गया तो कल्पना नए iPhone मिल जाना
और यह एक ढेर था जहां लाइन में अंतिम व्यक्ति, पहली बार मिल गया
लोग एक दूसरे को मार डालेंगे.
>> तो फीफो, हम सब बहुत परिचित हो यहां असली दुनिया में साथ,
और यह सब वास्तव में साथ नहीं है एक तरह से इस पूरे लाइन पुनः
और संरचना रकम जुटा.
ढेर के साथ, जबकि इसलिए, हम धक्का और पॉप है.
एक कतार के साथ, हम एन्क्यू और dequeue.
तो एन्क्यू मूल रूप से मतलब पीठ पर डाल दिया,
और dequeue साधन लेना सामने से बंद.
इसलिए हमारे डेटा संरचना है एक थोड़ा और अधिक जटिल.
हम का ट्रैक रखने के लिए एक दूसरी बात है.
>> यह सिर के बिना तो ठीक है, वास्तव में एक ढेर है?
यह एक ढेर के रूप में एक ही संरचना है.
अलग ही बात अब हम है तुम्हें क्या लगता है, जो इस सिर, है
का ट्रैक रखने के लिए जा रहा है?
>> दर्शक: पहले एक.
>> अध्यक्ष 1: ठीक है, हम में डाल दिया है कि पहली बात.
हमारे कतार के सिर.
जो कोई भी लाइन में पहला है.
ठीक है, तो हम एन्क्यू करते हैं.
फिर, किसी के साथ इन डेटा संरचनाओं,
हम एक सरणी के साथ काम कर रहे हैं के बाद से, हम हम जगह है अगर जांच की जरूरत है.
>> यह मुझे बता रहा है की तरह तरह की है तुम लोग, आप एक फ़ाइल खोलने,
आप अशक्त के लिए जांच की जरूरत है.
इन ढेर से किसी के साथ और कतार, आप की जरूरत है
हम कर रहे हैं क्योंकि अंतरिक्ष अगर वहाँ देखने के लिए एक निश्चित आकार सरणी से निपटने,
हम सभी 5 तक here-- 0, 1 के रूप में मिलते.
तो हम उस स्थिति में क्या कर जांच है हम अभी भी स्थान है, यह देखने के लिए.
हमारे आकार क्षमता से कम है?
>> यदि हां, तो हम पर यह स्टोर करने की जरूरत है हम अपने आकार को अद्यतन और पूंछ.
तो पूंछ इस मामले में क्या हो सकता है?
यह स्पष्ट रूप से बाहर नहीं लिखा है.
हम इसे कैसे स्टोर होगा?
पूंछ क्या होगा?
>> तो चलो इस उदाहरण के माध्यम से चलते हैं.
इसलिए इस आकार 6 की एक सरणी, सही है?
और हम अभी, हमारी आकार 5 है.
हम इसे में डाल दिया और जब यह हो रहा है सही पांचवें सूचकांक में जाने के लिए?
तो पूंछ पर दुकान.
>> पूंछ लिखने के लिए एक और तरीका होगा बस आकार के सूचकांक में हमारे सरणी, सही हो सकता है?
इस आकार 5 है.
अगली बात 5 में जाना जा रहा है.
कूल?
ठीक.
यह थोड़ा और अधिक जटिल हो जाता है हम सिर के साथ खिलवाड़ शुरू करते हैं.
हाँ?
>> दर्शक: कि क्या इसका मतलब है कि हम एक सरणी की घोषणा की है कि
पांच तत्वों लंबा था और तो हम इसे पर जोड़ रहे हैं?
>> अध्यक्ष 1: नहीं
तो इस मामले में, यह एक ढेर है.
यह घोषित किया जाएगा 6 आकार की एक सरणी के रूप में.
और इस मामले में, हम सिर्फ एक स्थान बाकी है.
>> ठीक है, तो एक बात इस में है मामला, हमारे सिर 0 में अगर,
तो हम सिर्फ आकार में यह भी जोड़ सकते हैं.
लेकिन यह थोड़ा पेचीदा मामला हो जाता है वास्तव में, क्योंकि वे
एक स्लाइड नहीं है इस के लिए, इसलिए मैं जा रहा हूँ
ऐसा नहीं है क्योंकि एक आकर्षित करने के लिए काफी सरल है कि आप एक बार
बातों से छुटकारा मिल रहा शुरू करते हैं.
एक ढेर के साथ, जबकि तो आप केवल कभी
आकार क्या है के बारे में चिंता करने की जब आप पर कुछ जोड़ रहे हैं,
एक कतार के साथ आप भी बनाने की जरूरत अपने सिर के लिए जिम्मेदार है यह सुनिश्चित करें कि,
क्योंकि कतारों के बारे में एक अच्छी बात है कि आप क्षमता पर नहीं कर रहे हैं,
आप वास्तव में इसे चारों ओर लपेट कर सकते हैं.
>> ठीक है, तो एक thing-- ओह, इस भयानक चाक है.
विचार करने के लिए एक बात है मामला है.
हम सिर्फ पांच करूँगा.
ठीक है, तो हम करने जा रहे हैं सिर यहाँ है कहना.
इस 0, 1, 2, 3, 4 है.
>> सिर वहाँ है, और उन में बातें हैं कृपया.
और हम सही में कुछ जोड़ना चाहते हैं?
तो बात हम करने की आवश्यकता है पता सिर हमेशा यह है कि
इस तरह से स्थानांतरित करने के लिए जा रहा है और फिर पाश वापस चारों ओर, ठीक है?
>> तो इस कतार सही, अंतरिक्ष है?
यह बहुत शुरुआत में अंतरिक्ष है इस के विपरीत की तरह.
तो हम क्या करने की जरूरत है कि हम है पूंछ की गणना करने की जरूरत है.
आप जानते हैं कि आपके सिर नहीं ले जाया गया, पूंछ
पर सिर्फ आपके सरणी है आकार के सूचकांक.
>> लेकिन वास्तविकता में, आप एक पंक्ति का उपयोग कर रहे हैं, अपने सिर को शायद अद्यतन किया जा रहा है.
तो तुम क्या करने की जरूरत है वास्तव में पूंछ की गणना.
तो हम क्या यह फार्मूला है यहां, मैं आपको यह बताने के लिए जा रहा हूँ जो
लोगों के बारे में सोचते हैं, और तो हम इसके बारे में बात करेंगे.
तो यह क्षमता है.
>> तो यह वास्तव में होगा आप यह करने के लिए एक रास्ता दे.
क्योंकि इस मामले में, क्या?
हमारे सिर 1 में, हमारे आकार 4 है.
हम 5 से कि आधुनिक हैं, हम 0 मिलता है, जो जहां हम यह इनपुट चाहिए.
>> तो फिर अगले मामले में, हम यह कर रहे थे,
हम ठीक है, चलो कुछ dequeue चलो, कहना.
हम इस dequeue.
हम सही, इस तत्व बाहर ले?
>> और अब हमारे सिर, यहां इशारा कर रहा है और हम एक और बात में जोड़ना चाहते हैं.
यह मूल रूप से है वापस हमारे लाइन का, है ना?
कतार सरणी के आसपास लपेट कर सकते हैं.
यही मुख्य अंतर से एक है.
ढेर, आप ऐसा नहीं कर सकते.
>> कतारों के साथ, आप कर सकते हैं कि सभी मामलों क्योंकि
आप जानते हैं कि क्या है सबसे हाल ही में जोड़ा गया है.
सब कुछ में जोड़ा जा रहा है जब से इस बाई ओर दिशा, इस मामले में,
और फिर चारों ओर लपेट, आप कर सकते हैं नए तत्वों में डालने के लिए जारी
सरणी के मोर्चे पर यह सच नहीं है क्योंकि
अब सरणी के सामने.
आप की शुरुआत के बारे में सोच सकते हैं अपने सिर वास्तव में है, जहां के रूप में सरणी.
>> इसलिए इस सूत्र कैसे है आप अपनी पूंछ की गणना.
वह समझ में आता है?
ठीक.
ठीक है, dequeue, और उसके बाद तुम लोगों को 10 मिनट है
मुझे किसी भी स्पष्ट सवाल पूछने के लिए मैं यह पागल है क्योंकि आप जानते हैं, चाहते हैं.
>> , एक ही way-- में तो सब ठीक है तुम लोगों को देखा तो मैं नहीं जानता,
लेकिन सीएस सब पैटर्न के बारे में है.
हालात बहुत ज्यादा हैं सिर्फ छोटे tweaks के साथ, एक ही.
यहाँ तो एक ही बात.
हम अगर हम वास्तव में देखने के लिए जांच की जरूरत सही हमारे कतार में कुछ है, है?
ठीक है, 0 से हमारे आकार बड़ा होता है, बोलो?
कूल.
>> अगर हम करते हैं, तो हम अपने सिर ले जाते हैं, जो मैं बस यहाँ प्रदर्शन किया क्या है.
हम एक अधिक होने के लिए हमारे सिर अद्यतन करें.
और फिर हम घटती हमारे आकार और तत्व वापसी.
>> और अधिक ठोस है study.cs50.net पर कोड,
और मैं अत्यधिक जाने की सिफारिश अगर आप समय है इसके माध्यम से,
यहां तक ​​कि यह सिर्फ एक छद्म कोड है यदि.
और तुम लोग के माध्यम से बात करना चाहते हैं मुझे एक एक पर साथ, मुझे जाने दें कि
पता.
मैं खुशी होगी.
डाटा संरचनाओं, अगर आप सीएस 124 ले, तुम हूँ
डेटा संरचनाओं बहुत मिलता है कि पता मजेदार और यह सिर्फ शुरुआत है.
>> इसलिए मुझे लगता है कि यह मुश्किल है.
यह ठीक है.
हम संघर्ष.
मैं अब भी है.
इसलिए इसके बारे में बहुत ज्यादा चिंता नहीं है.
>> लेकिन यह है कि मूल रूप से अपनी है डेटा संरचनाओं में पाठ्यक्रम दुर्घटना.
मैं यह एक बहुत कुछ है पता है.
वहाँ कुछ भी है कि हम फिर से जाना चाहते हैं?
हम के माध्यम से बात करना चाहते हैं कुछ भी?
हाँ?
>> दर्शक: कि उदाहरण के लिए, तो नई पूंछ कि अधिक 0 पर है?
अध्यक्ष 1: हाँ.
दर्शक: ठीक है.
तो फिर, के माध्यम से जा रहा आप 1 प्लस 4 or-- होगा
>> अध्यक्ष 1: तो आप कह रहे थे, हम जाना चाहते हैं जब फिर से ऐसा करने के?
दर्शक: हाँ.
आप out-- लगाना रहे थे तो कहाँ हैं आप उस में से पूंछ की गणना?
>> अध्यक्ष 1: तो पूंछ मैं इस बदल in-- था.
तो यहाँ इस उदाहरण में, यह था हम ठीक है, पर देख रहे हैं सरणी?
इसलिए हम 1, 2, 3, और 4 में बातें हैं.
इसलिए हम अपने सिर पर 1 के बराबर है इस बिंदु, और हमारे आकार 4 के बराबर है
इस बिंदु पर, सही?
>> आप सभी यह मामला है सहमत हैं?
इसलिए हम सिर से अधिक आकार, जो हमें 5 देता है, और फिर हम 5 से आधुनिक.
हम 0 है कि जो हमें बताता है, 0 मिल जहां हम जगह है जहां हमारी पूंछ, है.
>> दर्शक: एक टोपी क्या है?
>> अध्यक्ष 1: क्षमता.
माफ़ कीजिए.
इसलिए कि आपके सरणी के आकार है.
हाँ?
>> दर्शक: [अश्राव्य] से पहले हम तत्व वापसी?
>> अध्यक्ष 1: तो हम स्थानांतरित सिर या पल वापसी?
हम एक कदम तो, अगर आकार घटती?
रूको.
मैं निश्चित रूप से एक और भूल गया.
कोई बात नहीं.
एक और फार्मूला नहीं है.
हाँ, तुम वापस जाने के लिए चाहते हो जाएगा सिर और फिर इसे वापस ले.
>> दर्शक: ठीक है, क्योंकि इस पर बिंदु, सिर, 0 में था
और फिर तुम वापस करना चाहते हैं सूचकांक 0 और फिर सिर 1 बनाते हैं?
>> अध्यक्ष 1: ठीक है.
मैं एक और लगता है कि वहाँ इस तरह के फार्मूले तरह.
मैं के रूप में शीर्ष पर मेरे सिर यह नहीं है मैं आपको एक गलत देने के लिए नहीं करना चाहती.
लेकिन मैं यह करने के लिए पूरी तरह से वैध है लगता है कहते हैं, ठीक है, यह element-- दुकान जो कुछ भी
सिर के तत्व घटती is-- अपने आकार, अपने सिर पर ले जाते हैं, और वापसी
कि जो भी तत्व है.
यही कारण है कि पूरी तरह से वैध है.
ठीक.
यह नहीं है मुझे लगता है most-- की तरह तुम नहीं हो
यहाँ से बाहर चलने के लिए जा रहा जैसे, हाँ, मैं कोशिश करता है पता है.
मैं यह सब हो गया.
ठीक है.
मैं वादा करता हूं.
लेकिन डेटा संरचनाओं कुछ कर रहे हैं कि यह समय की एक बहुत कुछ करने के लिए इस्तेमाल किया पाने के लिए लेता है.
सबसे मुश्किल का शायद एक चीजें, मैं पाठ्यक्रम में, लगता है.
>> तो यह निश्चित रूप से लेता है पुनरावृत्ति और at-- मैं देख
वास्तव में लिंक सूचियों पता नहीं था मैं उनके साथ अभी तक बहुत ज्यादा किया था जब तक,
उसी तरह है कि मैं नहीं था वास्तव में संकेत समझने
मुझे मिला है जब तक दोनों के लिए यह सिखाने के लिए साल और इसके साथ अपना खुद का psets करते हैं.
यह पुनरावृत्ति और समय की एक बहुत लेता है.
और अंत में, यह एक तरह से क्लिक करेंगे.
>> लेकिन इस बीच में, आप की तरह है अगर के एक उच्च स्तर को समझने की क्या
इन उनके पेशेवर, कर और क्या है जो cons--
हम वास्तव में जोर देती हैं, विशेष रूप से परिचय पाठ्यक्रम में.
की तरह, क्यों हम प्रयोग करेंगे एक एक सरणी से अधिक कोशिश की?
जैसे, सकारात्मक क्या हैं और उन में से प्रत्येक के नकारात्मक?
>> और व्यापार-नापसंद को समझने इन संरचनाओं में से प्रत्येक के बीच
अब ठीक है और अधिक महत्वपूर्ण क्या है.
पागल एक हो सकता है है कि प्रश्न या दो
धक्का को लागू करने के लिए आप से पूछना जा रहा है या पॉप या एन्क्यू और dequeue लागू.
लेकिन सबसे अधिक भाग के लिए, कि होने उच्च स्तर की समझ और अधिक
एक सहज ज्ञान युक्त समझ है की वास्तव में अधिक से अधिक महत्वपूर्ण
इसे लागू करने के लिए सक्षम किया जा रहा.
>> यह वास्तव में भयानक होगा आप सब अगर बाहर जाने के लिए और एक कोशिश को लागू जा सकते हैं,
लेकिन हम यह जरूरी नहीं है समझने सही अब सबसे उचित बात.
लेकिन क्या आप चाहते हैं, तो आपके pset में कर सकते हैं करने के लिए, और उसके बाद आप अभ्यास मिल जाएगा,
और फिर शायद आप करेंगे वास्तव में यह समझते हैं.
हाँ?
>> दर्शक: लोग कर रहे हैं ठीक है, जो इतनी हम pset में उपयोग करने का मतलब?
मैं उनमें से एक का उपयोग करने की आवश्यकता है?
अध्यक्ष 1: हाँ.
तो आप अपनी पसंद है.
मैं, हम कर सकते हैं इस मामले में लगता है pset एक छोटा सा के बारे में बात
मैं इन के माध्यम से भाग गया है.
अपने pset में तो, आप अपने पास कोशिश करता है या हैश तालिकाओं की पसंद है.
कुछ लोगों की कोशिश करेंगे और, खिल फिल्टर का उपयोग
लेकिन उन तकनीकी रूप से सही नहीं हैं.
क्योंकि उनके संभाव्य प्रकृति की, वे कभी कभी झूठी सकारात्मक दे.
उन्होंने हालांकि, में ठंडी लग रही हो.
अत्यधिक देख सिफारिश उन पर कम से कम.
लेकिन अगर आप अपनी पसंद है एक हैश तालिका और एक कोशिश के बीच.
और कहा कि जहां होने जा रहा है आप अपने शब्दकोश में लोड.
>> और आप का चयन करने की आवश्यकता होगी अपने हैश समारोह,
आप कितने चुनने की आवश्यकता होगी आपके पास बाल्टी, और यह अलग-अलग होगा.
आप अधिक बाल्टी है जैसे कि अगर, शायद यह तेजी से चलने देंगे.
लेकिन शायद आप एक बर्बाद कर रहे हैं अंतरिक्ष की बहुत हालांकि इस तरह,.
आप यह समझ से बाहर है.
Mmhmm?
>> दर्शक: तुम कि पहले कहा हम अन्य हैश कार्यों का उपयोग कर सकते हैं,
हम की जरूरत नहीं है कि एक हैश समारोह बना?
>> अध्यक्ष 1: ठीक है, हाँ.
तो सचमुच अपने हैश समारोह के लिए, गूगल की तरह "हैश समारोह"
और कुछ शांत लोगों के लिए देखो.
आप का निर्माण करने की उम्मीद नहीं कर रहे हैं अपने खुद के हैश कार्य करता है.
लोग खर्च करते हैं उनके इन बातों पर शोध करे.
>> तो अपने खुद के निर्माण के बारे में चिंता मत करो.
साथ शुरू करने के लिए एक ऑनलाइन लगाएं.
उनमें से कुछ आप के लिए है एक छोटा सा हेरफेर
बनाने के लिए यकीन है कि वापसी प्रकार अप मैच और whatnot, शुरुआत में तो,
मैं कुछ का उपयोग करना होगा वास्तव में आसान हो सकता है कि बस
पहले अक्षर पर hashes.
और फिर आपको लगता है कि काम किया है एक बार, एक कूलर हैश समारोह को शामिल.
Mmhmm?
>> दर्शक: एक कोशिश करेंगे हो या कुशल लेकिन, like-- को सिर्फ कठिन
>> अध्यक्ष 1: तो एक कोशिश, मुझे लगता है, लागू करने के लिए intuitively मुश्किल है
लेकिन बहुत तेज है.
हालांकि, अधिक स्थान लेता है.
फिर, आप में उन दोनों का अनुकूलन कर सकते हैं अलग अलग तरीकों से और तरीके हैं to--
दर्शक: कैसे हम इस पर वर्गीकृत कर रहे हैं?
यह matter-- है
>> अध्यक्ष 1: तो आप सामान्य तरीके से वर्गीकृत कर रहे हैं.
आप डिजाइन पर वर्गीकृत करने जा रहे हैं.
जो भी आप करते हैं जिस तरह, आप करना चाहते हैं यह हो सकता है के रूप में यह रूप में सुंदर है बनाना
और के रूप में कुशल हो सकता है के रूप में.
लेकिन अगर आप एक कोशिश या हैश चुनते हैं मेज, जब तक यह काम करता है, के रूप में
हम उस के साथ खुश हैं.
आप कुछ प्रयोग और अगर उस hashes पहले अक्षर पर, कि, ठीक है
जैसे शायद डिजाइन के लिहाज से पसंद है.
हम भी तक पहुंच रहे हैं इस semester-- में बिंदु
मैं नहीं जानता कि आप अगर यदि आप noticed-- लोग
pset ग्रेड एक छोटा सा गिरावट क्योंकि डिजाइन और whatnot की,
कि पूरी तरह से ठीक है.
यह एक बात करने के लिए हो रही है, जहां आपके कार्यक्रमों के और अधिक जटिल हो रही है.
अधिक स्थानों रहे हैं आप पर सुधार कर सकते हैं.
>> तो यह पूरी तरह से सामान्य है.
यह आप कर रहे हैं कि नहीं है अपने pset पर भी बुरा कर रहे हैं.
यह सिर्फ हम अब आप पर कठिन हो जा रहा है.
तो हर कोई यह महसूस कर रही है.
मैं सिर्फ अपने सभी psets वर्गीकृत.
मैं हर किसी को यह लग रहा है पता है.
>> तो उस के बारे में चिंतित नहीं है.
और आप के बारे में कोई प्रश्न हैं पूर्व psets या आप में सुधार कर सकते हैं,
मैं कोशिश करते हैं और विशिष्ट टिप्पणी स्थानों है, लेकिन कभी कभी यह देर हो चुकी है
और मैं थक गया हूँ.
किसी भी अन्य बातें हैं के बारे में डेटा संरचनाओं?
मैं तुम लोगों को वास्तव में नहीं है यकीन अब उनके बारे में बात करना चाहता हूँ,
अगर वहाँ रहे हैं लेकिन, मैं खुश हूँ कुछ भी है, साथ ही उन पर जाना
व्याख्यान इस अतीत से सप्ताह या पिछले हफ्ते.
>> मैं तो, पिछले सप्ताह सभी की समीक्षा था पता हम कुछ समीक्षा पर छोड़ दिया हो सकता है
व्याख्यान से.
मैं जवाब कर सकते हैं किसी भी अन्य प्रश्न?
ठीक है, ठीक है.
खैर, तुम लोगों को जल्दी 15 मिनट चले जाओ.
>> मैं यह कम से कम सेमीफाइनल में मददगार थे आशा और मैं अगले हफ्ते आप लोग देखेंगे,
या गुरुवार कार्यालय समय.
नाश्ते के लिए वहाँ अनुरोध कर रहे हैं अगले सप्ताह के लिए, यह बात है?
मैं आज कैंडी भूल गया है.
और मैं पिछले कैंडी लाया सप्ताह, लेकिन यह, कोलंबस दिवस था
इसलिए छह लोगों की तरह वहाँ कौन थे खुद को कैंडी के चार बैग था.
मैं starbursts ला सकता है आप की तरह फिर यदि.
Starbursts?
ठीक है, अच्छा लगता है.
एक महान दिन लोग है.