1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:05,120 [संगीत खेल] 3 00:00:05,120 --> 00:00:12,026 4 00:00:12,026 --> 00:00:12,900 अध्यक्ष 1: सब ठीक है. 5 00:00:12,900 --> 00:00:14,600 हर कोई वापस अनुभाग में आपका स्वागत है. 6 00:00:14,600 --> 00:00:18,660 मैं आप सभी को सफलतापूर्वक कर रहे हैं आशा अपने प्रश्नोत्तरी से बरामद 7 00:00:18,660 --> 00:00:19,510 पिछले सप्ताह से. 8 00:00:19,510 --> 00:00:22,564 मैं इसे समय पर थोड़ा सा पागल है पता है. 9 00:00:22,564 --> 00:00:25,230 आप कर रहे हैं, अगर मैं पहले कह रहा था मानक विचलन के भीतर, 10 00:00:25,230 --> 00:00:28,188 वास्तव में, विशेष रूप से, इसके बारे में चिंता मत करो एक कम आराम अनुभाग के लिए. 11 00:00:28,188 --> 00:00:30,230 यही कारण है कि आप जहां होना चाहिए के बारे में है. 12 00:00:30,230 --> 00:00:32,850 >> आप तो कमाल, महान किया है. 13 00:00:32,850 --> 00:00:33,650 आप के लिए यश. 14 00:00:33,650 --> 00:00:36,149 और अगर आपको लगता है कि आप की जरूरत है थोड़ा और अधिक मदद, कृपया 15 00:00:36,149 --> 00:00:38,140 तक पहुँचने के लिए स्वतंत्र महसूस TFS में से किसी को बाहर. 16 00:00:38,140 --> 00:00:40,030 हम सब यहाँ मदद करने के लिए कर रहे हैं. 17 00:00:40,030 --> 00:00:40,960 >> हम सिखाने यही कारण है कि. 18 00:00:40,960 --> 00:00:44,550 मैं तुम्हारे लिए यहाँ हर सोमवार हूँ यही कारण है कि गुरुवार को लोगों और कार्यालय में घंटे. 19 00:00:44,550 --> 00:00:48,130 इसलिए मुझे यह बताने के लिए स्वतंत्र महसूस कृपया आप कुछ के बारे में चिंतित हैं 20 00:00:48,130 --> 00:00:52,450 या प्रश्नोत्तरी पर अगर कुछ भी नहीं है कि क्या तुम सच में पता करने के लिए करना चाहते हैं. 21 00:00:52,450 --> 00:00:56,940 >> तो आज के लिए एजेंडा है सभी डेटा संरचनाओं के बारे में. 22 00:00:56,940 --> 00:01:01,520 इनमें से कुछ अभी सिर्फ होने जा रहे हैं आप इन के साथ परिचित पाने के लिए. 23 00:01:01,520 --> 00:01:04,870 आप कभी लागू नहीं हो सकता इस वर्ग में उन्हें. 24 00:01:04,870 --> 00:01:08,690 आप करेंगे उनमें से कुछ, अपने वर्तनीकार pset के लिए की तरह. 25 00:01:08,690 --> 00:01:11,380 >> आप अपनी पसंद होगा हैश तालिकाओं और कोशिश करता है के बीच. 26 00:01:11,380 --> 00:01:13,680 तो हम निश्चित रूप से उन पर जा रहा हूँ. 27 00:01:13,680 --> 00:01:18,690 यह एक तरह से निश्चित रूप से अधिक होने जा रहा है एक उच्च स्तरीय खंड की आज, हालांकि, 28 00:01:18,690 --> 00:01:22,630 क्योंकि उन्हें वहाँ की एक बहुत हैं, और अगर हम कार्यान्वयन के विवरण में चला गया 29 00:01:22,630 --> 00:01:26,490 इन सब पर, हम नहीं होगा यहां तक ​​कि लिंक सूचियों के माध्यम से प्राप्त 30 00:01:26,490 --> 00:01:28,520 और शायद हैश तालिकाओं का एक छोटा सा. 31 00:01:28,520 --> 00:01:31,200 >> तो मेरे साथ सहन. 32 00:01:31,200 --> 00:01:33,530 हम क्या कर रही हो नहीं जा रहे हैं के रूप में ज्यादा इस बार कोडिंग. 33 00:01:33,530 --> 00:01:36,870 आप इसके बारे में किसी भी सवाल है, तो या आप इसे लागू देखना चाहते हैं 34 00:01:36,870 --> 00:01:39,260 या खुद के लिए कोशिश, मैं निश्चित रूप से की सिफारिश 35 00:01:39,260 --> 00:01:44,250 , study.cs50.net करने जा रहा है जो इन सब का उदाहरण है. 36 00:01:44,250 --> 00:01:46,400 यह मेरी PowerPoints होगा नोटों के साथ कि हम 37 00:01:46,400 --> 00:01:50,860 कुछ प्रोग्रामिंग के रूप में भी इस्तेमाल करते हैं व्यायाम, विशेष रूप से चीजों के लिए 38 00:01:50,860 --> 00:01:55,250 लिंक सूचियों और द्विआधारी की तरह पेड़ों के ढेर और cues. 39 00:01:55,250 --> 00:01:59,590 तो थोड़ा अधिक उच्च स्तर, जो आप लोगों के लिए अच्छा हो सकता है. 40 00:01:59,590 --> 00:02:01,320 >> उस के साथ तो, हम शुरू हो जाएगी. 41 00:02:01,320 --> 00:02:03,060 और यह भी, yes-- क्विज़. 42 00:02:03,060 --> 00:02:06,550 मैं में हैं जो आप में से अधिकांश लगता है मेरे अनुभाग, आपके क्विज़ है 43 00:02:06,550 --> 00:02:12,060 लेकिन किसी को या किसी कारण में आता है आप नहीं है, वे यहीं सामने हो. 44 00:02:12,060 --> 00:02:12,740 >> तो सूचियों जुड़े. 45 00:02:12,740 --> 00:02:15,650 चला जाता है की मैं इस तरह पता अपने प्रश्नोत्तरी से पहले वापस करने के लिए. 46 00:02:15,650 --> 00:02:17,940 यही कारण है कि पहले सप्ताह था हम इस बारे में सीखा है. 47 00:02:17,940 --> 00:02:21,040 लेकिन इस मामले में, हम सिर्फ हूँ गहराई में एक छोटा सा और जाना. 48 00:02:21,040 --> 00:02:25,900 >> तो क्यों न हम एक चुन सकते हैं एक सरणी से अधिक सूची जुड़ा हुआ? 49 00:02:25,900 --> 00:02:27,130 उन्हें क्या अलग है? 50 00:02:27,130 --> 00:02:27,630 हाँ? 51 00:02:27,630 --> 00:02:30,464 >> दर्शक: आप का विस्तार कर सकते हैं एक लिंक एक सरणी के निश्चित आकार बनाम सूची. 52 00:02:30,464 --> 00:02:31,171 अध्यक्ष 1: ठीक है. 53 00:02:31,171 --> 00:02:33,970 एक सरणी एक जबकि आकार तय किया गया है लिंक सूची एक चर आकार की है. 54 00:02:33,970 --> 00:02:36,970 हम नहीं जानते कि अगर तो कैसे जितना हम संग्रहीत करना चाहते हैं, 55 00:02:36,970 --> 00:02:39,880 एक लिंक सूची हमें एक महान देता है तरीके से करना है कि हम सिर्फ यह कर सकते हैं क्योंकि 56 00:02:39,880 --> 00:02:43,730 अन्य नोड पर जोड़ सकते हैं और पर जोड़ अन्य नोड और एक अन्य नोड पर जोड़ें. 57 00:02:43,730 --> 00:02:45,750 लेकिन क्या एक व्यापार बंद हो सकता है? 58 00:02:45,750 --> 00:02:49,521 किसी को व्यापार बंद याद करता है सरणियों और लिंक सूचियों के बीच? 59 00:02:49,521 --> 00:02:50,020 Mmhmm? 60 00:02:50,020 --> 00:02:51,460 >> दर्शक: आप के लिए है सभी तरह के माध्यम से जाना 61 00:02:51,460 --> 00:02:53,738 लिंक की गई सूची के माध्यम से एक सूची में एक तत्व हैं. 62 00:02:53,738 --> 00:02:55,570 एक सरणी में, आप कर सकते हैं सिर्फ एक तत्व हैं. 63 00:02:55,570 --> 00:02:56,278 >> अध्यक्ष 1: ठीक है. 64 00:02:56,278 --> 00:02:57,120 तो arrays-- साथ 65 00:02:57,120 --> 00:02:58,500 >> दर्शक: [अश्राव्य]. 66 00:02:58,500 --> 00:03:01,090 >> अध्यक्ष 1: सरणियों के साथ, हम क्या रैंडम एक्सेस कहा जाता है. 67 00:03:01,090 --> 00:03:04,820 हम चाहते हैं कि क्या इसका मतलब है कि एक सूची का कभी पांचवें बिंदु 68 00:03:04,820 --> 00:03:07,230 या के पांचवें बिंदु हमारे सरणी, हम सिर्फ यह हड़पने कर सकते हैं. 69 00:03:07,230 --> 00:03:10,440 यह एक लिंक सूची है, तो हमारे पास है ठीक है, के माध्यम से पुनरावृति करने के लिए? 70 00:03:10,440 --> 00:03:14,020 इसलिए एक तत्व में पहुँचने एक सरणी, निरंतर समय है 71 00:03:14,020 --> 00:03:19,530 यह होगा एक लिंक की गई सूची के साथ, जबकि सबसे अधिक संभावना है, क्योंकि शायद रैखिक समय हो 72 00:03:19,530 --> 00:03:21,370 हमारे तत्व अंत में सभी तरह है. 73 00:03:21,370 --> 00:03:23,446 हम सब कुछ के माध्यम से खोज करने के लिए. 74 00:03:23,446 --> 00:03:25,320 इन सभी डेटा के साथ तो हम जा रहे हैं संरचनाओं 75 00:03:25,320 --> 00:03:29,330 पर थोड़ा और अधिक समय खर्च हो, pluses और नकारात्मक क्या कर रहे हैं. 76 00:03:29,330 --> 00:03:31,480 हम चाहते हो सकता है जब एक दूसरे के ऊपर का उपयोग करें? 77 00:03:31,480 --> 00:03:34,970 और उस की तरह है बड़ा बात दूर ले जाना. 78 00:03:34,970 --> 00:03:40,140 >> तो हम यहाँ है एक नोड की परिभाषा. 79 00:03:40,140 --> 00:03:43,040 यह एक तत्व में की तरह है हमारे लिंक सूची, है ना? 80 00:03:43,040 --> 00:03:46,180 तो हम सभी परिचित हैं हमारे typedef structs साथ, 81 00:03:46,180 --> 00:03:47,980 हम पिछली बार की समीक्षा में खत्म हो गया था जो. 82 00:03:47,980 --> 00:03:53,180 बस बनाने यह मूल रूप से किया गया था हम इस्तेमाल कर सकते हैं कि एक और डेटा प्रकार. 83 00:03:53,180 --> 00:03:57,930 >> और इस मामले में, यह कुछ नोड है उस में कुछ पूर्णांक का आयोजन करेगा. 84 00:03:57,930 --> 00:04:00,210 और फिर दूसरा भाग यहाँ क्या हो रहा है? 85 00:04:00,210 --> 00:04:03,192 86 00:04:03,192 --> 00:04:05,677 कोई है? 87 00:04:05,677 --> 00:04:06,680 >> दर्शक: [अश्राव्य]. 88 00:04:06,680 --> 00:04:07,020 >> अध्यक्ष 1: हाँ. 89 00:04:07,020 --> 00:04:08,400 यह अगले नोड के लिए एक संकेत है. 90 00:04:08,400 --> 00:04:12,610 तो यह वास्तव में यहाँ होना चाहिए. 91 00:04:12,610 --> 00:04:18,790 इस प्रकार का एक सूचक है अगली बात के लिए नोड. 92 00:04:18,790 --> 00:04:22,410 और कि क्या वे हमारे नोड शामिल हैं. 93 00:04:22,410 --> 00:04:24,060 कूल. 94 00:04:24,060 --> 00:04:29,390 >> खोज के साथ सब ठीक है, तो, हम थे अगर तुम सिर्फ हाथ से पहले कह 95 00:04:29,390 --> 00:04:31,840 के माध्यम से खोज करने के लिए जा रहा है, आप वास्तव में पुनरावृति करने के लिए है 96 00:04:31,840 --> 00:04:33,660 आपके लिंक की गई सूची के माध्यम से. 97 00:04:33,660 --> 00:04:38,530 हम संख्या के लिए देख रहे हैं तो 9, हम अपने सिर पर शुरू होगा 98 00:04:38,530 --> 00:04:41,520 और कि शुरुआत में हमें बताते हैं हमारे लिंक की गई सूची की, है ना? 99 00:04:41,520 --> 00:04:44,600 और हम ठीक है, इस करता है, का कहना है नोड संख्या 9 होते हैं? 100 00:04:44,600 --> 00:04:45,690 कोई? 101 00:04:45,690 --> 00:04:47,500 >> सब ठीक है, अगले एक के पास जाओ. 102 00:04:47,500 --> 00:04:48,312 यह पालन करें. 103 00:04:48,312 --> 00:04:49,520 यह संख्या 9 होते हैं? 104 00:04:49,520 --> 00:04:50,570 नहीं. 105 00:04:50,570 --> 00:04:51,550 अगले एक का पालन करें. 106 00:04:51,550 --> 00:04:55,490 >> इसलिए हम वास्तव में पुनरावृति करने के लिए है हमारे लिंक की गई सूची के माध्यम से. 107 00:04:55,490 --> 00:05:00,070 हम सिर्फ 9 जहां सीधे नहीं जा सकते. 108 00:05:00,070 --> 00:05:05,860 और तुम लोग वास्तव में करना चाहते हैं वहाँ कुछ छद्म कोड ऊपर देखते हैं. 109 00:05:05,860 --> 00:05:10,420 हम यहां कुछ खोज समारोह कि उस में ले करता है क्या in-- लेता है? 110 00:05:10,420 --> 00:05:13,110 111 00:05:13,110 --> 00:05:14,320 आपको क्या लगता है? 112 00:05:14,320 --> 00:05:15,960 तो आसान है. 113 00:05:15,960 --> 00:05:17,784 ये क्या है? 114 00:05:17,784 --> 00:05:18,700 दर्शक: [अश्राव्य]. 115 00:05:18,700 --> 00:05:20,366 अध्यक्ष 1: हम देख रहे हैं संख्या. 116 00:05:20,366 --> 00:05:20,980 है ना? 117 00:05:20,980 --> 00:05:22,875 और क्या इस के अनुरूप होगा? 118 00:05:22,875 --> 00:05:25,020 यह करने के लिए एक सूचक है? 119 00:05:25,020 --> 00:05:26,000 >> दर्शकों: एक नोड. 120 00:05:26,000 --> 00:05:28,980 >> अध्यक्ष 1: सूची में एक नोड हम सही, पर देख रहे हैं कि? 121 00:05:28,980 --> 00:05:33,700 इसलिए हम कुछ नोड्स यहां सूचक हैं. 122 00:05:33,700 --> 00:05:37,240 यह जा रहा है कि एक बिंदु है वास्तव में हमारी सूची के माध्यम से पुनरावृति. 123 00:05:37,240 --> 00:05:39,630 हम सूची में बराबर सेट सिर्फ है कि क्योंकि 124 00:05:39,630 --> 00:05:44,380 यह करने के लिए बराबर की स्थापना हमारे लिंक की गई सूची में से शुरू करते हैं. 125 00:05:44,380 --> 00:05:50,660 >> और यह नल नहीं है, जबकि हम अभी भी हमारी सूची में बातें है 126 00:05:50,660 --> 00:05:55,580 कि नोड है देखने के लिए जाँच हम देख रहे हैं संख्या. 127 00:05:55,580 --> 00:05:57,740 सच लौटें. 128 00:05:57,740 --> 00:06:01,070 अन्यथा, सही, यह अद्यतन? 129 00:06:01,070 --> 00:06:04,870 >> यह रिक्त है, तो हम बाहर निकलने हमारे जबकि पाश और झूठी वापसी 130 00:06:04,870 --> 00:06:08,340 इसका मतलब है कि क्योंकि हम यह पता नहीं चला है. 131 00:06:08,340 --> 00:06:11,048 हर कोई यह कैसे काम करता मिलता है? 132 00:06:11,048 --> 00:06:11,548 ठीक. 133 00:06:11,548 --> 00:06:14,940 134 00:06:14,940 --> 00:06:20,260 >> आप, प्रविष्टि के साथ तो तीन अलग अलग तरीके हैं. 135 00:06:20,260 --> 00:06:25,250 आप आप संलग्न कर सकते हैं, पहले जोड़ें कर सकते हैं मिश्रित में और आप सम्मिलित कर सकते हैं. 136 00:06:25,250 --> 00:06:28,215 इस मामले में, हम कर रहे हैं एक प्रीपेंड क्या करने जा रहा. 137 00:06:28,215 --> 00:06:33,380 किसी को भी कैसे उन जानती है तीन मामलों में अलग हो सकता है? 138 00:06:33,380 --> 00:06:36,920 >> तो पहले जोड़ें डाल का मतलब है कि यह अपनी सूची के मोर्चे पर. 139 00:06:36,920 --> 00:06:39,770 तो मतलब यह होगा कि कोई फर्क नहीं पड़ता कि अपने नोड, कोई बात नहीं है क्या 140 00:06:39,770 --> 00:06:43,160 मूल्य क्या है, आप जा रहे हैं ठीक है, सामने यहीं रखा करने के लिए? 141 00:06:43,160 --> 00:06:45,160 यह पहली बार होने जा रहा है अपनी सूची में तत्व. 142 00:06:45,160 --> 00:06:49,510 >> आप इसे संलग्न हैं, तो यह जा रहा है अपनी सूची के वापस जाने के लिए. 143 00:06:49,510 --> 00:06:54,010 और मिश्रित आप कर रहे हैं इसका मतलब में डालने जगह में वास्तव में डाला जा रहा 144 00:06:54,010 --> 00:06:57,700 यह रहता है जहां आपके लिंक की गई सूची के अनुसार छाँटे गए. 145 00:06:57,700 --> 00:07:00,810 फिर, आप कैसे उपयोग उन और जब आप का उपयोग 146 00:07:00,810 --> 00:07:02,530 उन्हें अपने मामले के आधार पर अलग अलग होंगे. 147 00:07:02,530 --> 00:07:05,834 148 00:07:05,834 --> 00:07:07,750 यह करने की जरूरत नहीं है, तो हल किया जाना, पहले जोड़ें आदत 149 00:07:07,750 --> 00:07:10,460 क्या ज्यादातर लोगों के होने की तुम नहीं करते क्योंकि उपयोग 150 00:07:10,460 --> 00:07:15,680 पूरी सूची के माध्यम से जाना है ठीक है, उस पर जोड़ने के लिए अंत खोजने के लिए? 151 00:07:15,680 --> 00:07:17,720 तुम सिर्फ सही में यह छड़ी कर सकते हैं. 152 00:07:17,720 --> 00:07:21,930 >> इसलिए हम एक के माध्यम से जाना जाएगा प्रविष्टि 1 अभी. 153 00:07:21,930 --> 00:07:26,360 मैं जा रहा हूँ तो यह है कि एक बात अत्यधिक इस pset पर की सिफारिश 154 00:07:26,360 --> 00:07:29,820 हमेशा की तरह, चीजें बाहर आकर्षित करने के लिए है. 155 00:07:29,820 --> 00:07:35,130 आप अद्यतन कि यह बहुत महत्वपूर्ण है सही क्रम में अपने संकेत 156 00:07:35,130 --> 00:07:38,620 आप उन्हें अद्यतन क्योंकि अगर थोड़ा आदेश से बाहर है, 157 00:07:38,620 --> 00:07:42,210 आप को समाप्त करने के लिए जा रहे हैं अपनी सूची के कुछ हिस्सों को खोने. 158 00:07:42,210 --> 00:07:49,680 >> तो उदाहरण के लिए, इस मामले में, हम कर रहे हैं 1 के लिए सिर्फ बात करने के लिए सिर कह रहा. 159 00:07:49,680 --> 00:07:56,070 हम सिर्फ इतना है कि करते हैं इस 1 बचत के बिना, 160 00:07:56,070 --> 00:07:58,570 हम कोई पता नहीं है क्या 1 अब करने के लिए बात करनी चाहिए 161 00:07:58,570 --> 00:08:02,490 हम खो दिया है क्योंकि क्या सिर की ओर इशारा किया. 162 00:08:02,490 --> 00:08:05,530 तो एक बात याद करने के लिए जब आप एक प्रीपेंड कर रहे हैं 163 00:08:05,530 --> 00:08:09,630 क्या बचा है पहली करने के लिए सिर अंक, 164 00:08:09,630 --> 00:08:15,210 तो यह पुन: असाइन करें, और उसके बाद अद्यतन क्या आपके नए नोड के लिए कहना चाहिए. 165 00:08:15,210 --> 00:08:20,870 166 00:08:20,870 --> 00:08:22,560 इस मामले में, यह ऐसा करने का एक तरीका है. 167 00:08:22,560 --> 00:08:25,440 >> हम इसे इस तरह से किया था तो अगर जहां हम सिर्फ सिर reassigned 168 00:08:25,440 --> 00:08:30,320 हम मूल रूप से हमारे खोना पूरी सूची है, है ना? 169 00:08:30,320 --> 00:08:38,000 यह करने के लिए एक तरह से करने के लिए 1 बिंदु है अगले, और फिर 1 के लिए सिर बिंदु है. 170 00:08:38,000 --> 00:08:42,650 या फिर आप की तरह की तरह कर सकते हैं मैं के बारे में बात की थी, जो अस्थायी भंडारण,. 171 00:08:42,650 --> 00:08:45,670 >> लेकिन तुम्हारी फिर नियत सही क्रम में संकेत 172 00:08:45,670 --> 00:08:48,750 बहुत, बहुत होने जा रहा है इस pset के लिए महत्वपूर्ण. 173 00:08:48,750 --> 00:08:53,140 अन्यथा, आप एक हैश लिए जा रहे हैं तालिका या सिर्फ होने जा रहा है कि एक कोशिश 174 00:08:53,140 --> 00:08:56,014 शब्द का ही हिस्सा है कि आप you're-- Mmhmm ​​तो चाहते हैं और? 175 00:08:56,014 --> 00:08:58,930 दर्शक: अस्थायी क्या था भंडारण बात आप के बारे में बात कर रहे थे? 176 00:08:58,930 --> 00:09:00,305 अध्यक्ष 1: अस्थायी भंडारण. 177 00:09:00,305 --> 00:09:02,760 तो बुनियादी तौर पर एक और आप यह कर सकते हैं रास्ता 178 00:09:02,760 --> 00:09:07,650 जैसे, कुछ के सिर की दुकान है यह अस्थायी चर की दुकान. 179 00:09:07,650 --> 00:09:11,250 1 को आवंटित और तो बात करने के लिए 1 अद्यतन 180 00:09:11,250 --> 00:09:13,830 जो कुछ भी करने के लिए सिर को इंगित करने के लिए प्रयोग किया जाता है. 181 00:09:13,830 --> 00:09:16,920 इस तरह से जाहिर है अधिक सुरुचिपूर्ण आप क्योंकि 182 00:09:16,920 --> 00:09:20,770 एक अस्थायी मूल्य की जरूरत नहीं है, लेकिन बस यह करने के लिए एक और रास्ता पेशकश. 183 00:09:20,770 --> 00:09:23,999 184 00:09:23,999 --> 00:09:25,790 और हम वास्तव में क्या करना है इस के लिए कुछ कोड. 185 00:09:25,790 --> 00:09:28,080 लिंक की गई सूची के लिए तो, हम वास्तव में कुछ कोड है. 186 00:09:28,080 --> 00:09:31,930 तो इस prepending है, यहां डालें. 187 00:09:31,930 --> 00:09:34,290 तो यह सिर में प्रवेश करती है. 188 00:09:34,290 --> 00:09:38,820 >> तो पहली बात, आप की जरूरत है जाहिर है, अपने नए नोड बनाने, 189 00:09:38,820 --> 00:09:40,790 और बातिल के लिए जाँच करें. 190 00:09:40,790 --> 00:09:43,250 हमेशा अच्छा. 191 00:09:43,250 --> 00:09:47,840 और फिर आप मूल्य प्रदान करने की आवश्यकता है. 192 00:09:47,840 --> 00:09:51,260 जब भी आप, आप एक नया नोड बनाने यह अगले की ओर इशारा कर रहा है पता नहीं क्या, 193 00:09:51,260 --> 00:09:54,560 तो आप अशक्त करने के लिए इसे प्रारंभ करने में चाहते हैं. 194 00:09:54,560 --> 00:09:58,760 यह कुछ ओर इशारा करते हुए अंत करता है वरना, यह फिर नियत और यह ठीक है हो जाता है. 195 00:09:58,760 --> 00:10:00,740 यह पहली बात है सूची में, यह जरूरत 196 00:10:00,740 --> 00:10:04,270 क्योंकि अशक्त करने के लिए बात करने के लिए उस सूची के अंत में है. 197 00:10:04,270 --> 00:10:12,410 >> तो फिर यह सम्मिलित करने के लिए, हम हम यहाँ देखें हमारे नोड के अगले मूल्य बताए हैं 198 00:10:12,410 --> 00:10:17,380 सिर जो कुछ भी हो, जो हम यहाँ क्या किया है. 199 00:10:17,380 --> 00:10:19,930 यही कारण है कि हम अभी क्या किया है. 200 00:10:19,930 --> 00:10:25,820 और फिर हम बात करने के लिए सिर बताए रहे हमारे नए नोड के लिए, याद है, क्योंकि 201 00:10:25,820 --> 00:10:31,090 नई, एक नोड के लिए कुछ सूचक है और कहा कि वास्तव में सिर में है. 202 00:10:31,090 --> 00:10:34,370 यह ठीक है कि हम क्यों है इस तीर उपसाधन है. 203 00:10:34,370 --> 00:10:37,030 204 00:10:37,030 --> 00:10:37,530 कूल? 205 00:10:37,530 --> 00:10:38,130 Mmhmm? 206 00:10:38,130 --> 00:10:41,100 >> दर्शक: हम करने के लिए है पहले अशक्त करने के लिए नए अगले इनिशियलाइज़, 207 00:10:41,100 --> 00:10:44,240 या हम सिर्फ सिर को को प्रारंभ कर सकते हैं? 208 00:10:44,240 --> 00:10:48,210 >> अध्यक्ष 1: अगले नई शुरू करने के लिए रिक्त होने की जरूरत 209 00:10:48,210 --> 00:10:53,760 आप नहीं जानते क्योंकि जहां यह होने जा रहा है. 210 00:10:53,760 --> 00:10:56,100 इसके अलावा, इस तरह की है सिर्फ एक प्रतिमान पसंद है. 211 00:10:56,100 --> 00:10:59,900 आप यह शून्य के बराबर सिर्फ बनाने के लिए सेट सुनिश्चित करें कि सभी अपने ठिकानों को कवर कर रहे हैं कि 212 00:10:59,900 --> 00:11:04,070 तुम इतना है कि किसी भी reassignment पहले आप हमेशा यह होगा कि गारंटी हो 213 00:11:04,070 --> 00:11:08,880 एक विशिष्ट मूल्य की ओर इशारा किया एक कचरा मूल्य की तरह बनाम. 214 00:11:08,880 --> 00:11:12,210 हाँ, हम आवंटित, क्योंकि स्वचालित रूप से अगले नया, 215 00:11:12,210 --> 00:11:15,420 लेकिन यह सिर्फ एक तरह अधिक है अच्छा अभ्यास इसे प्रारंभ करने में 216 00:11:15,420 --> 00:11:19,270 उस रास्ते में और फिर पुन: असाइन. 217 00:11:19,270 --> 00:11:23,420 >> ठीक है, तो दोगुना अब सूचियों जुड़े. 218 00:11:23,420 --> 00:11:24,601 हम क्या सोचते हैं? 219 00:11:24,601 --> 00:11:26,350 क्या साथ अलग है दोगुना सूचियों जुड़ा हुआ? 220 00:11:26,350 --> 00:11:30,750 221 00:11:30,750 --> 00:11:34,300 >> इसलिए हमारे लिंक सूचियों में, हम कर सकते हैं केवल सही, एक दिशा में कदम? 222 00:11:34,300 --> 00:11:35,270 हम केवल अगले है. 223 00:11:35,270 --> 00:11:36,760 हम केवल आगे जा सकते हैं. 224 00:11:36,760 --> 00:11:40,300 >> एक दोगुना लिंक की गई सूची के साथ, हम भी पीछे की ओर ले जा सकते हैं. 225 00:11:40,300 --> 00:11:44,810 इसलिए हम न केवल हम संग्रहीत करना चाहते हैं कि संख्या, 226 00:11:44,810 --> 00:11:50,110 यह अगले करने के लिए अंक जहां हम हैं और हम अभी कहाँ से आया. 227 00:11:50,110 --> 00:11:52,865 तो इस बात के लिए अनुमति देता है कुछ बेहतर चंक्रमण. 228 00:11:52,865 --> 00:11:56,620 229 00:11:56,620 --> 00:12:01,240 >> तो दोगुना जुड़े हुए नोड्स, बहुत समान, है ना? 230 00:12:01,240 --> 00:12:05,000 फर्क सिर्फ इतना है कि हम अब है एक अगले और पिछले एक है. 231 00:12:05,000 --> 00:12:06,235 यह फर्क सिर्फ इतना है. 232 00:12:06,235 --> 00:12:09,570 233 00:12:09,570 --> 00:12:14,790 >> हम थे तो पहले जोड़ें या append-- हम करने के लिए here-- इस के लिए कोई कोड नहीं है 234 00:12:14,790 --> 00:12:17,830 लेकिन आप कोशिश कर रहे थे और महत्वपूर्ण बात यह डालें 235 00:12:17,830 --> 00:12:19,980 तुम बनाने की जरूरत है सुनिश्चित करें कि आप बताए रहे 236 00:12:19,980 --> 00:12:23,360 दोनों अपने पिछले और अपने सही ढंग से अगले सूचक. 237 00:12:23,360 --> 00:12:29,010 तो इस मामले में, आप होगा केवल अगले प्रारंभ नहीं, 238 00:12:29,010 --> 00:12:31,820 आप पिछले इनिशियलाइज़. 239 00:12:31,820 --> 00:12:36,960 हम सूची के सिर पर हैं, तो हम सिर बराबर नया बनाना होगा न केवल, 240 00:12:36,960 --> 00:12:41,750 लेकिन हमारी नई पिछले चाहिए सही, सिर को इंगित? 241 00:12:41,750 --> 00:12:43,380 >> यही फर्क सिर्फ इतना है. 242 00:12:43,380 --> 00:12:47,200 और आप के साथ और अधिक अभ्यास चाहते हैं डालने के साथ जुड़े हुए सूचियों के साथ इन, 243 00:12:47,200 --> 00:12:49,900 डालने के साथ, हटाने के साथ एक मिश्रित सूची में, 244 00:12:49,900 --> 00:12:52,670 study.cs50.net बाहर की जाँच करें. 245 00:12:52,670 --> 00:12:54,870 महान अभ्यास का एक गुच्छा है. 246 00:12:54,870 --> 00:12:55,870 मैं अत्यधिक उन्हें सलाह देते हैं. 247 00:12:55,870 --> 00:12:59,210 मुझे लगता है हम उन के माध्यम से जाने के लिए समय था लेकिन डेटा संरचनाओं का एक बहुत कुछ है 248 00:12:59,210 --> 00:13:01,530 के माध्यम से प्राप्त करने के लिए. 249 00:13:01,530 --> 00:13:02,650 >> ठीक है, हैश तालिकाओं तो. 250 00:13:02,650 --> 00:13:07,070 यह शायद सबसे अधिक है अपने pset के लिए उपयोगी बिट 251 00:13:07,070 --> 00:13:11,090 यहाँ आप हो जा रहे हैं क्योंकि इन में से एक, या एक कोशिश को लागू करने. 252 00:13:11,090 --> 00:13:12,200 मैं वास्तव में हैश तालिकाओं पसंद है. 253 00:13:12,200 --> 00:13:13,110 वे बहुत अच्छा कर रहे हैं. 254 00:13:13,110 --> 00:13:17,080 >> तो बुनियादी तौर पर क्या होता है एक हैश तालिका है 255 00:13:17,080 --> 00:13:22,050 हम वास्तव में तेजी की जरूरत है जब है प्रविष्टि, विलोपन, और देखने का. 256 00:13:22,050 --> 00:13:25,010 उन हम कर रहे हैं कि बातें कर रहे हैं एक हैश तालिका में प्राथमिकता. 257 00:13:25,010 --> 00:13:29,500 वे बहुत बड़ा प्राप्त कर सकते हैं लेकिन हम कोशिश करता है के साथ देखेंगे के रूप में, 258 00:13:29,500 --> 00:13:33,040 बहुत बड़ा कर रहे हैं कि बातें कर रहे हैं. 259 00:13:33,040 --> 00:13:38,330 >> लेकिन मूल रूप से, सभी एक हैश तालिका एक हैश समारोह है 260 00:13:38,330 --> 00:13:47,215 कि प्रत्येक डालने के लिए जो बाल्टी आपको बताता है अपने डेटा की, में अपने तत्वों में से प्रत्येक. 261 00:13:47,215 --> 00:13:51,140 एक आसान तरीका एक हैश तालिका के बारे में सोचना यह सिर्फ बातें की बाल्टी है कि है, 262 00:13:51,140 --> 00:13:51,770 सही? 263 00:13:51,770 --> 00:13:59,720 आप से बातें छंटाई कर रहे हैं तो जब उनके नाम के पहले अक्षर की तरह, 264 00:13:59,720 --> 00:14:01,820 उस तरह का एक हैश तालिका की तरह है. 265 00:14:01,820 --> 00:14:06,180 >> मैं समूह के लिए गए थे तो तुम लोग है के नाम से शुरू होता है जो कोई भी के समूहों में 266 00:14:06,180 --> 00:14:11,670 यहाँ पर एक साथ, या जन्मदिन जो कोई भी है जनवरी, फरवरी, मार्च में है 267 00:14:11,670 --> 00:14:15,220 जो भी हो, कि प्रभावी ढंग से है एक हैश तालिका बनाने. 268 00:14:15,220 --> 00:14:18,120 यह सिर्फ बाल्टी पैदा कर रहा है कि आप में अपने तत्वों को सॉर्ट 269 00:14:18,120 --> 00:14:19,520 आप उन्हें आसानी से मिल सकते हैं. 270 00:14:19,520 --> 00:14:22,300 मैं चाहता हूँ कि जब इस तरह से तो तुम में से एक लगता है, 271 00:14:22,300 --> 00:14:24,680 मैं खोज करने के लिए नहीं है अपने नामों में से प्रत्येक के माध्यम से. 272 00:14:24,680 --> 00:14:29,490 मैं ओह, तरह हो सकता है, मुझे पता है कि डेनिएल का जन्मदिन in-- है 273 00:14:29,490 --> 00:14:30,240 दर्शक: --April. 274 00:14:30,240 --> 00:14:30,948 अध्यक्ष 1 अप्रैल. 275 00:14:30,948 --> 00:14:33,120 इसलिए मैं अपने अप्रैल में देखो बाल्टी, और किसी भी भाग्य के साथ, 276 00:14:33,120 --> 00:14:38,270 वह केवल एक ही वहाँ में हो जाएगा और मेरे समय, उस अर्थ में निरंतर था 277 00:14:38,270 --> 00:14:41,230 मैं देखने के लिए है जबकि अगर लोगों की एक पूरी गुच्छा के माध्यम से, 278 00:14:41,230 --> 00:14:43,090 यह बहुत लंबे समय तक ले जा रहा है. 279 00:14:43,090 --> 00:14:45,830 तो हैश तालिकाओं वास्तव में सिर्फ बाल्टी हैं. 280 00:14:45,830 --> 00:14:48,630 आसान तरीका उन्हें सोचने के लिए. 281 00:14:48,630 --> 00:14:52,930 >> तो एक बहुत ही महत्वपूर्ण बात के बारे में एक हैश तालिका एक हैश समारोह है. 282 00:14:52,930 --> 00:14:58,140 तो बातें मैं बस की तरह, के बारे में बात की थी अपने पहले नाम के पहले अक्षर 283 00:14:58,140 --> 00:15:01,450 या अपने जन्मदिन महीने, इन विचार कर रहे हैं कि 284 00:15:01,450 --> 00:15:03,070 वास्तव में एक हैश समारोह के लिए सहसंबंधी. 285 00:15:03,070 --> 00:15:08,900 यह तय करने का सिर्फ एक रास्ता है जो आप ठीक कह रहे हैं तत्व में चला जाता बाल्टी? 286 00:15:08,900 --> 00:15:14,850 तो इस pset के लिए, आप देख सकते हैं आप चाहते हैं कि किसी भी हैश समारोह बहुत ज्यादा. 287 00:15:14,850 --> 00:15:16,030 >> अपने खुद के होने की जरूरत नहीं है. 288 00:15:16,030 --> 00:15:21,140 कुछ वास्तव में अच्छा लोगों को बाहर कर रहे हैं पागल गणित के सभी प्रकार करते हैं कि. 289 00:15:21,140 --> 00:15:25,170 और अगर आप अपने बनाना चाहते हैं सुपर फास्ट spellchecker, 290 00:15:25,170 --> 00:15:27,620 मैं निश्चित रूप से होगा उन में से एक में देखो. 291 00:15:27,620 --> 00:15:32,390 >> लेकिन वहाँ भी कर रहे हैं गणना की तरह साधारण लोगों, 292 00:15:32,390 --> 00:15:39,010 शब्दों के योग की तरह प्रत्येक पत्र एक संख्या है. 293 00:15:39,010 --> 00:15:39,940 राशि की गणना. 294 00:15:39,940 --> 00:15:42,230 यही बाल्टी निर्धारित करता है. 295 00:15:42,230 --> 00:15:45,430 उन्होंने यह भी आसान वाले हैं कि सिर्फ एक है यहां के सभी तरह हैं, 296 00:15:45,430 --> 00:15:47,050 बी के सभी यहाँ है. 297 00:15:47,050 --> 00:15:48,920 उन में से कोई एक. 298 00:15:48,920 --> 00:15:55,770 >> असल में, यह बस जो आपको बताता है सरणी सूचकांक में जाना चाहिए अपने तत्व. 299 00:15:55,770 --> 00:15:58,690 बस bucket-- निर्णय लेने यह सब एक हैश समारोह है. 300 00:15:58,690 --> 00:16:04,180 तो यहाँ हम जो एक उदाहरण है स्ट्रिंग का सिर्फ पहला पत्र 301 00:16:04,180 --> 00:16:05,900 कि मैं बस के बारे में बात कर रहा था. 302 00:16:05,900 --> 00:16:11,900 >> तो तुम सिर्फ है कि कुछ हैश है अपने स्ट्रिंग शून्य से एक के पहले अक्षर, 303 00:16:11,900 --> 00:16:16,090 आप कुछ दे देंगे जो 0 और 25 के बीच संख्या. 304 00:16:16,090 --> 00:16:20,790 और क्या आप क्या करना चाहते है इस प्रतिनिधित्व करता है कि यह सुनिश्चित कर लें 305 00:16:20,790 --> 00:16:24,110 अपने हैश का आकार table-- कितने बाल्टी कर रहे हैं. 306 00:16:24,110 --> 00:16:25,860 इनमें से कई के साथ हैश काम करता है, वे कर रहे हैं 307 00:16:25,860 --> 00:16:31,630 जा रहा है कि हो सकता है मानों लौट लिए दूर बकेट की संख्या से ऊपर होना 308 00:16:31,630 --> 00:16:33,610 आप वास्तव में है कि अपने हैश तालिका में, 309 00:16:33,610 --> 00:16:37,240 इसलिए तुम बनाने की जरूरत सुनिश्चित करें और उन द्वारा आधुनिक. 310 00:16:37,240 --> 00:16:42,190 अन्यथा, यह कहने के लिए जा रहा है, ओह, यह बाल्टी 5000 में होना चाहिए 311 00:16:42,190 --> 00:16:46,040 लेकिन आप केवल 30 है अपने हैश तालिका में बाल्टी. 312 00:16:46,040 --> 00:16:49,360 और हां, हम सब यही जानते हैं कुछ पागल त्रुटियों में परिणाम के लिए जा रहा. 313 00:16:49,360 --> 00:16:52,870 तो द्वारा आधुनिक बनाना अपने हैश तालिका का आकार. 314 00:16:52,870 --> 00:16:58,430 315 00:16:58,430 --> 00:16:58,930 कूल. 316 00:16:58,930 --> 00:17:00,506 टकराव तो. 317 00:17:00,506 --> 00:17:02,620 हर कोई अब तक अच्छा है? 318 00:17:02,620 --> 00:17:03,120 Mmhmm? 319 00:17:03,120 --> 00:17:05,900 >> दर्शक: क्यों यह होगा इतने बड़े पैमाने पर मूल्य वापसी? 320 00:17:05,900 --> 00:17:09,210 >> अध्यक्ष 1: एल्गोरिथ्म पर निर्भर करता है अपने हैश समारोह का उपयोग करता है. 321 00:17:09,210 --> 00:17:12,270 उनमें से कुछ भी करेंगे पागल गुणन. 322 00:17:12,270 --> 00:17:16,270 और यह हो रही है सब के बारे में एक भी वितरण, 323 00:17:16,270 --> 00:17:18,490 इसलिए वे वास्तव में कुछ करना कभी कभी पागल चीजें. 324 00:17:18,490 --> 00:17:20,960 बस इतना ही. 325 00:17:20,960 --> 00:17:22,140 कुछ और? 326 00:17:22,140 --> 00:17:22,829 ठीक. 327 00:17:22,829 --> 00:17:24,480 >> टकराव तो. 328 00:17:24,480 --> 00:17:29,270 असल में, जैसा कि मैंने पहले कहा था, बेहतरीन परिदृश्य में, 329 00:17:29,270 --> 00:17:32,040 मैं इस पर गौर किसी बाल्टी है एक बात के लिए जा रहा, 330 00:17:32,040 --> 00:17:34,160 तो मैं सही, पर सब देखने की जरूरत नहीं है? 331 00:17:34,160 --> 00:17:37,040 मैं या तो यह पता है वहाँ या यह है नहीं, और है कि हम वास्तव में चाहते क्या है. 332 00:17:37,040 --> 00:17:43,960 लेकिन हम दसियों के हजारों की है अगर डेटा अंक और उस नंबर से भी कम 333 00:17:43,960 --> 00:17:48,700 बाल्टी की, हमारे पास करने के लिए जा रहे हैं टकराव जहां अंततः कुछ 334 00:17:48,700 --> 00:17:54,210 एक में खत्म करने के लिए किया जा रहा है पहले से ही एक तत्व है कि बाल्टी. 335 00:17:54,210 --> 00:17:57,390 >> तो सवाल यह है क्या हम उस स्थिति में क्या करते हो? 336 00:17:57,390 --> 00:17:58,480 हम क्या करते हैं? 337 00:17:58,480 --> 00:17:59,300 हम पहले से ही वहाँ कुछ है? 338 00:17:59,300 --> 00:18:00,060 हम सिर्फ इसे बाहर फेंक है? 339 00:18:00,060 --> 00:18:00,700 >> नहीं. 340 00:18:00,700 --> 00:18:01,980 हम उन दोनों को रखने के लिए है. 341 00:18:01,980 --> 00:18:06,400 तो तरीका है कि हम आमतौर पर कि क्या करना है? 342 00:18:06,400 --> 00:18:08,400 डेटा संरचना क्या है हम बस के बारे में बात की थी? 343 00:18:08,400 --> 00:18:09,316 दर्शक: लिंक की गई सूची. 344 00:18:09,316 --> 00:18:10,500 अध्यक्ष 1: एक लिंक सूची. 345 00:18:10,500 --> 00:18:16,640 तो अब, बजाय इनमें से प्रत्येक की बाल्टी बस, एक तत्व वाले 346 00:18:16,640 --> 00:18:24,020 इसके बारे में एक लिंक की गई सूची को शामिल करने जा रहा है इसे में hashed गया है कि तत्वों. 347 00:18:24,020 --> 00:18:27,588 ठीक है, हर किसी तरह का विचार है कि प्राप्त करता है? 348 00:18:27,588 --> 00:18:30,546 हम एक सरणी नहीं हो सकता था क्योंकि हम कितनी बातें पता नहीं है क्योंकि 349 00:18:30,546 --> 00:18:31,730 वहाँ में होने जा रहे हैं. 350 00:18:31,730 --> 00:18:36,540 एक लिंक सूची के लिए हमें की अनुमति देता है बस सही संख्या है कि 351 00:18:36,540 --> 00:18:38,465 ठीक है, कि बाल्टी में hashed रहे हैं? 352 00:18:38,465 --> 00:18:42,260 353 00:18:42,260 --> 00:18:50,500 >> जांच कर रही है तो रैखिक मूल रूप से इस idea-- 354 00:18:50,500 --> 00:18:52,300 यह एक टकराव से निपटने के लिए एक ही रास्ता है. 355 00:18:52,300 --> 00:18:58,010 आप क्या कर सकते हैं इस में, अगर है मामला, बेर 1 में hashed किया गया था 356 00:18:58,010 --> 00:19:01,130 और हम पहले से ही है वहाँ कुछ है, तुम बस 357 00:19:01,130 --> 00:19:04,840 जब तक नीचे जा रहा रखने आप एक खाली स्लॉट हैं. 358 00:19:04,840 --> 00:19:06,370 यही कारण है कि इसे संभाल करने के लिए एक ही रास्ता है. 359 00:19:06,370 --> 00:19:09,020 संभाल करने के लिए अन्य रास्ता इसके साथ है क्या हम बस 360 00:19:09,020 --> 00:19:12,280 लिंक्ड called-- सूची श्रृंखलन कहा जाता है. 361 00:19:12,280 --> 00:19:20,510 >> इसलिए इस विचार अगर काम करता है आपको लगता है कि आपके हैश तालिका 362 00:19:20,510 --> 00:19:24,150 की तुलना में बहुत बड़ा है अपने डेटा सेट या आप अगर 363 00:19:24,150 --> 00:19:28,870 कोशिश करते हैं और श्रृंखलन को कम करना चाहते हैं यह बिल्कुल जरूरी है जब तक. 364 00:19:28,870 --> 00:19:34,050 तो एक बात रैखिक है जाहिर है इसका मतलब है की जांच 365 00:19:34,050 --> 00:19:37,290 अपने हैश समारोह है कि के रूप में काफी उपयोगी नहीं है 366 00:19:37,290 --> 00:19:42,200 आप उपयोग कर समाप्त करने के लिए जा रहे हैं क्योंकि अपने हैश समारोह, एक बात करने के लिए हो रही है, 367 00:19:42,200 --> 00:19:46,400 आप करने के लिए नीचे की जांच रैखिक उपलब्ध है कि कुछ जगह. 368 00:19:46,400 --> 00:19:49,670 लेकिन अब, ज़ाहिर है, कुछ भी , वहाँ समाप्त होता है कि बाकी 369 00:19:49,670 --> 00:19:52,050 आप के लिए करने जा रहे हैं आगे भी नीचे खोज. 370 00:19:52,050 --> 00:19:55,650 >> और वहाँ एक बहुत अधिक है खोज व्यय कि 371 00:19:55,650 --> 00:19:59,820 एक तत्व inputting में चला जाता है अब अपने हैश तालिका में, सही? 372 00:19:59,820 --> 00:20:05,640 और अब तुम जाओ और कोशिश करते हैं और पाते हैं जब बेर फिर, आप इसे हैश करने जा रहे हैं, 373 00:20:05,640 --> 00:20:07,742 और यह कहने के लिए जा रहा है ओह, बाल्टी 1 में देखो, 374 00:20:07,742 --> 00:20:09,700 और यह नहीं होने जा रहा है 1 में बाल्टी, तो आप कर रहे हैं 375 00:20:09,700 --> 00:20:11,970 पार करने के लिए किया जा रहा इन में से बाकी के माध्यम से. 376 00:20:11,970 --> 00:20:17,720 इसलिए यह कभी कभी उपयोगी है लेकिन ज्यादातर मामलों में, 377 00:20:17,720 --> 00:20:22,660 हम कहते हैं कि करने के लिए जा रहे हैं श्रृंखलन आप क्या करना चाहते है. 378 00:20:22,660 --> 00:20:25,520 >> इसलिए हम इस बारे में पहले बात की थी. 379 00:20:25,520 --> 00:20:27,812 मैं खुद के लिए एक छोटे से आगे हो गया. 380 00:20:27,812 --> 00:20:33,560 लेकिन श्रृंखलन मूल रूप से यह है कि अपने हैश तालिका में प्रत्येक बाल्टी 381 00:20:33,560 --> 00:20:36,120 सिर्फ एक लिंक सूची है. 382 00:20:36,120 --> 00:20:39,660 >> तो एक और तरीका है, या एक से अधिक तकनीकी जिस तरह से, एक हैश तालिका के बारे में सोचना 383 00:20:39,660 --> 00:20:44,490 यह सिर्फ एक सरणी है कि है लिंक सूचियों का जो 384 00:20:44,490 --> 00:20:49,330 जब आप अपने शब्दकोश लिख रहे हैं और आप इसे लोड करने के लिए कोशिश कर रहे हैं, 385 00:20:49,330 --> 00:20:52,070 एक के रूप में इसके बारे में सोच लिंक सूचियों की सरणी 386 00:20:52,070 --> 00:20:54,390 यह बहुत आसान हो जाएगा आप को प्रारंभ करने के लिए. 387 00:20:54,390 --> 00:20:57,680 >> दर्शक: तो हैश तालिका एक पूर्व निर्धारित आकार की है, 388 00:20:57,680 --> 00:20:58,980 बाल्टी से एक [अश्राव्य] की तरह? 389 00:20:58,980 --> 00:20:59,220 >> अध्यक्ष 1: ठीक है. 390 00:20:59,220 --> 00:21:01,655 इसलिए यह का एक सेट संख्या है आप determine-- कि बाल्टी 391 00:21:01,655 --> 00:21:03,530 जो तुम लोगों को चाहिए साथ खेलने के लिए स्वतंत्र महसूस हो रहा है. 392 00:21:03,530 --> 00:21:05,269 यह बहुत अच्छा हो सकता है देखते हैं क्या होता 393 00:21:05,269 --> 00:21:06,810 आप बाल्टी का अपना नंबर बदलने के रूप में. 394 00:21:06,810 --> 00:21:09,410 395 00:21:09,410 --> 00:21:11,510 लेकिन हाँ, यह है एक बाल्टी की निर्धारित संख्या. 396 00:21:11,510 --> 00:21:15,360 क्या आप के रूप में फिट करने के लिए अनुमति देता है आप जरूरत के रूप में कई तत्वों 397 00:21:15,360 --> 00:21:19,350 इस अलग श्रृंखलन जहां आप है प्रत्येक बाल्टी में सूचियों जुड़ा हुआ है. 398 00:21:19,350 --> 00:21:22,850 वह अपने हैश तालिका मतलब वास्तव में आकार का हो जाएगा 399 00:21:22,850 --> 00:21:25,440 अगर आप सही होने की जरूरत है कि यह? 400 00:21:25,440 --> 00:21:27,358 उस लिंक सूचियों की सारी बात है. 401 00:21:27,358 --> 00:21:30,850 402 00:21:30,850 --> 00:21:32,480 कूल. 403 00:21:32,480 --> 00:21:38,780 >> वहाँ तो हर कोई ठीक है? 404 00:21:38,780 --> 00:21:39,801 ठीक है. 405 00:21:39,801 --> 00:21:40,300 आह. 406 00:21:40,300 --> 00:21:41,860 बस क्या हुआ? 407 00:21:41,860 --> 00:21:42,960 वास्तव में अब. 408 00:21:42,960 --> 00:21:45,250 कोई मुझे मार रहा है लगता है. 409 00:21:45,250 --> 00:21:52,060 >> ठीक है हम में जाने के लिए जा रहे हैं एक छोटे से पागल हो रहे हैं जो की कोशिश करता है,. 410 00:21:52,060 --> 00:21:53,140 मैं हैश टेबल की तरह. 411 00:21:53,140 --> 00:21:54,460 मुझे लगता है वे वास्तव में अच्छा कर रहे हैं लगता है. 412 00:21:54,460 --> 00:21:56,710 कोशिश करता है, भी अच्छा कर रहे हैं. 413 00:21:56,710 --> 00:21:59,590 >> इसलिए किसी को भी एक कोशिश है क्या याद है? 414 00:21:59,590 --> 00:22:01,740 आप पर चले गए हैं चाहिए यह संक्षिप्त व्याख्यान में? 415 00:22:01,740 --> 00:22:04,570 416 00:22:04,570 --> 00:22:06,377 आप यह कैसे काम करता है की तरह याद है? 417 00:22:06,377 --> 00:22:08,460 दर्शक: मैं सिर्फ हिला रहा हूँ हम इसे खत्म हो जाना था. 418 00:22:08,460 --> 00:22:09,626 अध्यक्ष 1: हम इसे खत्म हो जाना है. 419 00:22:09,626 --> 00:22:13,100 ठीक है, हम वास्तव में जाने के लिए जा रहे हैं यह अब खत्म हो गया है कि हम क्या कह रहे हैं. 420 00:22:13,100 --> 00:22:14,860 >> दर्शक: यह एक पुनर्प्राप्ति पेड़ के लिए है. 421 00:22:14,860 --> 00:22:15,280 >> अध्यक्ष 1: हाँ. 422 00:22:15,280 --> 00:22:16,196 यह एक पुनर्प्राप्ति पेड़ है. 423 00:22:16,196 --> 00:22:16,960 बहुत बढ़िया. 424 00:22:16,960 --> 00:22:23,610 तो यहाँ सूचना के लिए एक बात यह है कि हम व्यक्तिगत चरित्र को देख रहे हैं 425 00:22:23,610 --> 00:22:24,480 यहाँ, है ना? 426 00:22:24,480 --> 00:22:29,710 >> इसलिए हमारे हैश समारोह के साथ पहले, हम एक पूरे के रूप में शब्दों को देख रहे थे, 427 00:22:29,710 --> 00:22:32,270 और अब हम और अधिक लग रही हो वर्ण, है ना? 428 00:22:32,270 --> 00:22:38,380 तो हम यहाँ और मेंडेल अधिक मैक्सवेल है. 429 00:22:38,380 --> 00:22:47,840 तो बुनियादी तौर पर एक try-- एक तरह से सोचने के लिए इस बारे में है कि हर स्तर यहाँ है 430 00:22:47,840 --> 00:22:49,000 पत्र की एक सरणी है. 431 00:22:49,000 --> 00:22:53,310 432 00:22:53,310 --> 00:22:55,790 तो यह अपने रूट नोड सही, यहाँ है? 433 00:22:55,790 --> 00:23:01,980 इस सब के सब वर्ण है हर शब्द की शुरुआत के लिए वर्णमाला. 434 00:23:01,980 --> 00:23:06,480 >> और क्या आप क्या करना चाहते है कहते हैं, ठीक है, हम कुछ एम शब्द है. 435 00:23:06,480 --> 00:23:10,590 हम मैक्सवेल के लिए देखने के लिए जा रहे हैं, इसलिए कर रहे हैं हम एक पूरी करने के लिए एम और एम अंक के लिए जाना 436 00:23:10,590 --> 00:23:14,800 अन्य एक सरणी जहां हर के रूप में लंबे समय के रूप में वहाँ शब्द, 437 00:23:14,800 --> 00:23:17,044 एक है कि एक शब्द है दूसरा पत्र के रूप में, 438 00:23:17,044 --> 00:23:19,460 के रूप में लंबे समय से एक शब्द है कि वहाँ के रूप में दूसरा पत्र के रूप में बी है, 439 00:23:19,460 --> 00:23:24,630 यह एक सूचक होगा कुछ अगले सरणी के लिए जा रहा. 440 00:23:24,630 --> 00:23:29,290 >> शायद एक नहीं है शब्द है कि सांसद कुछ, 441 00:23:29,290 --> 00:23:32,980 इस में पी स्थिति में तो सरणी, यह सिर्फ रिक्त होगा. 442 00:23:32,980 --> 00:23:38,840 यह कोई शब्द नहीं है, ठीक है, कहना होगा कि एम ठीक है, एक पी द्वारा पालन किया है? 443 00:23:38,840 --> 00:23:43,100 इसलिए हम यह प्रत्येक बारे में सोचते हैं इन छोटी बातों में से एक 444 00:23:43,100 --> 00:23:47,990 वास्तव में इनमें से एक है जेड के माध्यम से एक से बड़े सरणियों 445 00:23:47,990 --> 00:23:55,064 इसलिए चीजों में से एक हो सकता है क्या कि एक कोशिश की एक खामी की तरह है? 446 00:23:55,064 --> 00:23:56,500 >> दर्शक: स्मृति का एक बहुत. 447 00:23:56,500 --> 00:23:59,940 >> अध्यक्ष 1: यह सही, स्मृति की एक टन है? 448 00:23:59,940 --> 00:24:08,750 यहां इन ब्लॉकों में से हर एक को 26 रिक्त स्थान, 26 तत्व सरणी का प्रतिनिधित्व करता है. 449 00:24:08,750 --> 00:24:13,680 इसलिए कोशिश करता है अंतरिक्ष भारी अविश्वसनीय रूप से मिलता है. 450 00:24:13,680 --> 00:24:17,100 >> लेकिन वे बहुत तेजी से कर रहे हैं. 451 00:24:17,100 --> 00:24:22,540 तो अविश्वसनीय रूप से तेजी से लेकिन वास्तव में अंतरिक्ष अक्षम. 452 00:24:22,540 --> 00:24:24,810 एक तरह से लगाने की है जो बाहर एक तुम चाहते हो. 453 00:24:24,810 --> 00:24:29,470 ये अपने pset के लिए वास्तव में अच्छा कर रहे हैं लेकिन वे स्मृति का एक बहुत ले कर, 454 00:24:29,470 --> 00:24:30,290 तो आप बंद व्यापार. 455 00:24:30,290 --> 00:24:31,480 हाँ? 456 00:24:31,480 --> 00:24:34,300 >> दर्शक: यह संभव होगा फिर एक कोशिश की स्थापना की और करने के लिए 457 00:24:34,300 --> 00:24:37,967 आप एक बार सभी आप need-- कि इसमें डेटा 458 00:24:37,967 --> 00:24:39,550 कि मतलब होता अगर मैं नहीं जानता. 459 00:24:39,550 --> 00:24:42,200 मैं से छुटकारा मिल गया था सभी नल वर्ण, लेकिन फिर 460 00:24:42,200 --> 00:24:42,910 आप सूचकांक them-- करने में सक्षम नहीं होगा 461 00:24:42,910 --> 00:24:43,275 >> अध्यक्ष 1: आप अभी भी उन्हें जरूरत है. 462 00:24:43,275 --> 00:24:44,854 >> दर्शक: - उसी तरह हर बार. 463 00:24:44,854 --> 00:24:45,520 अध्यक्ष 1: हाँ. 464 00:24:45,520 --> 00:24:50,460 तुम चलो रिक्त पात्रों की जरूरत वहाँ एक शब्द नहीं है यदि आप जानते हैं. 465 00:24:50,460 --> 00:24:52,040 क्या आप चाहते हैं कुछ है बेन किया? 466 00:24:52,040 --> 00:24:52,540 ठीक. 467 00:24:52,540 --> 00:24:54,581 ठीक है, तो हम जा रहे हैं अधिक एक छोटा सा जाने के लिए 468 00:24:54,581 --> 00:24:58,920 पीछे तकनीकी विस्तार में एक कोशिश करते हैं और एक उदाहरण के माध्यम से काम करते हैं. 469 00:24:58,920 --> 00:25:01,490 >> ठीक है, तो यह एक ही बात है. 470 00:25:01,490 --> 00:25:06,290 एक लिंक की गई सूची में, हमारे मुख्य जबकि ? तरह of-- मैं चाहते हैं शब्द क्या है - 471 00:25:06,290 --> 00:25:08,350 ब्लॉक के निर्माण की तरह एक नोड था. 472 00:25:08,350 --> 00:25:12,280 एक कोशिश में, हम भी, एक नोड है लेकिन यह अलग ढंग से परिभाषित किया है. 473 00:25:12,280 --> 00:25:17,000 >> इसलिए हम कुछ bool है कि एक शब्द है कि क्या वास्तव में प्रतिनिधित्व करता है 474 00:25:17,000 --> 00:25:23,530 इस स्थान पर मौजूद है, और उसके बाद हम here-- या बल्कि कुछ सरणी है 475 00:25:23,530 --> 00:25:27,840 इस एक के लिए एक संकेत है 27 अक्षरों की सरणी. 476 00:25:27,840 --> 00:25:33,339 और यह इस, इस मामले में, के लिए है 27-- मैं आप सभी को पसंद कर रहे हैं यकीन है, इंतजार 477 00:25:33,339 --> 00:25:34,880 वर्णमाला में 26 अक्षर हैं. 478 00:25:34,880 --> 00:25:36,010 क्यों हम 27 की क्या ज़रूरत है? 479 00:25:36,010 --> 00:25:37,870 >> इतने पर निर्भर करता है आप इस लागू रास्ता, 480 00:25:37,870 --> 00:25:43,240 इस एक pset से है कि apostrophes के लिए अनुमति दी. 481 00:25:43,240 --> 00:25:46,010 तो यही कारण है कि अतिरिक्त एक है. 482 00:25:46,010 --> 00:25:50,500 तुम भी कुछ में होगा मामलों अशक्त टर्मिनेटर 483 00:25:50,500 --> 00:25:53,230 में से एक के रूप में शामिल किया जाता है यह होने की अनुमति दी है कि वर्ण, 484 00:25:53,230 --> 00:25:56,120 और कहा कि वे करने के लिए जाँच कैसे यह शब्द के अंत में अगर देखें. 485 00:25:56,120 --> 00:26:01,340 आप रुचि रखते हैं, बाहर की जाँच Study.cs50 पर केविन वीडियो, 486 00:26:01,340 --> 00:26:04,790 साथ ही विकिपीडिया के रूप में वहाँ कुछ अच्छा संसाधनों. 487 00:26:04,790 --> 00:26:09,000 >> लेकिन हम सिर्फ तरह के माध्यम से जाने के लिए जा रहे हैं आप एक कोशिश के माध्यम से काम कर सकते हैं कि कैसे 488 00:26:09,000 --> 00:26:11,010 आप एक दी रहे हैं. 489 00:26:11,010 --> 00:26:16,230 इसलिए हम यहां कि एक सुपर सरल एक है उन में शब्द "बल्ला" और "ज़ूम" है. 490 00:26:16,230 --> 00:26:18,920 और हम यहाँ देखते हैं, यहाँ इस छोटे से अंतरिक्ष 491 00:26:18,920 --> 00:26:22,560 हमारे bool का प्रतिनिधित्व करता है हाँ, यह एक शब्द है, कहते हैं. 492 00:26:22,560 --> 00:26:27,060 और फिर यह हमारी है वर्णों की सरणियों, है ना? 493 00:26:27,060 --> 00:26:33,480 >> इसलिए हम के माध्यम से जाने के लिए जा रहे हैं इस कोशिश में "बल्ला" ढूँढने. 494 00:26:33,480 --> 00:26:38,340 तो सही, शीर्ष पर शुरू हो? 495 00:26:38,340 --> 00:26:46,290 और हम ख से मेल खाती है कि पता दूसरा सूचकांक, दूसरा तत्व 496 00:26:46,290 --> 00:26:47,840 इस श्रेणी में, ए और बी है. 497 00:26:47,840 --> 00:26:51,340 तो लगभग एक दूसरे के. 498 00:26:51,340 --> 00:26:58,820 >> और यह ठीक है, में है कि शांत पालन कहते हैं, अगले सरणी, हम याद है क्योंकि, 499 00:26:58,820 --> 00:27:02,160 यह इन की कि प्रत्येक नहीं है वास्तव तत्व शामिल हैं. 500 00:27:02,160 --> 00:27:07,110 इन सरणियों में से हर एक सही, एक सूचक होता है? 501 00:27:07,110 --> 00:27:10,030 इसे बनाने के लिए एक महत्वपूर्ण अंतर है. 502 00:27:10,030 --> 00:27:13,450 >> मैं यह कोशिश करता हैं be-- जा रहा है पहले समय पर पाने के लिए वास्तव में कड़ी मेहनत, 503 00:27:13,450 --> 00:27:15,241 तो यह है, भले ही दूसरी या तीसरी बार 504 00:27:15,241 --> 00:27:18,370 और यह एक तरह अब भी है मुश्किल सूरत की, 505 00:27:18,370 --> 00:27:21,199 आप देखने के लिए जाना अगर मैं वादा करता हूँ कम फिर कल, 506 00:27:21,199 --> 00:27:22,740 यह शायद एक बहुत अधिक समझ कर दूँगा. 507 00:27:22,740 --> 00:27:23,890 इसे पचाने के लिए एक बहुत लेता है. 508 00:27:23,890 --> 00:27:27,800 मैं अब भी कभी कभी हूँ जैसे, प्रतीक्षा, एक कोशिश क्या है? 509 00:27:27,800 --> 00:27:29,080 मैं यह कैसे इस्तेमाल करते हैं? 510 00:27:29,080 --> 00:27:33,880 >> इसलिए हम इस मामले में ख है, जो हमारी दूसरी सूचकांक है. 511 00:27:33,880 --> 00:27:40,240 हम था, कहते हैं, सी या डी या किसी भी अन्य पत्र, 512 00:27:40,240 --> 00:27:45,810 हम सूचकांक करने के लिए कि वापस मैप करने की आवश्यकता हमारे सरणी के उस से मेल खाती है. 513 00:27:45,810 --> 00:27:56,930 इसलिए हम rchar तरह ले जाएगा और सिर्फ हम एक 0-25 में यह नक्शा करने के लिए बंद घटाना. 514 00:27:56,930 --> 00:27:58,728 अच्छा सब लोग कैसे हम हमारे वर्ण मैप? 515 00:27:58,728 --> 00:28:00,440 ठीक. 516 00:28:00,440 --> 00:28:05,980 >> तो हम एक दूसरे के और हम करने के लिए जाना देखना है कि, हां, यह शून्य करने के लिए नहीं है. 517 00:28:05,980 --> 00:28:07,780 हम यह अगले सरणी के लिए पर स्थानांतरित कर सकते हैं. 518 00:28:07,780 --> 00:28:12,300 इसलिए हम यहां यह अगले सरणी पर चलते हैं. 519 00:28:12,300 --> 00:28:15,500 >> और हम अब, ठीक है, का कहना है कि हम एक यहां है अगर देखने की जरूरत है. 520 00:28:15,500 --> 00:28:18,590 एक नल है या यह करता है वास्तव में आगे बढ़ने? 521 00:28:18,590 --> 00:28:21,880 तो एक वास्तव में ले जाता है इस सरणी में आगे. 522 00:28:21,880 --> 00:28:24,570 और हम ठीक है, टी हमारे पिछले पत्र है, कहते हैं. 523 00:28:24,570 --> 00:28:27,580 तो हम सूचकांक में टी के पास जाओ. 524 00:28:27,580 --> 00:28:30,120 और फिर हम आगे बढ़ना क्योंकि एक और एक है. 525 00:28:30,120 --> 00:28:38,340 और यह एक, हाँ, मूल रूप से कहते हैं कि यह एक शब्द कहना है कि वहाँ here-- 526 00:28:38,340 --> 00:28:41,750 आप इस का पालन करें कि पथ, आप आ चुके हैं 527 00:28:41,750 --> 00:28:43,210 एक शब्द में, हम जानते हैं कि जो "बल्ले है." 528 00:28:43,210 --> 00:28:43,800 हाँ? 529 00:28:43,800 --> 00:28:46,770 >> दर्शक: लगता है कि करने के लिए यह मानक है तो सूचकांक 0 और 1 के रूप में एक प्रकार का है 530 00:28:46,770 --> 00:28:47,660 या अंत में है करने के लिए? 531 00:28:47,660 --> 00:28:48,243 >> अध्यक्ष 1: नहीं 532 00:28:48,243 --> 00:28:55,360 हम में वापस देखो तो अगर हमारे यहां घोषणा, यह एक bool है, 533 00:28:55,360 --> 00:28:59,490 तो यह आपके नोड में अपनी ही तत्व है. 534 00:28:59,490 --> 00:29:03,331 तो यह सरणी का हिस्सा नहीं है. 535 00:29:03,331 --> 00:29:03,830 कूल. 536 00:29:03,830 --> 00:29:08,370 हम अपने शब्द खत्म और इसलिए जब हम कर रहे हैं इस सरणी में, हम क्या करना चाहते 537 00:29:08,370 --> 00:29:12,807 इस एक शब्द है के लिए एक जांच करना है. 538 00:29:12,807 --> 00:29:14,390 और इस मामले में, यह हाँ लौटेंगे. 539 00:29:14,390 --> 00:29:17,220 540 00:29:17,220 --> 00:29:24,090 >> तो उस पर ध्यान दें, हम उस "चिड़ियाघर" पता है - "चिड़ियाघर" एक शब्द है कि मनुष्य के रूप में हम जानते हैं, 541 00:29:24,090 --> 00:29:24,820 सही? 542 00:29:24,820 --> 00:29:28,990 लेकिन यहाँ होता कोशिश कर रहे हैं नहीं, ऐसा नहीं है, कहते हैं. 543 00:29:28,990 --> 00:29:33,980 और यह कहना चाहूँगा कि हम क्योंकि यहाँ एक शब्द के रूप में यह नामित नहीं किया है. 544 00:29:33,980 --> 00:29:40,440 यहां तक ​​कि हम पार कर सकते हैं, हालांकि इस सरणी के माध्यम से, 545 00:29:40,440 --> 00:29:43,890 इस कोशिश, नहीं, यह कहना होगा चिड़ियाघर अपने शब्दकोश में नहीं है 546 00:29:43,890 --> 00:29:47,070 हम नहीं है क्योंकि जैसे यह निर्दिष्ट. 547 00:29:47,070 --> 00:29:52,870 >> तो एक तरह से that-- क्या करना ओह, माफ करना, इस एक. 548 00:29:52,870 --> 00:29:59,450 तो इस मामले में, "चिड़ियाघर" नहीं है एक शब्द है, लेकिन यह हमारे कोशिश में है. 549 00:29:59,450 --> 00:30:05,690 लेकिन इस एक में, हम यह कहना चाहते हैं "स्नान," क्या होता है शब्द का परिचय 550 00:30:05,690 --> 00:30:08,260 हम through-- बी, ए, टी का पालन है. 551 00:30:08,260 --> 00:30:11,820 हम इस सरणी में कर रहे हैं, और हम एच के लिए खोज करने के लिए जाना. 552 00:30:11,820 --> 00:30:15,220 >> इस मामले में, जब हम एच में सूचक को देखो, 553 00:30:15,220 --> 00:30:17,890 यह ठीक है, नल की ओर इशारा कर रहा है? 554 00:30:17,890 --> 00:30:20,780 यह स्पष्ट रूप से है तो जब तक एक और सरणी की ओर इशारा करते, 555 00:30:20,780 --> 00:30:25,000 आप मान सभी संकेत दिए कि इस सरणी में अशक्त की ओर इशारा कर रहे हैं. 556 00:30:25,000 --> 00:30:28,270 इस मामले में तो, ज इशारा कर रहा है हम कुछ नहीं कर सकते तो रिक्त करने के लिए, 557 00:30:28,270 --> 00:30:31,540 इसलिए यह भी लौटेंगे झूठी, "स्नान" यहाँ नहीं है. 558 00:30:31,540 --> 00:30:34,102 559 00:30:34,102 --> 00:30:35,810 तो अब हम वास्तव में कर रहे हैं के माध्यम से जाना जा रहा 560 00:30:35,810 --> 00:30:39,790 कैसे हम वास्तव में कहना होगा कि "चिड़ियाघर" हमारी कोशिश में है. 561 00:30:39,790 --> 00:30:42,920 कैसे हम अपने कोशिश में "चिड़ियाघर" सम्मिलित करते हैं? 562 00:30:42,920 --> 00:30:47,810 हम साथ शुरू कर दिया है कि एक ही तरह से तो हमारे लिंक की गई सूची में, हम जड़ में शुरू करते हैं. 563 00:30:47,810 --> 00:30:50,600 संदेह में, पर जब शुरू इन बातों की जड़. 564 00:30:50,600 --> 00:30:53,330 >> और हम, ठीक है, जेड कहूँगा. 565 00:30:53,330 --> 00:30:55,650 जेड इस में मौजूद है, और यह करता है. 566 00:30:55,650 --> 00:30:58,370 तो आप को पर आगे बढ़ रहे हैं अपने अगले सरणी, ठीक है? 567 00:30:58,370 --> 00:31:01,482 और फिर अगले एक पर, हम ठीक है, ओ मौजूद है, कहते हैं? 568 00:31:01,482 --> 00:31:03,000 यह करता है. 569 00:31:03,000 --> 00:31:04,330 यह फिर से. 570 00:31:04,330 --> 00:31:08,670 >> और इसलिए हमारे अगले एक पर, हम, कहा है ठीक है, "चिड़ियाघर" यहाँ पहले से ही मौजूद है. 571 00:31:08,670 --> 00:31:12,440 हम सब करने की ज़रूरत यह बराबर सेट है सच करने के लिए, वहाँ एक शब्द है कि वहाँ. 572 00:31:12,440 --> 00:31:15,260 आप सब कुछ का पालन किया था उस बिंदु से पहले तक, 573 00:31:15,260 --> 00:31:17,030 यह एक शब्द है, तो बस ऐसे करने के लिए यह बराबर निर्धारित किया है. 574 00:31:17,030 --> 00:31:17,530 हाँ? 575 00:31:17,530 --> 00:31:22,550 >> दर्शक: तो फिर ऐसा करता है "बा" एक शब्द भी है कि क्या मतलब है? 576 00:31:22,550 --> 00:31:24,120 >> अध्यक्ष 1: नहीं 577 00:31:24,120 --> 00:31:28,870 तो इस मामले में, "बीए" हम मिल जाएगा यहाँ, हम, यह एक शब्द है कहेंगे 578 00:31:28,870 --> 00:31:31,590 और यह अभी भी नहीं होगा. 579 00:31:31,590 --> 00:31:32,822 ठीक है? 580 00:31:32,822 --> 00:31:33,740 Mmhmm? 581 00:31:33,740 --> 00:31:36,360 >> दर्शक: आप एक बार तो यह एक शब्द और आप यह तो हाँ कहते हैं, 582 00:31:36,360 --> 00:31:38,380 एम के लिए जाने के लिए शामिल होंगे? 583 00:31:38,380 --> 00:31:42,260 >> अध्यक्ष 1: तो यह क्या करना है with-- आप में इस लोड कर रहे हैं. 584 00:31:42,260 --> 00:31:43,640 आप "चिड़ियाघर" एक शब्द है कहना. 585 00:31:43,640 --> 00:31:47,020 आप check-- जब जाना जैसे, आप कहना चाहते हैं का कहना है, 586 00:31:47,020 --> 00:31:49,400 "चिड़ियाघर" इस ​​शब्दकोश में मौजूद है? 587 00:31:49,400 --> 00:31:54,200 आप केवल "चिड़ियाघर" के लिए खोज करने के लिए जा रहे हैं और तो यह एक शब्द है यह देखने के लिए जाँच करें. 588 00:31:54,200 --> 00:31:57,291 आप कभी नहीं स्थानांतरित करने के लिए जा रहे हैं ऐसा नहीं है क्योंकि एम के माध्यम से 589 00:31:57,291 --> 00:31:58,290 क्या आप के लिए देख रहे हैं. 590 00:31:58,290 --> 00:32:02,690 591 00:32:02,690 --> 00:32:08,070 >> इसलिए हम वास्तव में करना चाहता था इस कोशिश में "स्नान" जोड़ने, 592 00:32:08,070 --> 00:32:11,390 हम एक ही बात करेंगे हम साथ किया था "चिड़ियाघर" 593 00:32:11,390 --> 00:32:15,380 जब हम हम देखना होगा कि सिवाय कोशिश करते हैं और एच के लिए मिलता है, यह मौजूद नहीं है. 594 00:32:15,380 --> 00:32:20,090 कोशिश कर के रूप में तो आप यह सोच सकते हैं एक लिंक की गई सूची में एक नया नोड जोड़ने के लिए, 595 00:32:20,090 --> 00:32:27,210 तो हम एक और जोड़ने की आवश्यकता होगी तो जैसे इन सरणियों में से एक,. 596 00:32:27,210 --> 00:32:35,670 और फिर हम सिर्फ एच सेट है हम क्या करते हैं इस ओर इशारा करते हुए इस सरणी के तत्व. 597 00:32:35,670 --> 00:32:39,430 >> और फिर क्या हम यहाँ क्या करना चाहता है? 598 00:32:39,430 --> 00:32:43,110 सच करने के लिए यह बराबर जोड़ें क्योंकि यह एक शब्द है. 599 00:32:43,110 --> 00:32:46,350 600 00:32:46,350 --> 00:32:48,150 कूल. 601 00:32:48,150 --> 00:32:48,700 मुझे पता है. 602 00:32:48,700 --> 00:32:51,170 कोशिश करता सबसे रोमांचक हैं. 603 00:32:51,170 --> 00:32:54,250 मेरा विश्वास करो, मुझे पता है. 604 00:32:54,250 --> 00:32:58,040 >> तो एक बात की कोशिश करता है के साथ महसूस करने के लिए, मुझे लगता है वे बहुत कुशल हैं, ने कहा. 605 00:32:58,040 --> 00:33:00,080 तो हम वे देखा है अंतरिक्ष की एक टन ले. 606 00:33:00,080 --> 00:33:01,370 वे एक तरह से भ्रमित कर रहे हैं. 607 00:33:01,370 --> 00:33:03,367 तो क्यों न हम कभी इन का प्रयोग करेंगे? 608 00:33:03,367 --> 00:33:05,450 वे कर रहे हैं क्योंकि हम इन उपयोग अविश्वसनीय रूप से कुशल है. 609 00:33:05,450 --> 00:33:08,130 >> आप कभी भी देख रहे हैं तो एक शब्द, आप ही कर रहे हैं 610 00:33:08,130 --> 00:33:10,450 शब्द की लंबाई से घिरा. 611 00:33:10,450 --> 00:33:15,210 तो अगर आप एक के लिए देख रहे हैं लंबाई पाँच की है कि शब्द, 612 00:33:15,210 --> 00:33:20,940 आप केवल कभी करने के लिए जा रहे हैं ठीक है, सबसे पाँच तुलना में बना? 613 00:33:20,940 --> 00:33:25,780 तो यह है कि यह मूल रूप से एक निरंतर बना देता है. 614 00:33:25,780 --> 00:33:29,150 प्रविष्टि और देखने की तरह मूल रूप से निरंतर समय हैं. 615 00:33:29,150 --> 00:33:33,750 >> आप कभी भी प्राप्त कर सकते हैं तो लगातार समय में कुछ, 616 00:33:33,750 --> 00:33:35,150 कि यह हो जाता है के रूप में अच्छा है. 617 00:33:35,150 --> 00:33:37,990 आप से बेहतर नहीं हो सकते इन बातों के लिए निरंतर समय. 618 00:33:37,990 --> 00:33:43,150 तो उस में से एक है कोशिश करता है की विशाल चाहता. 619 00:33:43,150 --> 00:33:46,780 >> लेकिन यह अंतरिक्ष के एक बहुत है. 620 00:33:46,780 --> 00:33:50,380 तो आप किस तरह का फैसला करना है क्या आप के लिए महत्वपूर्ण है. 621 00:33:50,380 --> 00:33:54,700 और आज के कंप्यूटर पर, अंतरिक्ष एक कोशिश का समय लग सकता है कि 622 00:33:54,700 --> 00:33:57,740 शायद प्रभावित नहीं करता आपको लगता है कि ज्यादा है, लेकिन शायद 623 00:33:57,740 --> 00:34:01,350 आप कुछ के साथ काम कर रहे हैं कि, दूर, बहुत अधिक बातें है 624 00:34:01,350 --> 00:34:02,810 और एक कोशिश सिर्फ उचित नहीं है. 625 00:34:02,810 --> 00:34:03,000 हाँ? 626 00:34:03,000 --> 00:34:05,610 >> दर्शक: रुको, तो आप 26 है हर एक में पत्र? 627 00:34:05,610 --> 00:34:07,440 >> अध्यक्ष 1: Mmhmm. 628 00:34:07,440 --> 00:34:08,570 हाँ, आप 26 है. 629 00:34:08,570 --> 00:34:16,984 आप कुछ तो शब्द मार्कर और है आप में से हर एक में 26 संकेत दिए हैं. 630 00:34:16,984 --> 00:34:17,775 और वे point-- रहे 631 00:34:17,775 --> 00:34:20,280 >> दर्शकों: और हर 26 वे प्रत्येक 26 की क्या ज़रूरत है? 632 00:34:20,280 --> 00:34:21,500 >> अध्यक्ष 1: हाँ. 633 00:34:21,500 --> 00:34:27,460 आप कर सकते हैं और वह है, क्यों है यह काफी तेजी से फैलता है, देखते हैं. 634 00:34:27,460 --> 00:34:28,130 ठीक है. 635 00:34:28,130 --> 00:34:32,524 तो हम पेड़ों में पाने के लिए जा रहे हैं जो मुझे पसंद आसान है लगता है और शायद होगा 636 00:34:32,524 --> 00:34:36,150 एक अच्छा सा राहत हो वहाँ की कोशिश करता है. 637 00:34:36,150 --> 00:34:39,620 तो उम्मीद है कि आप में से ज्यादातर पहले एक पेड़ देखा है. 638 00:34:39,620 --> 00:34:41,820 बहुत पसंद नहीं बाहर वालों, जो मैं 639 00:34:41,820 --> 00:34:44,340 किसी को पता नहीं है हाल ही में सड़क पर चला गया. 640 00:34:44,340 --> 00:34:49,230 मैं एप्पल इस सप्ताह के अंत उठा चला गया, और ओह, मेरे भगवान, यह खूबसूरत था. 641 00:34:49,230 --> 00:34:52,250 मैं पत्ते नहीं पता था कि सुंदर लग सकता है. 642 00:34:52,250 --> 00:34:53,610 >> तो यह सिर्फ एक पेड़ है, सही है? 643 00:34:53,610 --> 00:34:56,790 यह सिर्फ कुछ नोड है, और यह अन्य नोड्स के एक गुच्छा के लिए अंक. 644 00:34:56,790 --> 00:34:59,570 आप यहाँ देख, यह है एक आवर्ती विषय की तरह. 645 00:34:59,570 --> 00:35:03,720 नोड्स नोड्स ओर इशारा करते हुए एक तरह से है कई डाटा संरचनाओं का सार. 646 00:35:03,720 --> 00:35:06,670 यह सिर्फ हम पर निर्भर करता है उन्हें एक दूसरे से बात कर सकते है 647 00:35:06,670 --> 00:35:08,600 और हम कैसे पार उन के माध्यम से और कैसे हम 648 00:35:08,600 --> 00:35:14,500 निर्धारित करता है कि चीजों को डालने उनकी विभिन्न विशेषताओं. 649 00:35:14,500 --> 00:35:17,600 >> तो बस कुछ शब्दावली, जो मैं पहले का उपयोग किया है. 650 00:35:17,600 --> 00:35:20,010 तो जड़ बहुत शीर्ष पर है जो कुछ भी है. 651 00:35:20,010 --> 00:35:21,200 हम हमेशा शुरू जहां यह है. 652 00:35:21,200 --> 00:35:23,610 तुम भी सिर के रूप में सोच सकते हैं. 653 00:35:23,610 --> 00:35:28,750 लेकिन पेड़ों के लिए, हम करने के लिए करते हैं रूट के रूप में इसे देखें. 654 00:35:28,750 --> 00:35:32,820 >> नीचे here-- पर कुछ भी बहुत, बहुत bottom-- पर 655 00:35:32,820 --> 00:35:34,500 माना पत्ते हैं. 656 00:35:34,500 --> 00:35:37,210 तो उसके साथ चला जाता पूरे पेड़ बात है, है ना? 657 00:35:37,210 --> 00:35:39,860 पत्तियां अपने पेड़ के किनारों पर हैं. 658 00:35:39,860 --> 00:35:45,820 >> और फिर हम भी की एक जोड़ी है शर्तों के संबंध में नोड्स के बारे में बात करने के लिए 659 00:35:45,820 --> 00:35:46,680 एक दूसरे से. 660 00:35:46,680 --> 00:35:49,700 तो हम, माता पिता है बच्चों, और भाई बहन. 661 00:35:49,700 --> 00:35:56,260 तो इस मामले में, 3 है 5, 6, और 7 के माता पिता. 662 00:35:56,260 --> 00:36:00,370 इसलिए माता पिता है जो कुछ है आप कर रहे हैं जो कुछ भी ऊपर एक कदम 663 00:36:00,370 --> 00:36:02,940 तो बस, की चर्चा करते हुए एक परिवार के पेड़ की तरह. 664 00:36:02,940 --> 00:36:07,090 उम्मीद है, यह सब एक छोटी सी है बिट की कोशिश करता है और अधिक से अधिक सहज ज्ञान युक्त. 665 00:36:07,090 --> 00:36:10,970 >> भाई बहन है कि किसी भी कर रहे हैं सही ही माता-पिता,? 666 00:36:10,970 --> 00:36:13,470 वे यहाँ एक ही स्तर पर कर रहे हैं. 667 00:36:13,470 --> 00:36:16,960 और फिर मैं, के रूप में था कह, बच्चों को बस रहे हैं 668 00:36:16,960 --> 00:36:22,630 नीचे एक कदम जो कुछ भी है सवाल में नोड, ठीक है? 669 00:36:22,630 --> 00:36:23,470 कूल. 670 00:36:23,470 --> 00:36:25,610 तो एक द्विआधारी पेड़. 671 00:36:25,610 --> 00:36:31,450 किसी को एक पर एक खतरा लगता सकते हैं द्विआधारी पेड़ की विशेषताओं? 672 00:36:31,450 --> 00:36:32,770 >> दर्शक: अधिकतम दो पत्ते. 673 00:36:32,770 --> 00:36:33,478 >> अध्यक्ष 1: ठीक है. 674 00:36:33,478 --> 00:36:34,640 तो दो पत्तियों की अधिकतम. 675 00:36:34,640 --> 00:36:39,730 तो पहले इस एक में, हम इस एक था कि, तीन की थी, लेकिन एक द्विआधारी पेड़ में 676 00:36:39,730 --> 00:36:45,000 तुम दोनों में से एक अधिकतम है माता पिता के प्रति बच्चों, है ना? 677 00:36:45,000 --> 00:36:46,970 एक और वहाँ दिलचस्प विशेषता. 678 00:36:46,970 --> 00:36:51,550 किसी को भी पता है कि करता है? 679 00:36:51,550 --> 00:36:52,620 द्विआधारी पेड़. 680 00:36:52,620 --> 00:37:00,350 >> तो एक द्विआधारी पेड़ सब कुछ होगा the-- पर इस एक sorted-- नहीं है 681 00:37:00,350 --> 00:37:05,320 लेकिन एक छाँटे गए द्विआधारी पेड़ में, सही पर सब कुछ 682 00:37:05,320 --> 00:37:08,530 , माता-पिता की तुलना में अधिक है और बाईं तरफ सब कुछ 683 00:37:08,530 --> 00:37:10,035 माता-पिता की तुलना में कम है. 684 00:37:10,035 --> 00:37:15,690 और वह एक प्रश्नोत्तरी कर दिया गया है सवाल से पहले, तो अच्छा है पता करने के लिए. 685 00:37:15,690 --> 00:37:19,500 इसलिए हम इस परिभाषित रास्ता, फिर, हम एक और नोड है. 686 00:37:19,500 --> 00:37:21,880 यह क्या करने के लिए बहुत इसी तरह लग रहा है? 687 00:37:21,880 --> 00:37:28,336 688 00:37:28,336 --> 00:37:28,836 दोगुना 689 00:37:28,836 --> 00:37:29,320 >> दर्शक: लिंक सूचियों 690 00:37:29,320 --> 00:37:31,100 >> अध्यक्ष 1: एक डबल लिंक सूची, है ना? 691 00:37:31,100 --> 00:37:33,690 इसलिए हम इस जगह पिछले और अगले के साथ, 692 00:37:33,690 --> 00:37:35,670 यह एक दोगुना लिंक सूची होगी. 693 00:37:35,670 --> 00:37:40,125 लेकिन इस मामले में, हम वास्तव में छोड़ दिया और सही है और यह बात है. 694 00:37:40,125 --> 00:37:41,500 अन्यथा, यह बिल्कुल वैसा ही है. 695 00:37:41,500 --> 00:37:43,374 हम अभी भी तत्व है यदि आप के लिए देख रहे हैं 696 00:37:43,374 --> 00:37:45,988 और आप सिर्फ दो संकेत है जो कुछ करने जा अगले है. 697 00:37:45,988 --> 00:37:49,210 698 00:37:49,210 --> 00:37:51,870 हाँ, इतना द्विआधारी खोज वृक्ष. 699 00:37:51,870 --> 00:37:57,665 हम पर, सब कुछ नोटिस यहीं अधिक than-- है 700 00:37:57,665 --> 00:37:59,850 तुरंत या सब कुछ यहाँ सही करने के लिए 701 00:37:59,850 --> 00:38:02,840 , सब कुछ से अधिक है यहां से भी कम है. 702 00:38:02,840 --> 00:38:06,980 703 00:38:06,980 --> 00:38:14,000 >> इसलिए हम के माध्यम से खोज रहे थे, यह द्विआधारी खोज के बहुत करीब से देखना चाहिए 704 00:38:14,000 --> 00:38:14,910 यहाँ, है ना? 705 00:38:14,910 --> 00:38:17,640 बजाय देख सिवाय आधा सरणी में, 706 00:38:17,640 --> 00:38:21,720 हम बस या तो छोड़ दिया पर देख रहे हैं पक्ष या पेड़ के दाईं ओर. 707 00:38:21,720 --> 00:38:24,850 यह थोड़ा आसान हो जाता है तो, मुझे लगता है. 708 00:38:24,850 --> 00:38:29,300 >> अपने रूट नल है तो, अगर जाहिर है यह सिर्फ झूठी है. 709 00:38:29,300 --> 00:38:33,470 यह वहाँ है, तो जाहिर है कि यह सच है. 710 00:38:33,470 --> 00:38:35,320 यह तुलना में कम है, तो हम छोड़ दिया खोज. 711 00:38:35,320 --> 00:38:37,070 यह अधिक से अधिक है, हम सही खोज. 712 00:38:37,070 --> 00:38:39,890 यह वास्तव में द्विआधारी खोज की तरह है बस एक अलग डेटा संरचना 713 00:38:39,890 --> 00:38:40,600 कि हम प्रयोग कर रहे हैं. 714 00:38:40,600 --> 00:38:42,790 इसके बजाय एक सरणी की, यह सिर्फ एक द्विआधारी पेड़ है. 715 00:38:42,790 --> 00:38:45,820 716 00:38:45,820 --> 00:38:48,090 >> ठीक है, ढेर. 717 00:38:48,090 --> 00:38:51,550 और यह भी, यह हम जैसे लग रहा है समय का एक छोटा सा हो सकता है. 718 00:38:51,550 --> 00:38:54,460 अगर हम करते हैं, मैं जाने के लिए खुश हूँ इस के किसी भी फिर से. 719 00:38:54,460 --> 00:38:56,856 ठीक है, तो ढेर. 720 00:38:56,856 --> 00:39:02,695 किसी को क्या याद है stacks-- एक ढेर में से किसी विशेषताओं? 721 00:39:02,695 --> 00:39:05,550 722 00:39:05,550 --> 00:39:10,400 >> ठीक है, हम में से ज्यादातर तो, मुझे लगता है, भोजन में खाने halls-- 723 00:39:10,400 --> 00:39:13,100 हम करने के लिए तरह नहीं हो सकता जितना. 724 00:39:13,100 --> 00:39:16,900 लेकिन जाहिर है, आप एक ढेर के बारे में सोच सकते हैं सचमुच सिर्फ ट्रे के एक ढेर के रूप में 725 00:39:16,900 --> 00:39:18,460 या चीजों के ढेर. 726 00:39:18,460 --> 00:39:21,820 और क्या महत्वपूर्ण है महसूस करने के लिए यह है कि है 727 00:39:21,820 --> 00:39:26,850 विशेषता something-- हम यह by-- कॉल कि LIFO है. 728 00:39:26,850 --> 00:39:28,450 किसी को भी उस के लिए खड़ा है क्या पता है? 729 00:39:28,450 --> 00:39:29,070 Mmhmm? 730 00:39:29,070 --> 00:39:30,650 >> दर्शक: पहला, में बाहर पिछले. 731 00:39:30,650 --> 00:39:32,250 >> अध्यक्ष 1: ठीक है, पहले, में बाहर पिछले. 732 00:39:32,250 --> 00:39:36,585 हम जानते हैं कि अगर हां, तो हम चीजों को स्टैकिंग रहे हैं ऊपर, सबसे आसान बात off-- हड़पने के लिए 733 00:39:36,585 --> 00:39:39,570 और शायद एक ही चीज़ हम हड़पने कर सकते हैं हमारे ढेर बड़ा enough-- अगर बंद 734 00:39:39,570 --> 00:39:40,850 कि शीर्ष तत्व है. 735 00:39:40,850 --> 00:39:43,460 तो जो कुछ पर डाल दिया गया था हम यहाँ देख last--, 736 00:39:43,460 --> 00:39:46,370 जो भी धकेल दिया गया था अधिकांश पर recently-- है 737 00:39:46,370 --> 00:39:51,160 पहली बार होने जा हम बंद पॉप बात यह है कि, ठीक है? 738 00:39:51,160 --> 00:39:56,324 >> तो क्या हम यहाँ है एक और typedef संरचना. 739 00:39:56,324 --> 00:39:58,740 यह वास्तव में सिर्फ एक तरह है डेटा संरचना में पाठ्यक्रम दुर्घटना, 740 00:39:58,740 --> 00:40:01,650 तो तुम लोगों पर फेंक एक बहुत कुछ है. 741 00:40:01,650 --> 00:40:02,540 मुझे पता है. 742 00:40:02,540 --> 00:40:04,970 तो अभी तक एक संरचना. 743 00:40:04,970 --> 00:40:06,740 संरचनाओं के लिए याय. 744 00:40:06,740 --> 00:40:16,660 >> और इस मामले में, यह कुछ सूचक है कुछ क्षमता है कि एक सरणी के लिए. 745 00:40:16,660 --> 00:40:20,830 तो यह हमारे ढेर का प्रतिनिधित्व करता है यहाँ, हमारे वास्तविक सरणी की तरह 746 00:40:20,830 --> 00:40:22,520 कि हमारे तत्वों पकड़ रखा है. 747 00:40:22,520 --> 00:40:24,850 और फिर यहाँ हम कुछ आकार है. 748 00:40:24,850 --> 00:40:31,170 >> और आम तौर पर, आप रखना चाहते हैं अपने ढेर कितना बड़ा है का ट्रैक 749 00:40:31,170 --> 00:40:36,180 यह अनुमति देने के लिए क्या हो रहा है, क्योंकि क्या आप आकार पता अगर है ऐसा करने के लिए, 750 00:40:36,180 --> 00:40:39,170 यह आप कहने के लिए अनुमति देता है, ठीक है, मैं क्षमता में हूँ? 751 00:40:39,170 --> 00:40:40,570 मैं अधिक कुछ भी जोड़ सकते हैं? 752 00:40:40,570 --> 00:40:44,650 और यह भी बताता है जहां आपके ढेर के ऊपर 753 00:40:44,650 --> 00:40:48,180 इतना है कि तुम क्या जानते हैं वास्तव में दूर ले सकते हैं. 754 00:40:48,180 --> 00:40:51,760 और कहा कि वास्तव में हो रहा है यहां एक छोटे से अधिक स्पष्ट हो. 755 00:40:51,760 --> 00:40:57,350 >> तो धक्का, एक बात के लिए, आप अगर धक्का को लागू करने के लिए कभी थे, 756 00:40:57,350 --> 00:41:01,330 मैं सिर्फ कह रहा था के रूप में, अपने ढेर सही, एक सीमित आकार की है? 757 00:41:01,330 --> 00:41:03,990 हमारे सरणी कुछ क्षमता थी. 758 00:41:03,990 --> 00:41:04,910 यह एक सरणी है. 759 00:41:04,910 --> 00:41:08,930 यह एक निश्चित आकार है, तो हम करने की आवश्यकता है हम अधिक नहीं डाल रहे हैं कि यह सुनिश्चित कर लें 760 00:41:08,930 --> 00:41:11,950 हम से हमारे सरणी में वास्तव में के लिए जगह है. 761 00:41:11,950 --> 00:41:16,900 >> तो जब आप एक धक्का बना रहे हैं समारोह, आप ठीक है, कहना है पहली बात, 762 00:41:16,900 --> 00:41:18,570 मैं अपने ढेर में स्थान है? 763 00:41:18,570 --> 00:41:23,330 , मैं नहीं करते हैं, क्षमा करें क्योंकि मैं अपने तत्व की दुकान नहीं कर सकते हैं. 764 00:41:23,330 --> 00:41:28,980 मुझे क्या करना है, तो आप संग्रहीत करना चाहते हैं यह ढेर के शीर्ष पर, सही? 765 00:41:28,980 --> 00:41:31,325 >> और यह हमारे पास क्यों है हमारे आकार का ट्रैक रखने के लिए. 766 00:41:31,325 --> 00:41:35,290 हम अपने आकार का ट्रैक रखने नहीं है, हम इसे लगाने के लिए जहां पता नहीं है. 767 00:41:35,290 --> 00:41:39,035 हम कितनी बातें पता नहीं है पहले से ही हमारे सरणी में हैं. 768 00:41:39,035 --> 00:41:41,410 जाहिर है जैसा तरीके हैं हो सकता है कि आप यह कर सकता है. 769 00:41:41,410 --> 00:41:44,610 आप अशक्त करने के लिए सब कुछ को प्रारंभ कर सकता है और फिर नवीनतम नल के लिए जाँच, 770 00:41:44,610 --> 00:41:47,950 लेकिन एक बहुत आसान बात बस है ठीक है, आकार का ट्रैक रखने, कहने के लिए. 771 00:41:47,950 --> 00:41:51,840 मुझे पता है की तरह मैं चार तत्वों मेरे सरणी में, अगले बात तो 772 00:41:51,840 --> 00:41:55,930 हम पर डाल दिया है, हम कर रहे हैं सूचकांक 4 में स्टोर करने के लिए जा रहा है. 773 00:41:55,930 --> 00:42:00,940 और फिर, ज़ाहिर है, इस का मतलब है कि आप सफलतापूर्वक कुछ धक्का दिया 774 00:42:00,940 --> 00:42:03,320 अपने ढेर पर, आप आकार बढ़ाना चाहते हैं 775 00:42:03,320 --> 00:42:08,880 आप जानते हैं कि ऐसा है तो आप ऐसा कर रहे हैं जहां आप पर अधिक बातें धक्का कर सकते हैं कि. 776 00:42:08,880 --> 00:42:12,730 >> हम पॉप करने की कोशिश कर रहे हैं तो ढेर बंद कुछ, 777 00:42:12,730 --> 00:42:16,072 पहली बात क्या हो सकता है हम के लिए जाँच करना चाहते हैं? 778 00:42:16,072 --> 00:42:18,030 आपको लेने के लिए कोशिश कर रहे हैं अपने ढेर से दूर कुछ. 779 00:42:18,030 --> 00:42:21,710 780 00:42:21,710 --> 00:42:24,781 आप यकीन है कि वहाँ रहे हैं अपने ढेर में कुछ और? 781 00:42:24,781 --> 00:42:25,280 नहीं. 782 00:42:25,280 --> 00:42:26,894 तो क्या हम जाँच करना चाहते हो? 783 00:42:26,894 --> 00:42:27,810 >> दर्शक: [अश्राव्य]. 784 00:42:27,810 --> 00:42:29,880 अध्यक्ष 1: आकार के लिए जाँच करें? 785 00:42:29,880 --> 00:42:31,840 आकार. 786 00:42:31,840 --> 00:42:38,520 इसलिए हम यह देखने के लिए जाँच करना चाहते हैं हमारे आकार ठीक है, 0 से अधिक है? 787 00:42:38,520 --> 00:42:44,970 अगर ऐसा है, तो हम कम करना चाहते 0 से हमारे आकार और कहा कि वापसी. 788 00:42:44,970 --> 00:42:45,840 क्यों? 789 00:42:45,840 --> 00:42:49,950 >> पहले एक में हम थे धक्का, हम इसे धक्का दिया 790 00:42:49,950 --> 00:42:52,460 आकार और फिर अद्यतन आकार पर. 791 00:42:52,460 --> 00:42:57,850 इस मामले में, हम आकार decrementing रहे और फिर इसे तोड़, यह दूर ले जा रही 792 00:42:57,850 --> 00:42:58,952 हमारे सरणी से. 793 00:42:58,952 --> 00:42:59,826 क्यों हम ऐसा कर सकता है? 794 00:42:59,826 --> 00:43:04,800 795 00:43:04,800 --> 00:43:11,811 इसलिए मैं अपने ढेर पर एक बात है, उस बिंदु पर मेरे आकार क्या होगा? 796 00:43:11,811 --> 00:43:13,140 1. 797 00:43:13,140 --> 00:43:15,180 >> और जहां तत्व 1 संग्रहीत किया जाता है? 798 00:43:15,180 --> 00:43:17,621 क्या इंडेक्स पर? 799 00:43:17,621 --> 00:43:18,120 दर्शक: 0. 800 00:43:18,120 --> 00:43:19,060 अध्यक्ष 1: 0. 801 00:43:19,060 --> 00:43:22,800 इस मामले में तो, हम हमेशा sure-- बनाने की जरूरत 802 00:43:22,800 --> 00:43:27,630 बजाय लौटने की आकार शून्य से 1, क्योंकि हम 803 00:43:27,630 --> 00:43:31,730 हमारे तत्व है कि पता 1 कम में संग्रहित किया जा रहा 804 00:43:31,730 --> 00:43:34,705 हमारे आकार है, जो भी इस बस यह ध्यान रखती है. 805 00:43:34,705 --> 00:43:36,080 यह एक थोड़ा और अधिक सुंदर तरीका है. 806 00:43:36,080 --> 00:43:41,220 और हम सिर्फ हमारे घटती तो आकार और आकार वापसी. 807 00:43:41,220 --> 00:43:42,330 Mmhmm? 808 00:43:42,330 --> 00:43:45,300 >> दर्शक: मैं सिर्फ सामान्य रूप में लगता है क्यों इस डेटा संरचना होगा 809 00:43:45,300 --> 00:43:47,800 फायदेमंद हो सकता है? 810 00:43:47,800 --> 00:43:50,660 >> अध्यक्ष 1: यह आपके संदर्भ पर निर्भर करता है. 811 00:43:50,660 --> 00:43:57,420 सिद्धांत से कुछ के लिए तो, आप ठीक with-- काम कर रहे हैं, 812 00:43:57,420 --> 00:44:02,750 एक फायदेमंद नहीं है अगर मुझे देखते हैं कि बाहर से अधिक के लिए फायदेमंद है 813 00:44:02,750 --> 00:44:05,420 सीएस की. 814 00:44:05,420 --> 00:44:15,780 ढेर के साथ, किसी भी समय आप की जरूरत कुछ का ट्रैक रखने के लिए कि 815 00:44:15,780 --> 00:44:20,456 सबसे हाल ही में जोड़ा जाता है जब है आप एक ढेर का उपयोग करना चाहते करने जा रहे हैं. 816 00:44:20,456 --> 00:44:24,770 >> और मैं एक अच्छा के बारे में सोच नहीं सकते अभी उस का उदाहरण. 817 00:44:24,770 --> 00:44:29,955 लेकिन जब भी सबसे हाल ही में बात, आपके लिए सबसे अधिक महत्वपूर्ण है 818 00:44:29,955 --> 00:44:31,705 कि जब एक ढेर है उपयोगी होने जा रहा है. 819 00:44:31,705 --> 00:44:35,797 820 00:44:35,797 --> 00:44:39,330 मैं अगर सोच की कोशिश कर रहा हूँ इस के लिए एक अच्छा एक है. 821 00:44:39,330 --> 00:44:43,720 मैं अगले में एक अच्छा उदाहरण के बारे में सोच 20 मिनट, मैं निश्चित रूप से आपको बता देंगे. 822 00:44:43,720 --> 00:44:49,455 >> लेकिन कुल मिलाकर, अगर वहाँ कुछ भी, की तरह मैं सबसे अधिक है, जहां सबसे हाल ही में कहा 823 00:44:49,455 --> 00:44:52,470 कि, सबसे महत्वपूर्ण है है जहां एक ढेर खेलने में आता है. 824 00:44:52,470 --> 00:44:58,860 कतारों जबकि विपरीत की तरह कर रहे हैं. 825 00:44:58,860 --> 00:44:59,870 और सभी छोटे कुत्तों. 826 00:44:59,870 --> 00:45:00,890 ठीक है, यह अच्छा नहीं है? 827 00:45:00,890 --> 00:45:03,299 मैं मुझे ऐसा करना चाहिए की तरह लग रहा है सिर्फ एक चलनेवाली वीडियो 828 00:45:03,299 --> 00:45:05,090 सही के बीच में आप लोगों के लिए अनुभाग 829 00:45:05,090 --> 00:45:08,870 यह एक तीव्र खंड है. 830 00:45:08,870 --> 00:45:10,480 >> तो एक कतार. 831 00:45:10,480 --> 00:45:12,710 असल में एक पंक्ति एक लाइन की तरह है. 832 00:45:12,710 --> 00:45:15,780 तुम लोग मुझे इस रोज यकीन उपयोग कर रहा हूँ, बस हमारे डाइनिंग हॉल में पसंद है. 833 00:45:15,780 --> 00:45:18,160 इसलिए हम में जाना है और मैं कर रहा हूँ, हमारे ट्रे मिल 834 00:45:18,160 --> 00:45:21,260 सुनिश्चित करें कि आप लाइन में इंतजार करना पड़ स्वाइप या अपने भोजन पाने के लिए. 835 00:45:21,260 --> 00:45:24,650 >> यहां फर्क तो इस फीफो है कि है. 836 00:45:24,650 --> 00:45:30,090 तो LIFO पहले, में पिछले था बाहर, फीफो पहले पहली बार बाहर, में है. 837 00:45:30,090 --> 00:45:33,400 तो यह आप कहाँ रखा जो कुछ है पहले पर अपने सबसे महत्वपूर्ण है. 838 00:45:33,400 --> 00:45:35,540 आप इंतजार कर रहे थे तो अगर एक line-- में आप कर सकते हैं 839 00:45:35,540 --> 00:45:39,130 आप के पास गया तो कल्पना नए iPhone मिल जाना 840 00:45:39,130 --> 00:45:42,800 और यह एक ढेर था जहां लाइन में अंतिम व्यक्ति, पहली बार मिल गया 841 00:45:42,800 --> 00:45:44,160 लोग एक दूसरे को मार डालेंगे. 842 00:45:44,160 --> 00:45:49,800 >> तो फीफो, हम सब बहुत परिचित हो यहां असली दुनिया में साथ, 843 00:45:49,800 --> 00:45:54,930 और यह सब वास्तव में साथ नहीं है एक तरह से इस पूरे लाइन पुनः 844 00:45:54,930 --> 00:45:56,900 और संरचना रकम जुटा. 845 00:45:56,900 --> 00:46:02,390 ढेर के साथ, जबकि इसलिए, हम धक्का और पॉप है. 846 00:46:02,390 --> 00:46:06,440 एक कतार के साथ, हम एन्क्यू और dequeue. 847 00:46:06,440 --> 00:46:10,910 तो एन्क्यू मूल रूप से मतलब पीठ पर डाल दिया, 848 00:46:10,910 --> 00:46:13,680 और dequeue साधन लेना सामने से बंद. 849 00:46:13,680 --> 00:46:18,680 इसलिए हमारे डेटा संरचना है एक थोड़ा और अधिक जटिल. 850 00:46:18,680 --> 00:46:21,060 हम का ट्रैक रखने के लिए एक दूसरी बात है. 851 00:46:21,060 --> 00:46:25,950 >> यह सिर के बिना तो ठीक है, वास्तव में एक ढेर है? 852 00:46:25,950 --> 00:46:27,900 यह एक ढेर के रूप में एक ही संरचना है. 853 00:46:27,900 --> 00:46:32,480 अलग ही बात अब हम है तुम्हें क्या लगता है, जो इस सिर, है 854 00:46:32,480 --> 00:46:34,272 का ट्रैक रखने के लिए जा रहा है? 855 00:46:34,272 --> 00:46:35,510 >> दर्शक: पहले एक. 856 00:46:35,510 --> 00:46:38,685 >> अध्यक्ष 1: ठीक है, हम में डाल दिया है कि पहली बात. 857 00:46:38,685 --> 00:46:41,130 हमारे कतार के सिर. 858 00:46:41,130 --> 00:46:42,240 जो कोई भी लाइन में पहला है. 859 00:46:42,240 --> 00:46:45,300 860 00:46:45,300 --> 00:46:49,420 ठीक है, तो हम एन्क्यू करते हैं. 861 00:46:49,420 --> 00:46:52,720 862 00:46:52,720 --> 00:46:55,920 फिर, किसी के साथ इन डेटा संरचनाओं, 863 00:46:55,920 --> 00:46:59,760 हम एक सरणी के साथ काम कर रहे हैं के बाद से, हम हम जगह है अगर जांच की जरूरत है. 864 00:46:59,760 --> 00:47:03,290 >> यह मुझे बता रहा है की तरह तरह की है तुम लोग, आप एक फ़ाइल खोलने, 865 00:47:03,290 --> 00:47:04,760 आप अशक्त के लिए जांच की जरूरत है. 866 00:47:04,760 --> 00:47:08,330 इन ढेर से किसी के साथ और कतार, आप की जरूरत है 867 00:47:08,330 --> 00:47:13,420 हम कर रहे हैं क्योंकि अंतरिक्ष अगर वहाँ देखने के लिए एक निश्चित आकार सरणी से निपटने, 868 00:47:13,420 --> 00:47:16,030 हम सभी 5 तक here-- 0, 1 के रूप में मिलते. 869 00:47:16,030 --> 00:47:20,690 तो हम उस स्थिति में क्या कर जांच है हम अभी भी स्थान है, यह देखने के लिए. 870 00:47:20,690 --> 00:47:23,110 हमारे आकार क्षमता से कम है? 871 00:47:23,110 --> 00:47:28,480 >> यदि हां, तो हम पर यह स्टोर करने की जरूरत है हम अपने आकार को अद्यतन और पूंछ. 872 00:47:28,480 --> 00:47:30,250 तो पूंछ इस मामले में क्या हो सकता है? 873 00:47:30,250 --> 00:47:32,360 यह स्पष्ट रूप से बाहर नहीं लिखा है. 874 00:47:32,360 --> 00:47:33,380 हम इसे कैसे स्टोर होगा? 875 00:47:33,380 --> 00:47:34,928 पूंछ क्या होगा? 876 00:47:34,928 --> 00:47:38,600 877 00:47:38,600 --> 00:47:40,190 >> तो चलो इस उदाहरण के माध्यम से चलते हैं. 878 00:47:40,190 --> 00:47:44,590 इसलिए इस आकार 6 की एक सरणी, सही है? 879 00:47:44,590 --> 00:47:49,220 और हम अभी, हमारी आकार 5 है. 880 00:47:49,220 --> 00:47:55,240 हम इसे में डाल दिया और जब यह हो रहा है सही पांचवें सूचकांक में जाने के लिए? 881 00:47:55,240 --> 00:47:57,030 तो पूंछ पर दुकान. 882 00:47:57,030 --> 00:48:05,600 >> पूंछ लिखने के लिए एक और तरीका होगा बस आकार के सूचकांक में हमारे सरणी, सही हो सकता है? 883 00:48:05,600 --> 00:48:07,560 इस आकार 5 है. 884 00:48:07,560 --> 00:48:11,490 अगली बात 5 में जाना जा रहा है. 885 00:48:11,490 --> 00:48:12,296 कूल? 886 00:48:12,296 --> 00:48:13,290 ठीक. 887 00:48:13,290 --> 00:48:16,350 यह थोड़ा और अधिक जटिल हो जाता है हम सिर के साथ खिलवाड़ शुरू करते हैं. 888 00:48:16,350 --> 00:48:17,060 हाँ? 889 00:48:17,060 --> 00:48:20,090 >> दर्शक: कि क्या इसका मतलब है कि हम एक सरणी की घोषणा की है कि 890 00:48:20,090 --> 00:48:23,880 पांच तत्वों लंबा था और तो हम इसे पर जोड़ रहे हैं? 891 00:48:23,880 --> 00:48:24,730 >> अध्यक्ष 1: नहीं 892 00:48:24,730 --> 00:48:27,560 तो इस मामले में, यह एक ढेर है. 893 00:48:27,560 --> 00:48:31,760 यह घोषित किया जाएगा 6 आकार की एक सरणी के रूप में. 894 00:48:31,760 --> 00:48:37,120 और इस मामले में, हम सिर्फ एक स्थान बाकी है. 895 00:48:37,120 --> 00:48:42,720 >> ठीक है, तो एक बात इस में है मामला, हमारे सिर 0 में अगर, 896 00:48:42,720 --> 00:48:45,270 तो हम सिर्फ आकार में यह भी जोड़ सकते हैं. 897 00:48:45,270 --> 00:48:51,020 लेकिन यह थोड़ा पेचीदा मामला हो जाता है वास्तव में, क्योंकि वे 898 00:48:51,020 --> 00:48:52,840 एक स्लाइड नहीं है इस के लिए, इसलिए मैं जा रहा हूँ 899 00:48:52,840 --> 00:48:56,670 ऐसा नहीं है क्योंकि एक आकर्षित करने के लिए काफी सरल है कि आप एक बार 900 00:48:56,670 --> 00:48:59,230 बातों से छुटकारा मिल रहा शुरू करते हैं. 901 00:48:59,230 --> 00:49:03,920 एक ढेर के साथ, जबकि तो आप केवल कभी 902 00:49:03,920 --> 00:49:08,920 आकार क्या है के बारे में चिंता करने की जब आप पर कुछ जोड़ रहे हैं, 903 00:49:08,920 --> 00:49:15,710 एक कतार के साथ आप भी बनाने की जरूरत अपने सिर के लिए जिम्मेदार है यह सुनिश्चित करें कि, 904 00:49:15,710 --> 00:49:20,760 क्योंकि कतारों के बारे में एक अच्छी बात है कि आप क्षमता पर नहीं कर रहे हैं, 905 00:49:20,760 --> 00:49:23,040 आप वास्तव में इसे चारों ओर लपेट कर सकते हैं. 906 00:49:23,040 --> 00:49:28,810 >> ठीक है, तो एक thing-- ओह, इस भयानक चाक है. 907 00:49:28,810 --> 00:49:31,815 विचार करने के लिए एक बात है मामला है. 908 00:49:31,815 --> 00:49:35,514 909 00:49:35,514 --> 00:49:37,140 हम सिर्फ पांच करूँगा. 910 00:49:37,140 --> 00:49:41,810 ठीक है, तो हम करने जा रहे हैं सिर यहाँ है कहना. 911 00:49:41,810 --> 00:49:46,140 इस 0, 1, 2, 3, 4 है. 912 00:49:46,140 --> 00:49:54,210 >> सिर वहाँ है, और उन में बातें हैं कृपया. 913 00:49:54,210 --> 00:49:58,340 और हम सही में कुछ जोड़ना चाहते हैं? 914 00:49:58,340 --> 00:50:01,170 तो बात हम करने की आवश्यकता है पता सिर हमेशा यह है कि 915 00:50:01,170 --> 00:50:05,620 इस तरह से स्थानांतरित करने के लिए जा रहा है और फिर पाश वापस चारों ओर, ठीक है? 916 00:50:05,620 --> 00:50:10,190 >> तो इस कतार सही, अंतरिक्ष है? 917 00:50:10,190 --> 00:50:13,950 यह बहुत शुरुआत में अंतरिक्ष है इस के विपरीत की तरह. 918 00:50:13,950 --> 00:50:17,920 तो हम क्या करने की जरूरत है कि हम है पूंछ की गणना करने की जरूरत है. 919 00:50:17,920 --> 00:50:20,530 आप जानते हैं कि आपके सिर नहीं ले जाया गया, पूंछ 920 00:50:20,530 --> 00:50:24,630 पर सिर्फ आपके सरणी है आकार के सूचकांक. 921 00:50:24,630 --> 00:50:30,000 >> लेकिन वास्तविकता में, आप एक पंक्ति का उपयोग कर रहे हैं, अपने सिर को शायद अद्यतन किया जा रहा है. 922 00:50:30,000 --> 00:50:33,890 तो तुम क्या करने की जरूरत है वास्तव में पूंछ की गणना. 923 00:50:33,890 --> 00:50:39,990 तो हम क्या यह फार्मूला है यहां, मैं आपको यह बताने के लिए जा रहा हूँ जो 924 00:50:39,990 --> 00:50:42,680 लोगों के बारे में सोचते हैं, और तो हम इसके बारे में बात करेंगे. 925 00:50:42,680 --> 00:50:49,567 926 00:50:49,567 --> 00:50:50,400 तो यह क्षमता है. 927 00:50:50,400 --> 00:50:55,890 928 00:50:55,890 --> 00:50:59,660 >> तो यह वास्तव में होगा आप यह करने के लिए एक रास्ता दे. 929 00:50:59,660 --> 00:51:03,205 930 00:51:03,205 --> 00:51:04,330 क्योंकि इस मामले में, क्या? 931 00:51:04,330 --> 00:51:09,205 हमारे सिर 1 में, हमारे आकार 4 है. 932 00:51:09,205 --> 00:51:11,760 933 00:51:11,760 --> 00:51:18,490 हम 5 से कि आधुनिक हैं, हम 0 मिलता है, जो जहां हम यह इनपुट चाहिए. 934 00:51:18,490 --> 00:51:23,320 935 00:51:23,320 --> 00:51:26,080 >> तो फिर अगले मामले में, हम यह कर रहे थे, 936 00:51:26,080 --> 00:51:33,390 हम ठीक है, चलो कुछ dequeue चलो, कहना. 937 00:51:33,390 --> 00:51:34,390 हम इस dequeue. 938 00:51:34,390 --> 00:51:37,740 हम सही, इस तत्व बाहर ले? 939 00:51:37,740 --> 00:51:47,930 >> और अब हमारे सिर, यहां इशारा कर रहा है और हम एक और बात में जोड़ना चाहते हैं. 940 00:51:47,930 --> 00:51:52,470 यह मूल रूप से है वापस हमारे लाइन का, है ना? 941 00:51:52,470 --> 00:51:55,450 कतार सरणी के आसपास लपेट कर सकते हैं. 942 00:51:55,450 --> 00:51:57,310 यही मुख्य अंतर से एक है. 943 00:51:57,310 --> 00:51:58,780 ढेर, आप ऐसा नहीं कर सकते. 944 00:51:58,780 --> 00:52:01,140 >> कतारों के साथ, आप कर सकते हैं कि सभी मामलों क्योंकि 945 00:52:01,140 --> 00:52:03,940 आप जानते हैं कि क्या है सबसे हाल ही में जोड़ा गया है. 946 00:52:03,940 --> 00:52:10,650 सब कुछ में जोड़ा जा रहा है जब से इस बाई ओर दिशा, इस मामले में, 947 00:52:10,650 --> 00:52:16,480 और फिर चारों ओर लपेट, आप कर सकते हैं नए तत्वों में डालने के लिए जारी 948 00:52:16,480 --> 00:52:18,830 सरणी के मोर्चे पर यह सच नहीं है क्योंकि 949 00:52:18,830 --> 00:52:20,640 अब सरणी के सामने. 950 00:52:20,640 --> 00:52:26,320 आप की शुरुआत के बारे में सोच सकते हैं अपने सिर वास्तव में है, जहां के रूप में सरणी. 951 00:52:26,320 --> 00:52:29,710 >> इसलिए इस सूत्र कैसे है आप अपनी पूंछ की गणना. 952 00:52:29,710 --> 00:52:32,780 953 00:52:32,780 --> 00:52:35,610 वह समझ में आता है? 954 00:52:35,610 --> 00:52:36,110 ठीक. 955 00:52:36,110 --> 00:52:39,400 956 00:52:39,400 --> 00:52:44,040 ठीक है, dequeue, और उसके बाद तुम लोगों को 10 मिनट है 957 00:52:44,040 --> 00:52:48,840 मुझे किसी भी स्पष्ट सवाल पूछने के लिए मैं यह पागल है क्योंकि आप जानते हैं, चाहते हैं. 958 00:52:48,840 --> 00:52:51,980 >> , एक ही way-- में तो सब ठीक है तुम लोगों को देखा तो मैं नहीं जानता, 959 00:52:51,980 --> 00:52:53,450 लेकिन सीएस सब पैटर्न के बारे में है. 960 00:52:53,450 --> 00:52:57,370 हालात बहुत ज्यादा हैं सिर्फ छोटे tweaks के साथ, एक ही. 961 00:52:57,370 --> 00:52:58,950 यहाँ तो एक ही बात. 962 00:52:58,950 --> 00:53:04,040 हम अगर हम वास्तव में देखने के लिए जांच की जरूरत सही हमारे कतार में कुछ है, है? 963 00:53:04,040 --> 00:53:05,960 ठीक है, 0 से हमारे आकार बड़ा होता है, बोलो? 964 00:53:05,960 --> 00:53:06,730 कूल. 965 00:53:06,730 --> 00:53:10,690 >> अगर हम करते हैं, तो हम अपने सिर ले जाते हैं, जो मैं बस यहाँ प्रदर्शन किया क्या है. 966 00:53:10,690 --> 00:53:13,870 हम एक अधिक होने के लिए हमारे सिर अद्यतन करें. 967 00:53:13,870 --> 00:53:18,390 और फिर हम घटती हमारे आकार और तत्व वापसी. 968 00:53:18,390 --> 00:53:21,000 969 00:53:21,000 --> 00:53:26,250 >> और अधिक ठोस है study.cs50.net पर कोड, 970 00:53:26,250 --> 00:53:29,440 और मैं अत्यधिक जाने की सिफारिश अगर आप समय है इसके माध्यम से, 971 00:53:29,440 --> 00:53:30,980 यहां तक ​​कि यह सिर्फ एक छद्म कोड है यदि. 972 00:53:30,980 --> 00:53:35,980 और तुम लोग के माध्यम से बात करना चाहते हैं मुझे एक एक पर साथ, मुझे जाने दें कि 973 00:53:35,980 --> 00:53:37,500 पता. 974 00:53:37,500 --> 00:53:38,770 मैं खुशी होगी. 975 00:53:38,770 --> 00:53:42,720 डाटा संरचनाओं, अगर आप सीएस 124 ले, तुम हूँ 976 00:53:42,720 --> 00:53:47,830 डेटा संरचनाओं बहुत मिलता है कि पता मजेदार और यह सिर्फ शुरुआत है. 977 00:53:47,830 --> 00:53:50,350 >> इसलिए मुझे लगता है कि यह मुश्किल है. 978 00:53:50,350 --> 00:53:51,300 यह ठीक है. 979 00:53:51,300 --> 00:53:52,410 हम संघर्ष. 980 00:53:52,410 --> 00:53:53,630 मैं अब भी है. 981 00:53:53,630 --> 00:53:56,660 इसलिए इसके बारे में बहुत ज्यादा चिंता नहीं है. 982 00:53:56,660 --> 00:54:02,390 >> लेकिन यह है कि मूल रूप से अपनी है डेटा संरचनाओं में पाठ्यक्रम दुर्घटना. 983 00:54:02,390 --> 00:54:03,400 मैं यह एक बहुत कुछ है पता है. 984 00:54:03,400 --> 00:54:06,860 वहाँ कुछ भी है कि हम फिर से जाना चाहते हैं? 985 00:54:06,860 --> 00:54:09,400 हम के माध्यम से बात करना चाहते हैं कुछ भी? 986 00:54:09,400 --> 00:54:10,060 हाँ? 987 00:54:10,060 --> 00:54:16,525 >> दर्शक: कि उदाहरण के लिए, तो नई पूंछ कि अधिक 0 पर है? 988 00:54:16,525 --> 00:54:17,150 अध्यक्ष 1: हाँ. 989 00:54:17,150 --> 00:54:18,230 दर्शक: ठीक है. 990 00:54:18,230 --> 00:54:24,220 तो फिर, के माध्यम से जा रहा आप 1 प्लस 4 or-- होगा 991 00:54:24,220 --> 00:54:27,671 >> अध्यक्ष 1: तो आप कह रहे थे, हम जाना चाहते हैं जब फिर से ऐसा करने के? 992 00:54:27,671 --> 00:54:28,296 दर्शक: हाँ. 993 00:54:28,296 --> 00:54:38,290 आप out-- लगाना रहे थे तो कहाँ हैं आप उस में से पूंछ की गणना? 994 00:54:38,290 --> 00:54:44,260 >> अध्यक्ष 1: तो पूंछ मैं इस बदल in-- था. 995 00:54:44,260 --> 00:54:52,010 तो यहाँ इस उदाहरण में, यह था हम ठीक है, पर देख रहे हैं सरणी? 996 00:54:52,010 --> 00:54:54,670 इसलिए हम 1, 2, 3, और 4 में बातें हैं. 997 00:54:54,670 --> 00:55:05,850 इसलिए हम अपने सिर पर 1 के बराबर है इस बिंदु, और हमारे आकार 4 के बराबर है 998 00:55:05,850 --> 00:55:07,050 इस बिंदु पर, सही? 999 00:55:07,050 --> 00:55:08,960 >> आप सभी यह मामला है सहमत हैं? 1000 00:55:08,960 --> 00:55:14,620 इसलिए हम सिर से अधिक आकार, जो हमें 5 देता है, और फिर हम 5 से आधुनिक. 1001 00:55:14,620 --> 00:55:20,690 हम 0 है कि जो हमें बताता है, 0 मिल जहां हम जगह है जहां हमारी पूंछ, है. 1002 00:55:20,690 --> 00:55:22,010 >> दर्शक: एक टोपी क्या है? 1003 00:55:22,010 --> 00:55:23,520 >> अध्यक्ष 1: क्षमता. 1004 00:55:23,520 --> 00:55:24,020 माफ़ कीजिए. 1005 00:55:24,020 --> 00:55:29,640 इसलिए कि आपके सरणी के आकार है. 1006 00:55:29,640 --> 00:55:35,210 1007 00:55:35,210 --> 00:55:36,047 हाँ? 1008 00:55:36,047 --> 00:55:39,210 >> दर्शक: [अश्राव्य] से पहले हम तत्व वापसी? 1009 00:55:39,210 --> 00:55:46,270 >> अध्यक्ष 1: तो हम स्थानांतरित सिर या पल वापसी? 1010 00:55:46,270 --> 00:55:52,680 हम एक कदम तो, अगर आकार घटती? 1011 00:55:52,680 --> 00:55:54,150 रूको. 1012 00:55:54,150 --> 00:55:55,770 मैं निश्चित रूप से एक और भूल गया. 1013 00:55:55,770 --> 00:56:00,646 1014 00:56:00,646 --> 00:56:01,990 कोई बात नहीं. 1015 00:56:01,990 --> 00:56:04,980 एक और फार्मूला नहीं है. 1016 00:56:04,980 --> 00:56:09,980 हाँ, तुम वापस जाने के लिए चाहते हो जाएगा सिर और फिर इसे वापस ले. 1017 00:56:09,980 --> 00:56:13,270 >> दर्शक: ठीक है, क्योंकि इस पर बिंदु, सिर, 0 में था 1018 00:56:13,270 --> 00:56:18,452 और फिर तुम वापस करना चाहते हैं सूचकांक 0 और फिर सिर 1 बनाते हैं? 1019 00:56:18,452 --> 00:56:19,870 >> अध्यक्ष 1: ठीक है. 1020 00:56:19,870 --> 00:56:22,820 मैं एक और लगता है कि वहाँ इस तरह के फार्मूले तरह. 1021 00:56:22,820 --> 00:56:26,970 मैं के रूप में शीर्ष पर मेरे सिर यह नहीं है मैं आपको एक गलत देने के लिए नहीं करना चाहती. 1022 00:56:26,970 --> 00:56:35,470 लेकिन मैं यह करने के लिए पूरी तरह से वैध है लगता है कहते हैं, ठीक है, यह element-- दुकान जो कुछ भी 1023 00:56:35,470 --> 00:56:40,759 सिर के तत्व घटती is-- अपने आकार, अपने सिर पर ले जाते हैं, और वापसी 1024 00:56:40,759 --> 00:56:41,800 कि जो भी तत्व है. 1025 00:56:41,800 --> 00:56:44,760 यही कारण है कि पूरी तरह से वैध है. 1026 00:56:44,760 --> 00:56:45,260 ठीक. 1027 00:56:45,260 --> 00:56:48,360 1028 00:56:48,360 --> 00:56:53,560 यह नहीं है मुझे लगता है most-- की तरह तुम नहीं हो 1029 00:56:53,560 --> 00:56:55,740 यहाँ से बाहर चलने के लिए जा रहा जैसे, हाँ, मैं कोशिश करता है पता है. 1030 00:56:55,740 --> 00:56:56,880 मैं यह सब हो गया. 1031 00:56:56,880 --> 00:56:57,670 ठीक है. 1032 00:56:57,670 --> 00:57:00,200 मैं वादा करता हूं. 1033 00:57:00,200 --> 00:57:05,240 लेकिन डेटा संरचनाओं कुछ कर रहे हैं कि यह समय की एक बहुत कुछ करने के लिए इस्तेमाल किया पाने के लिए लेता है. 1034 00:57:05,240 --> 00:57:10,010 सबसे मुश्किल का शायद एक चीजें, मैं पाठ्यक्रम में, लगता है. 1035 00:57:10,010 --> 00:57:15,330 >> तो यह निश्चित रूप से लेता है पुनरावृत्ति और at-- मैं देख 1036 00:57:15,330 --> 00:57:20,050 वास्तव में लिंक सूचियों पता नहीं था मैं उनके साथ अभी तक बहुत ज्यादा किया था जब तक, 1037 00:57:20,050 --> 00:57:22,550 उसी तरह है कि मैं नहीं था वास्तव में संकेत समझने 1038 00:57:22,550 --> 00:57:27,040 मुझे मिला है जब तक दोनों के लिए यह सिखाने के लिए साल और इसके साथ अपना खुद का psets करते हैं. 1039 00:57:27,040 --> 00:57:28,990 यह पुनरावृत्ति और समय की एक बहुत लेता है. 1040 00:57:28,990 --> 00:57:32,600 और अंत में, यह एक तरह से क्लिक करेंगे. 1041 00:57:32,600 --> 00:57:36,320 >> लेकिन इस बीच में, आप की तरह है अगर के एक उच्च स्तर को समझने की क्या 1042 00:57:36,320 --> 00:57:39,321 इन उनके पेशेवर, कर और क्या है जो cons-- 1043 00:57:39,321 --> 00:57:41,820 हम वास्तव में जोर देती हैं, विशेष रूप से परिचय पाठ्यक्रम में. 1044 00:57:41,820 --> 00:57:45,511 की तरह, क्यों हम प्रयोग करेंगे एक एक सरणी से अधिक कोशिश की? 1045 00:57:45,511 --> 00:57:48,010 जैसे, सकारात्मक क्या हैं और उन में से प्रत्येक के नकारात्मक? 1046 00:57:48,010 --> 00:57:51,610 >> और व्यापार-नापसंद को समझने इन संरचनाओं में से प्रत्येक के बीच 1047 00:57:51,610 --> 00:57:54,910 अब ठीक है और अधिक महत्वपूर्ण क्या है. 1048 00:57:54,910 --> 00:57:58,140 पागल एक हो सकता है है कि प्रश्न या दो 1049 00:57:58,140 --> 00:58:03,710 धक्का को लागू करने के लिए आप से पूछना जा रहा है या पॉप या एन्क्यू और dequeue लागू. 1050 00:58:03,710 --> 00:58:07,340 लेकिन सबसे अधिक भाग के लिए, कि होने उच्च स्तर की समझ और अधिक 1051 00:58:07,340 --> 00:58:09,710 एक सहज ज्ञान युक्त समझ है की वास्तव में अधिक से अधिक महत्वपूर्ण 1052 00:58:09,710 --> 00:58:11,250 इसे लागू करने के लिए सक्षम किया जा रहा. 1053 00:58:11,250 --> 00:58:14,880 >> यह वास्तव में भयानक होगा आप सब अगर बाहर जाने के लिए और एक कोशिश को लागू जा सकते हैं, 1054 00:58:14,880 --> 00:58:19,720 लेकिन हम यह जरूरी नहीं है समझने सही अब सबसे उचित बात. 1055 00:58:19,720 --> 00:58:23,370 लेकिन क्या आप चाहते हैं, तो आपके pset में कर सकते हैं करने के लिए, और उसके बाद आप अभ्यास मिल जाएगा, 1056 00:58:23,370 --> 00:58:27,200 और फिर शायद आप करेंगे वास्तव में यह समझते हैं. 1057 00:58:27,200 --> 00:58:27,940 हाँ? 1058 00:58:27,940 --> 00:58:30,440 >> दर्शक: लोग कर रहे हैं ठीक है, जो इतनी हम pset में उपयोग करने का मतलब? 1059 00:58:30,440 --> 00:58:31,916 मैं उनमें से एक का उपयोग करने की आवश्यकता है? 1060 00:58:31,916 --> 00:58:32,540 अध्यक्ष 1: हाँ. 1061 00:58:32,540 --> 00:58:34,199 तो आप अपनी पसंद है. 1062 00:58:34,199 --> 00:58:36,740 मैं, हम कर सकते हैं इस मामले में लगता है pset एक छोटा सा के बारे में बात 1063 00:58:36,740 --> 00:58:40,480 मैं इन के माध्यम से भाग गया है. 1064 00:58:40,480 --> 00:58:47,779 अपने pset में तो, आप अपने पास कोशिश करता है या हैश तालिकाओं की पसंद है. 1065 00:58:47,779 --> 00:58:49,570 कुछ लोगों की कोशिश करेंगे और, खिल फिल्टर का उपयोग 1066 00:58:49,570 --> 00:58:51,840 लेकिन उन तकनीकी रूप से सही नहीं हैं. 1067 00:58:51,840 --> 00:58:55,804 क्योंकि उनके संभाव्य प्रकृति की, वे कभी कभी झूठी सकारात्मक दे. 1068 00:58:55,804 --> 00:58:57,095 उन्होंने हालांकि, में ठंडी लग रही हो. 1069 00:58:57,095 --> 00:58:59,030 अत्यधिक देख सिफारिश उन पर कम से कम. 1070 00:58:59,030 --> 00:59:03,260 लेकिन अगर आप अपनी पसंद है एक हैश तालिका और एक कोशिश के बीच. 1071 00:59:03,260 --> 00:59:06,660 और कहा कि जहां होने जा रहा है आप अपने शब्दकोश में लोड. 1072 00:59:06,660 --> 00:59:09,230 >> और आप का चयन करने की आवश्यकता होगी अपने हैश समारोह, 1073 00:59:09,230 --> 00:59:13,420 आप कितने चुनने की आवश्यकता होगी आपके पास बाल्टी, और यह अलग-अलग होगा. 1074 00:59:13,420 --> 00:59:17,440 आप अधिक बाल्टी है जैसे कि अगर, शायद यह तेजी से चलने देंगे. 1075 00:59:17,440 --> 00:59:22,790 लेकिन शायद आप एक बर्बाद कर रहे हैं अंतरिक्ष की बहुत हालांकि इस तरह,. 1076 00:59:22,790 --> 00:59:26,320 आप यह समझ से बाहर है. 1077 00:59:26,320 --> 00:59:27,140 Mmhmm? 1078 00:59:27,140 --> 00:59:29,875 >> दर्शक: तुम कि पहले कहा हम अन्य हैश कार्यों का उपयोग कर सकते हैं, 1079 00:59:29,875 --> 00:59:31,750 हम की जरूरत नहीं है कि एक हैश समारोह बना? 1080 00:59:31,750 --> 00:59:32,666 >> अध्यक्ष 1: ठीक है, हाँ. 1081 00:59:32,666 --> 00:59:38,150 तो सचमुच अपने हैश समारोह के लिए, गूगल की तरह "हैश समारोह" 1082 00:59:38,150 --> 00:59:40,770 और कुछ शांत लोगों के लिए देखो. 1083 00:59:40,770 --> 00:59:43,250 आप का निर्माण करने की उम्मीद नहीं कर रहे हैं अपने खुद के हैश कार्य करता है. 1084 00:59:43,250 --> 00:59:46,100 लोग खर्च करते हैं उनके इन बातों पर शोध करे. 1085 00:59:46,100 --> 00:59:50,250 >> तो अपने खुद के निर्माण के बारे में चिंता मत करो. 1086 00:59:50,250 --> 00:59:53,350 साथ शुरू करने के लिए एक ऑनलाइन लगाएं. 1087 00:59:53,350 --> 00:59:56,120 उनमें से कुछ आप के लिए है एक छोटा सा हेरफेर 1088 00:59:56,120 --> 00:59:59,430 बनाने के लिए यकीन है कि वापसी प्रकार अप मैच और whatnot, शुरुआत में तो, 1089 00:59:59,430 --> 01:00:02,420 मैं कुछ का उपयोग करना होगा वास्तव में आसान हो सकता है कि बस 1090 01:00:02,420 --> 01:00:04,680 पहले अक्षर पर hashes. 1091 01:00:04,680 --> 01:00:08,760 और फिर आपको लगता है कि काम किया है एक बार, एक कूलर हैश समारोह को शामिल. 1092 01:00:08,760 --> 01:00:09,260 Mmhmm? 1093 01:00:09,260 --> 01:00:13,020 >> दर्शक: एक कोशिश करेंगे हो या कुशल लेकिन, like-- को सिर्फ कठिन 1094 01:00:13,020 --> 01:00:15,880 >> अध्यक्ष 1: तो एक कोशिश, मुझे लगता है, लागू करने के लिए intuitively मुश्किल है 1095 01:00:15,880 --> 01:00:18,310 लेकिन बहुत तेज है. 1096 01:00:18,310 --> 01:00:20,620 हालांकि, अधिक स्थान लेता है. 1097 01:00:20,620 --> 01:00:25,270 फिर, आप में उन दोनों का अनुकूलन कर सकते हैं अलग अलग तरीकों से और तरीके हैं to-- 1098 01:00:25,270 --> 01:00:26,770 दर्शक: कैसे हम इस पर वर्गीकृत कर रहे हैं? 1099 01:00:26,770 --> 01:00:27,540 यह matter-- है 1100 01:00:27,540 --> 01:00:29,164 >> अध्यक्ष 1: तो आप सामान्य तरीके से वर्गीकृत कर रहे हैं. 1101 01:00:29,164 --> 01:00:31,330 आप डिजाइन पर वर्गीकृत करने जा रहे हैं. 1102 01:00:31,330 --> 01:00:36,020 जो भी आप करते हैं जिस तरह, आप करना चाहते हैं यह हो सकता है के रूप में यह रूप में सुंदर है बनाना 1103 01:00:36,020 --> 01:00:38,610 और के रूप में कुशल हो सकता है के रूप में. 1104 01:00:38,610 --> 01:00:41,950 लेकिन अगर आप एक कोशिश या हैश चुनते हैं मेज, जब तक यह काम करता है, के रूप में 1105 01:00:41,950 --> 01:00:45,350 हम उस के साथ खुश हैं. 1106 01:00:45,350 --> 01:00:48,370 आप कुछ प्रयोग और अगर उस hashes पहले अक्षर पर, कि, ठीक है 1107 01:00:48,370 --> 01:00:51,410 जैसे शायद डिजाइन के लिहाज से पसंद है. 1108 01:00:51,410 --> 01:00:53,410 हम भी तक पहुंच रहे हैं इस semester-- में बिंदु 1109 01:00:53,410 --> 01:00:55,340 मैं नहीं जानता कि आप अगर यदि आप noticed-- लोग 1110 01:00:55,340 --> 01:00:58,780 pset ग्रेड एक छोटा सा गिरावट क्योंकि डिजाइन और whatnot की, 1111 01:00:58,780 --> 01:00:59,900 कि पूरी तरह से ठीक है. 1112 01:00:59,900 --> 01:01:02,960 यह एक बात करने के लिए हो रही है, जहां आपके कार्यक्रमों के और अधिक जटिल हो रही है. 1113 01:01:02,960 --> 01:01:04,830 अधिक स्थानों रहे हैं आप पर सुधार कर सकते हैं. 1114 01:01:04,830 --> 01:01:06,370 >> तो यह पूरी तरह से सामान्य है. 1115 01:01:06,370 --> 01:01:08,810 यह आप कर रहे हैं कि नहीं है अपने pset पर भी बुरा कर रहे हैं. 1116 01:01:08,810 --> 01:01:11,885 यह सिर्फ हम अब आप पर कठिन हो जा रहा है. 1117 01:01:11,885 --> 01:01:13,732 तो हर कोई यह महसूस कर रही है. 1118 01:01:13,732 --> 01:01:14,940 मैं सिर्फ अपने सभी psets वर्गीकृत. 1119 01:01:14,940 --> 01:01:16,490 मैं हर किसी को यह लग रहा है पता है. 1120 01:01:16,490 --> 01:01:19,600 >> तो उस के बारे में चिंतित नहीं है. 1121 01:01:19,600 --> 01:01:23,580 और आप के बारे में कोई प्रश्न हैं पूर्व psets या आप में सुधार कर सकते हैं, 1122 01:01:23,580 --> 01:01:27,760 मैं कोशिश करते हैं और विशिष्ट टिप्पणी स्थानों है, लेकिन कभी कभी यह देर हो चुकी है 1123 01:01:27,760 --> 01:01:30,840 और मैं थक गया हूँ. 1124 01:01:30,840 --> 01:01:34,885 किसी भी अन्य बातें हैं के बारे में डेटा संरचनाओं? 1125 01:01:34,885 --> 01:01:37,510 मैं तुम लोगों को वास्तव में नहीं है यकीन अब उनके बारे में बात करना चाहता हूँ, 1126 01:01:37,510 --> 01:01:42,650 अगर वहाँ रहे हैं लेकिन, मैं खुश हूँ कुछ भी है, साथ ही उन पर जाना 1127 01:01:42,650 --> 01:01:45,580 व्याख्यान इस अतीत से सप्ताह या पिछले हफ्ते. 1128 01:01:45,580 --> 01:01:51,580 >> मैं तो, पिछले सप्ताह सभी की समीक्षा था पता हम कुछ समीक्षा पर छोड़ दिया हो सकता है 1129 01:01:51,580 --> 01:01:54,190 व्याख्यान से. 1130 01:01:54,190 --> 01:01:58,230 मैं जवाब कर सकते हैं किसी भी अन्य प्रश्न? 1131 01:01:58,230 --> 01:01:59,350 ठीक है, ठीक है. 1132 01:01:59,350 --> 01:02:02,400 खैर, तुम लोगों को जल्दी 15 मिनट चले जाओ. 1133 01:02:02,400 --> 01:02:08,370 >> मैं यह कम से कम सेमीफाइनल में मददगार थे आशा और मैं अगले हफ्ते आप लोग देखेंगे, 1134 01:02:08,370 --> 01:02:12,150 या गुरुवार कार्यालय समय. 1135 01:02:12,150 --> 01:02:15,285 नाश्ते के लिए वहाँ अनुरोध कर रहे हैं अगले सप्ताह के लिए, यह बात है? 1136 01:02:15,285 --> 01:02:17,459 मैं आज कैंडी भूल गया है. 1137 01:02:17,459 --> 01:02:19,750 और मैं पिछले कैंडी लाया सप्ताह, लेकिन यह, कोलंबस दिवस था 1138 01:02:19,750 --> 01:02:25,400 इसलिए छह लोगों की तरह वहाँ कौन थे खुद को कैंडी के चार बैग था. 1139 01:02:25,400 --> 01:02:28,820 मैं starbursts ला सकता है आप की तरह फिर यदि. 1140 01:02:28,820 --> 01:02:29,580 Starbursts? 1141 01:02:29,580 --> 01:02:32,250 ठीक है, अच्छा लगता है. 1142 01:02:32,250 --> 01:02:35,050 एक महान दिन लोग है. 1143 01:02:35,050 --> 01:02:39,510