1 00:00:00,000 --> 00:00:02,994 >> [მუსიკის დაკვრა] 2 00:00:02,994 --> 00:00:05,426 3 00:00:05,426 --> 00:00:08,550 DOUG LLOYD: ასე რომ, ჩვენ უკვე უახლოვდებიან და უფრო ახლოს, რომ წმინდა გრაალი მონაცემები 4 00:00:08,550 --> 00:00:13,050 სტრუქტურები, ერთი, რომ ჩვენ შეგვიძლია ჩადეთ შევიდა, წაშლა, და გამოიყურება 5 00:00:13,050 --> 00:00:15,440 მუდმივი დროს. 6 00:00:15,440 --> 00:00:16,270 უფლება. 7 00:00:16,270 --> 00:00:17,280 სწორედ ერთგვარი მიზანი. 8 00:00:17,280 --> 00:00:19,720 ჩვენ გვინდა, რომ იყოს ვერ გააკეთებს რამ ძალიან, ძალიან სწრაფად. 9 00:00:19,720 --> 00:00:22,580 >> გვაქვს ნაპოვნია აქ, როდესაც ჩვენ ვსაუბრობთ ლელო? 10 00:00:22,580 --> 00:00:23,670 ისე, მოდით შევხედოთ. 11 00:00:23,670 --> 00:00:25,628 ასე რომ, ჩვენ ვნახეთ რამდენიმე სხვადასხვა მონაცემთა სტრუქტურები 12 00:00:25,628 --> 00:00:28,680 რომ გაუმკლავდეს რუკების ე.წ. ძირითადი ღირებულების წყვილი, 13 00:00:28,680 --> 00:00:32,080 ობიექტების გარკვეული ნაჭერი მონაცემები ზოგიერთი სხვა ნაჭერი მონაცემები 14 00:00:32,080 --> 00:00:36,020 ასე რომ, ჩვენ, სად ინფორმაციის სტრუქტურა. 15 00:00:36,020 --> 00:00:40,060 >> ასე მასივი, მაგალითად, გასაღები არის ელემენტს ინდექსი ან მასივი 16 00:00:40,060 --> 00:00:42,600 განთავსების 0 ან მასივი 1 და ასე შემდეგ. 17 00:00:42,600 --> 00:00:46,140 და მნიშვნელობა მონაცემები რომ არსებობს იმ ადგილას. 18 00:00:46,140 --> 00:00:48,550 ასე რომ, რა ინახება მასივი 0? 19 00:00:48,550 --> 00:00:54,290 რა ინახება მასივი 1 ჯინაზე 0 და 1, რომელიც იქნება გასაღებები. 20 00:00:54,290 --> 00:00:56,360 >> ერთად hash მაგიდა ის ერთგვარი იგივე იდეა. 21 00:00:56,360 --> 00:01:00,690 ერთად hash მაგიდა, ჩვენ გვაქვს ეს hash ფუნქცია, რომელიც წარმოშობს hash კოდები. 22 00:01:00,690 --> 00:01:03,670 ასე რომ, გასაღები არის hash კოდი მონაცემებს. 23 00:01:03,670 --> 00:01:06,530 და ღირებულება, განსაკუთრებით ჩვენ ვისაუბრეთ მიჯაჭვის 24 00:01:06,530 --> 00:01:10,590 ამ ვიდეო hash მაგიდები, ის არის, რომ უკავშირდება სიაში მონაცემები 25 00:01:10,590 --> 00:01:12,550 რომ ჰეშები რომ hashcode. 26 00:01:12,550 --> 00:01:14,050 უფლება. 27 00:01:14,050 --> 00:01:16,050 რაც შეეხება მეორე მიდგომა ეს მეთოდი, თუმცა? 28 00:01:16,050 --> 00:01:21,000 რაც შეეხება მეთოდს, სადაც გასაღები არის გარანტირებული იყოს უნიკალური, 29 00:01:21,000 --> 00:01:25,410 განსხვავებით hash მაგიდა, სადაც შეგვეძლო დასრულდება up ერთად ორი ცალი მონაცემები 30 00:01:25,410 --> 00:01:27,200 რომელსაც იგივე hashcode. 31 00:01:27,200 --> 00:01:30,020 და მაშინ ჩვენ უნდა გაუმკლავდეთ რომ არც საცდელი ან მეტი 32 00:01:30,020 --> 00:01:33,340 სასურველია მიჯაჭვის დაფიქსირება, რომ პრობლემა. 33 00:01:33,340 --> 00:01:37,520 >> ასე რომ, ახლა ჩვენ შეგვიძლია გაგაცნოთ ჩვენი მთავარი იქნება უნიკალური. 34 00:01:37,520 --> 00:01:39,690 და რა, თუ ჩვენი ღირებულება უბრალოდ რაღაც როგორც მარტივი 35 00:01:39,690 --> 00:01:44,080 როგორც ჭეშმარიტი და ცრუ რომელიც გვეუბნება, თუ არა თუ არა, რომ ინფორმაცია 36 00:01:44,080 --> 00:01:45,610 არსებობს სტრუქტურა? 37 00:01:45,610 --> 00:01:48,180 ლოგიკური შეიძლება იყოს როგორც მარტივი, როგორც ცოტა. 38 00:01:48,180 --> 00:01:52,660 რეალურად ეს, ალბათ, byte უფრო მეტია, ვიდრე ცოტა. 39 00:01:52,660 --> 00:01:55,410 მაგრამ რომ ბევრი პატარა, ვიდრე შენახვის იქნებ 50-ხასიათის ტექსტი, 40 00:01:55,410 --> 00:01:57,360 მაგალითად. 41 00:01:57,360 --> 00:02:02,210 >> ასე რომ, ლელო, მსგავსი hash მაგიდები, რომელიც აერთიანებს კოლექტორები და უკავშირდება სია, 42 00:02:02,210 --> 00:02:05,790 ლელო გაერთიანდება მასივები, სტრუქტურები, და მითითებას 43 00:02:05,790 --> 00:02:08,509 ერთად ჩაწეროთ მონაცემები საინტერესო ისე, რომ 44 00:02:08,509 --> 00:02:11,550 საკმაოდ განსხვავდება არაფერი ჩვენ ვნახეთ ჯერჯერობით. 45 00:02:11,550 --> 00:02:16,750 ახლა ჩვენ ვიყენებთ მონაცემების საგზაო რუკა ნავიგაცია ამ მონაცემების სტრუქტურას. 46 00:02:16,750 --> 00:02:18,710 და თუ ჩვენ შეგვიძლია დაიცვას საგზაო რუკა, შევძლებთ თუ არა 47 00:02:18,710 --> 00:02:22,390 დაიცვას მონაცემები თავიდან ბოლომდე, ჩვენ გამოგიგზავნით 48 00:02:22,390 --> 00:02:24,945 იცით თუ არა, რომ მონაცემები არსებობს trie. 49 00:02:24,945 --> 00:02:28,310 >> და თუ ჩვენ არ შეუძლია დაიცვას რუკა ეხლა იმას ნიშნავს, რომ დასრულდეს ყველა, 50 00:02:28,310 --> 00:02:30,600 მონაცემები არ არსებობს. 51 00:02:30,600 --> 00:02:32,890 ისევ და ისევ, გასაღებები აქ გარანტირებული უნდა იყოს უნიკალური. 52 00:02:32,890 --> 00:02:36,020 ასე რომ, განსხვავებით hash მაგიდა, ჩვენ არასდროს უნდა გაუმკლავდეთ collisions აქ. 53 00:02:36,020 --> 00:02:39,090 და არა ორი ცალი მონაცემები ზუსტად იგივე საგზაო რუკა 54 00:02:39,090 --> 00:02:40,530 თუ ეს მონაცემები იდენტურია. 55 00:02:40,530 --> 00:02:44,580 >> თუ ჩვენ ჩადეთ ჯონ, მაშინ ჩვენ მოძებნოთ იოანე. 56 00:02:44,580 --> 00:02:47,430 ეს არის ორი ერთნაირი ცალი მონაცემები, უფლება, ჩვენ ვეძებთ მეშვეობით. 57 00:02:47,430 --> 00:02:49,880 მაგრამ სხვა შემთხვევაში, ორი ცალი მონაცემები 58 00:02:49,880 --> 00:02:52,750 გარანტირებული აქვს უნიკალური სამოქმედო გეგმა მეშვეობით ამ მონაცემების სტრუქტურას. 59 00:02:52,750 --> 00:02:56,210 და ჩვენ ვაპირებთ შევხედოთ ვიზუალური ეს მხოლოდ ერთი წუთით. 60 00:02:56,210 --> 00:02:58,810 >> ჩვენ ყველაფერს გავაკეთებთ ამ ცდილობს შექმნა ახალი მონაცემების სტრუქტურას, 61 00:02:58,810 --> 00:03:00,564 რუკების შემდეგ გასაღები ღირებულება წყვილი. 62 00:03:00,564 --> 00:03:03,480 ამ შემთხვევაში, ჩვენ არ ვაპირებთ, გამოიყენოს რაღაც მარტივია, როგორც ლოგიკური. 63 00:03:03,480 --> 00:03:06,200 ჩვენ რეალურად შესანახად სიმებიანი. 64 00:03:06,200 --> 00:03:08,690 და რომ სიმებიანი აპირებს იყოს სახელი უნივერსიტეტში. 65 00:03:08,690 --> 00:03:12,140 >> და გასაღები იქნება წელს როდესაც, რომელიც დაარსდა. 66 00:03:12,140 --> 00:03:15,380 ყველა წლის უნივერსიტეტებში ვაპირებთ, რომ ოთხი ციფრი. 67 00:03:15,380 --> 00:03:19,840 ასე რომ, ჩვენ ვიყენებთ იმ ოთხი ციფრები ნავიგაცია მეშვეობით ამ მონაცემების სტრუქტურას. 68 00:03:19,840 --> 00:03:22,270 და ჩვენ დავინახავთ, კიდევ ერთხელ, თუ როგორ ჩვენ გავაკეთებთ, რომ მხოლოდ მეორე. 69 00:03:22,270 --> 00:03:25,110 >> ბოლოს გზა, ჩვენ დავინახავთ სახელი 70 00:03:25,110 --> 00:03:30,250 უნივერსიტეტის, რომელიც შეესაბამება რომ გასაღები, იმ ოთხი ციფრი. 71 00:03:30,250 --> 00:03:34,390 ძირითადი იდეა უკან trie ჩვენ გვაქვს ცენტრალური მარშრუტის. 72 00:03:34,390 --> 00:03:35,640 ასე რომ, ვფიქრობ, რომ, როგორც ხე. 73 00:03:35,640 --> 00:03:39,211 და ეს არის მსგავსი მართლწერა და კონცეფცია ხე. 74 00:03:39,211 --> 00:03:41,460 საერთოდ, როდესაც ჩვენ ვიფიქროთ ხეები რეალურ სამყაროში, 75 00:03:41,460 --> 00:03:44,090 მათ აქვთ ფესვი, რომელიც არის ადგილზე და მოყავთ ზევით 76 00:03:44,090 --> 00:03:46,830 და მათ აქვთ ფილიალები და მათ აქვთ ფოთლები. 77 00:03:46,830 --> 00:03:49,450 და ძირითადად იდეა trie არის ზუსტად იგივე, 78 00:03:49,450 --> 00:03:51,755 გარდა იმისა, რომ root უძღვება სადღაც ცაში. 79 00:03:51,755 --> 00:03:53,130 და ფოთლები ბოლოში. 80 00:03:53,130 --> 00:03:55,750 >> ასე რომ, ეს სახის როგორც აღების ხე და უბრალოდ flipping ეს თავდაყირა. 81 00:03:55,750 --> 00:03:56,880 მაგრამ ჯერ კიდევ არსებობს ფილიალში. 82 00:03:56,880 --> 00:03:59,463 და იმ იქნება ჩვენი გზა, ეს იქნება ჩვენი კავშირები 83 00:03:59,463 --> 00:04:02,220 ძირი ფოთლები. 84 00:04:02,220 --> 00:04:04,200 ამ შემთხვევაში, იმ ბილიკები, იმ ფილიალი 85 00:04:04,200 --> 00:04:08,490 იარლიყით ერთად ციფრები, რომ გვითხრათ რომელი გზით წახვიდე, სადაც ჩვენ ვართ. 86 00:04:08,490 --> 00:04:11,800 >> თუ ჩვენ ვხედავთ 0 ვეშვებით ამ ფილიალი, თუ ჩვენ ვხედავთ 1 ვეშვებით ამ ფილიალი, 87 00:04:11,800 --> 00:04:12,900 და ასე და ასე შემდეგ. 88 00:04:12,900 --> 00:04:14,060 ისე, რას ნიშნავს ეს? 89 00:04:14,060 --> 00:04:16,519 ისე, ეს ნიშნავს, რომ ყოველ გადაკვეთაზე წერტილი 90 00:04:16,519 --> 00:04:19,260 და ყველა კვანძის შუა და ყველა ფილიალში, 91 00:04:19,260 --> 00:04:23,020 არსებობს 10 შესაძლო ადგილებში, რომ ჩვენ შეგვიძლია წავიდეთ. 92 00:04:23,020 --> 00:04:27,690 ასე რომ, არსებობს 10 მითითებას ყველა ადგილმდებარეობა. 93 00:04:27,690 --> 00:04:30,610 >> ეს არის სადაც ლელო შეგიძლიათ მიიღოთ ცოტა დაშინებას ვინმეს 94 00:04:30,610 --> 00:04:34,460 ვინ არის ამჯამად არ აქვს ბევრი გამოცდილება კომპიუტერულ მეცნიერებათა ადრე. 95 00:04:34,460 --> 00:04:35,960 მაგრამ ლელო მართლაც საკმაოდ გასაოცარია. 96 00:04:35,960 --> 00:04:37,793 და თუ თქვენ გაქვთ შანსი, რომ მათთან მუშაობა 97 00:04:37,793 --> 00:04:40,420 და თქვენ მზად იჭრება-in და ექსპერიმენტი მათ, 98 00:04:40,420 --> 00:04:44,234 ისინი მართლაც საკმაოდ საინტერესო მონაცემთა სტრუქტურების მუშაობა. 99 00:04:44,234 --> 00:04:46,900 თუ გვინდა, რომ ჩადეთ ელემენტს შევიდა trie, ყველა ჩვენ უნდა გავაკეთოთ 100 00:04:46,900 --> 00:04:51,360 აშენება სწორი გზა ძირი ფოთოლი. 101 00:04:51,360 --> 00:04:55,390 აი რა ყველა ნაბიჯი გასწვრივ გზა შეიძლება გამოიყურებოდეს. 102 00:04:55,390 --> 00:04:59,660 ჩვენ ვაპირებთ, რომ განსაზღვროს ახალი მონაცემების სტრუქტურა ახალი კვანძის მოუწოდა trie. 103 00:04:59,660 --> 00:05:02,560 >> და შიგნით რომ მონაცემები სტრუქტურა არსებობს ორი ცალი. 104 00:05:02,560 --> 00:05:05,460 ჩვენ ვაპირებთ, რომ შესანახად სახელი უნივერსიტეტში. 105 00:05:05,460 --> 00:05:09,410 და ჩვენ ვაპირებთ შესანახად მასივი პოინტერები 106 00:05:09,410 --> 00:05:12,190 სხვა კვანძების იმავე ტიპის. 107 00:05:12,190 --> 00:05:14,780 ასე რომ, კიდევ ერთხელ, ეს არის, რომ ერთგვარი კონცეფციის ყველგან 108 00:05:14,780 --> 00:05:18,567 ჩვენ ვართ, ჩვენ 10 შესაძლო ადგილებში ჩვენ შეგვიძლია წავიდეთ. 109 00:05:18,567 --> 00:05:20,150 თუ ჩვენ ვხედავთ 0 ვეშვებით ამ ფილიალში. 110 00:05:20,150 --> 00:05:22,690 თუ ჩვენ ვხედავთ 1, ამ დარგის, და ასე შემდეგ და ასე შემდეგ და ასე შემდეგ. 111 00:05:22,690 --> 00:05:25,160 თუ ვიტყვით, 9, ვეშვებით ამ ფილიალში. 112 00:05:25,160 --> 00:05:28,220 ასე რომ, ყოველ გადაკვეთაზე წერტილი, ჩვენ შეგვიძლია წავიდეთ 10 შესაძლო ადგილებში. 113 00:05:28,220 --> 00:05:35,740 ასე რომ, ყველა კვანძის უნდა შეიცავდეს 10 მითითებას სხვა კვანძების, 10 სხვა კვანძების. 114 00:05:35,740 --> 00:05:39,810 >> და მონაცემები ჩვენ შენახვის არის მხოლოდ სახელწოდება უნივერსიტეტში. 115 00:05:39,810 --> 00:05:41,060 მოდით ავაშენოთ trie. 116 00:05:41,060 --> 00:05:44,860 მოდით ჩადეთ ორი ნივთები ჩვენს trie. 117 00:05:44,860 --> 00:05:46,740 ასე რომ, ძალიან ზევით, ეს არის ჩვენი ძირეული კვანძის. 118 00:05:46,740 --> 00:05:49,740 ეს არის ალბათ იქნება რაღაც თქვენ აპირებს გლობალურად აცხადებენ. 119 00:05:49,740 --> 00:05:53,450 და თქვენ ვაპირებთ გლობალურად შენარჩუნება მომცეთ ამ კვანძის ყოველთვის. 120 00:05:53,450 --> 00:05:55,360 >> თქვენ ვაპირებთ ამბობენ, root უდრის, და თქვენ 121 00:05:55,360 --> 00:05:57,580 ვაპირებ malloc თავს trie კვანძი. 122 00:05:57,580 --> 00:05:59,850 და თქვენ არასდროს შეეხოთ root ერთხელ. 123 00:05:59,850 --> 00:06:02,300 ყოველ ჯერზე გსურთ დაიწყოს სანავიგაციო საშუალებით, 124 00:06:02,300 --> 00:06:05,802 თქვენ მითითებული ერთი მაჩვენებელი უდრის ფესვი, როგორიცაა trav, 125 00:06:05,802 --> 00:06:07,760 რომელიც არის მაგალითად მე გამოყენება ბევრ ჩემს ვიდეოები 126 00:06:07,760 --> 00:06:11,090 აქ stacks და რიგები და ბმული სიები და ასე შემდეგ. 127 00:06:11,090 --> 00:06:13,320 >> თქვენ შეიქმნა კიდევ ერთი მაჩვენებელი მოუწოდა trav for გასვლის. 128 00:06:13,320 --> 00:06:15,890 და თქვენ იყენებთ trav ნავიგაცია მეშვეობით მონაცემთა სტრუქტურას. 129 00:06:15,890 --> 00:06:17,500 ასე რომ, ვნახოთ, როგორ შეიძლება გამოიყურებოდეს. 130 00:06:17,500 --> 00:06:19,880 ასე რომ, ახლა, რა ამჯამად კვანძის ჰგავს? 131 00:06:19,880 --> 00:06:22,920 ისევე, როგორც ჩვენი მონაცემებით სტრუქტურა დეკლარაციაში მითითებულია, 132 00:06:22,920 --> 00:06:26,906 ჩვენ სიმებიანი, რომელიც ამ შემთხვევაში არის ცარიელი. 133 00:06:26,906 --> 00:06:27,780 არაფერია აქ. 134 00:06:27,780 --> 00:06:29,550 >> და მასივი 10 მითითებას. 135 00:06:29,550 --> 00:06:31,790 და ახლა, ჩვენ მხოლოდ 1 კვანძში ამ trie. 136 00:06:31,790 --> 00:06:33,110 იქ სხვა არაფერი იყო. 137 00:06:33,110 --> 00:06:36,020 ასე რომ, ყველა 10 იმ პოინტერები აღვნიშნო, რომ null. 138 00:06:36,020 --> 00:06:38,090 ეს არის ის, რაც წითელი მიუთითებს. 139 00:06:38,090 --> 00:06:39,500 >> მოდით ჩადეთ სიმებიანი ჰარვარდის. 140 00:06:39,500 --> 00:06:41,999 მოდით ჩადეთ უნივერსიტეტის ჰარვარდის ამ trie, რომელიც 141 00:06:41,999 --> 00:06:43,940 დაარსდა წელი 1636. 142 00:06:43,940 --> 00:06:48,220 ჩვენ გვინდა, რომ გამოიყენოთ გასაღები, 1636, გვითხრათ, სადაც ჩვენ ვართ 143 00:06:48,220 --> 00:06:50,140 აპირებს შესანახად ჰარვარდის trie. 144 00:06:50,140 --> 00:06:51,470 ახლა, როგორ შეიძლება ამის გაკეთება? 145 00:06:51,470 --> 00:06:52,886 >> ეს შეიძლება რაღაც მსგავსი. 146 00:06:52,886 --> 00:06:54,160 ჩვენ იწყება root. 147 00:06:54,160 --> 00:06:56,920 და ჩვენ ამ 10 ადგილებში ჩვენ შეგვიძლია წავიდეთ. 148 00:06:56,920 --> 00:06:59,900 ძირეული ისევე, როგორც ნებისმიერი სხვა კვანძის trie. 149 00:06:59,900 --> 00:07:02,850 არსებობს 10 ადგილებში ჩვენ შეგვიძლია წავიდეთ აქედან. 150 00:07:02,850 --> 00:07:07,215 >> სად ჩვენ ალბათ სურთ წასვლა თუ გასაღები 1636? 151 00:07:07,215 --> 00:07:08,340 იქ ნამდვილად ორი ვარიანტი. 152 00:07:08,340 --> 00:07:08,450 უფლება. 153 00:07:08,450 --> 00:07:10,825 ჩვენ შეგვიძლია ავაშენოთ გასაღები მარჯვნიდან მარცხნივ და იწყება 6. 154 00:07:10,825 --> 00:07:14,000 ან ჩვენ შეგვიძლია ავაშენოთ გასაღები მარცხნიდან მარჯვნივ და იწყება 1. 155 00:07:14,000 --> 00:07:16,140 >> ეს, ალბათ, უფრო ინტუიციური, როგორც ადამიანის 156 00:07:16,140 --> 00:07:18,110 უნდა გვესმოდეს, რომ ჩვენ უბრალოდ დაუტოვებიათ მარჯვნივ. 157 00:07:18,110 --> 00:07:21,140 ასე რომ, თუ მინდა ჩადეთ ჰარვარდის ამ trie, 158 00:07:21,140 --> 00:07:23,560 მე, ალბათ, მინდა, რომ დაიწყოს დაწყებული root, 159 00:07:23,560 --> 00:07:25,720 შევხედავთ ჩემი 10 ვარიანტი ჩემს წინ, და განაცხადა, 160 00:07:25,720 --> 00:07:28,700 მე მინდა, რომ დაცემას 1 გზას. 161 00:07:28,700 --> 00:07:29,700 OK. 162 00:07:29,700 --> 00:07:31,810 >> ახლა, 1 გზა არის გაკეთებული null. 163 00:07:31,810 --> 00:07:35,920 ასე რომ, თუ გსურთ გაგრძელება ქვემოთ რომ გზა ჩადეთ ამ ელემენტის trie, 164 00:07:35,920 --> 00:07:42,040 მე უნდა malloc ახალი კვანძის, 1 აღვნიშნო, და მაშინ მე კარგი წასვლა. 165 00:07:42,040 --> 00:07:46,460 >> ამიტომ, მე ძირითადად ვარ საათზე სადაც მე ვდგავარ 166 00:07:46,460 --> 00:07:50,270 ერთი ძირი ხე ან trie და არსებობს 10 ფილიალში. 167 00:07:50,270 --> 00:07:52,260 მაგრამ თითოეული ფილიალი აქვს კარების წინ. 168 00:07:52,260 --> 00:07:53,060 უფლება. 169 00:07:53,060 --> 00:07:54,850 იმის გამო, რომ იქ სხვა არაფერი არსებობს. 170 00:07:54,850 --> 00:07:56,522 არარის უსაფრთხო გადასასვლელი. 171 00:07:56,522 --> 00:07:58,980 ეს იმას ნიშნავს, რომ არაფერი ქვემოთ ნებისმიერი იმ ფილიალში. 172 00:07:58,980 --> 00:08:02,532 თუ მინდა, რომ დაიწყოს შენობა რაღაც, მინდა ამოიღონ კარიბჭე. 173 00:08:02,532 --> 00:08:04,490 მინდა ამოიღონ კარიბჭე თვალწინ ნომერი 1. 174 00:08:04,490 --> 00:08:05,698 და მე მინდა ფეხით ქვემოთ რომ. 175 00:08:05,698 --> 00:08:08,060 და მინდა აშენება სხვა ადგილი მე წასვლა. 176 00:08:08,060 --> 00:08:09,470 >> და რომ ის, რასაც მე ვაკეთებ აქ. 177 00:08:09,470 --> 00:08:11,430 ასე რომ 1 აღარ მიუთითებს null. 178 00:08:11,430 --> 00:08:13,830 მე განაცხადა, რომ ეს უსაფრთხო დაცემას აქ არის. 179 00:08:13,830 --> 00:08:15,789 მე აგებული სხვა კვანძის. 180 00:08:15,789 --> 00:08:18,330 და როდესაც მე, რომ კვანძის, მე გვაქვს კიდევ ერთი გადაწყვეტილება. 181 00:08:18,330 --> 00:08:20,890 სად ვარ მე ვაპირებ წავიდეთ აქედან? 182 00:08:20,890 --> 00:08:22,700 >> ისე, მე უკვე წავიდა ქვემოთ 1. 183 00:08:22,700 --> 00:08:24,470 ასე რომ, ახლა მე ალბათ მინდა ქვევით 6. 184 00:08:24,470 --> 00:08:24,970 უფლება. 185 00:08:24,970 --> 00:08:27,100 ისევ და ისევ, მე მაქვს 10 ადგილას შემიძლია აირჩიოს. 186 00:08:27,100 --> 00:08:30,060 მოდით ახლა დაცემას 6. 187 00:08:30,060 --> 00:08:32,280 ასე რომ, მე გარკვევა კარიბჭე თვალწინ 6. 188 00:08:32,280 --> 00:08:33,250 მე ფეხით ქვემოთ. 189 00:08:33,250 --> 00:08:34,580 და მე აშენება სხვა კვანძის. 190 00:08:34,580 --> 00:08:37,630 და მე მიაღწია მეორე გადაკვეთაზე წერტილი. 191 00:08:37,630 --> 00:08:40,289 >> ერთხელ, მაქვს 10 არჩევანი სად შემიძლია წასვლა. 192 00:08:40,289 --> 00:08:42,799 მე გადავიდა 1-დან 6. 193 00:08:42,799 --> 00:08:44,215 ასე რომ, ახლა მე, ალბათ, მინდა წასვლა 3. 194 00:08:44,215 --> 00:08:45,381 3, იქ არსად შემიძლია წასვლა. 195 00:08:45,381 --> 00:08:48,980 ასე რომ, მე უნდა გარკვევა გზა და ავაშენოთ თავს ახალ სივრცეში. 196 00:08:48,980 --> 00:08:50,870 და მაშინ 3, სადაც არ მინდა წასვლა? 197 00:08:50,870 --> 00:08:52,450 მე მინდა ქვევით 6. 198 00:08:52,450 --> 00:08:54,770 >> და, კიდევ ერთხელ, მე მქონდა გარკვევა გზა ამის გაკეთება. 199 00:08:54,770 --> 00:08:59,179 ასე რომ, ახლა მე გამოიყენება ჩემი გასაღები ჩადეთ შექმნა კვანძების და დაიწყოს აშენება ამ trie. 200 00:08:59,179 --> 00:09:00,220 მე დაიწყო ძირეული. 201 00:09:00,220 --> 00:09:03,666 მე წავიდა ქვემოთ 1636. 202 00:09:03,666 --> 00:09:05,540 და ახლა მე ბოლოში იქ რომ კვანძის. 203 00:09:05,540 --> 00:09:06,610 და თქვენ შეძლებთ ვხედავ, რომ თქვენს ეკრანზე. 204 00:09:06,610 --> 00:09:07,735 >> ეს მონიშნულია ყვითელი. 205 00:09:07,735 --> 00:09:10,020 სწორედ იქ, სადაც მე გაკეთებული ვარ. 206 00:09:10,020 --> 00:09:11,300 ჩემი გასაღები კეთდება. 207 00:09:11,300 --> 00:09:13,030 მე ამოწურა ყველა პოზიცია ჩემი გასაღები. 208 00:09:13,030 --> 00:09:15,040 ასე რომ, მე არ შემიძლია რაიმე. 209 00:09:15,040 --> 00:09:17,720 ასე რომ, ამ ეტაპზე, ყველა მე ნამდვილად უნდა გავაკეთოთ ამბობენ, OK. 210 00:09:17,720 --> 00:09:18,990 ეს არის სახის მოსწონს ეძებს ქვემოთ ადგილზე, 211 00:09:18,990 --> 00:09:21,115 თუ თქვენ ითვალისწინებდა თავს, როგორც ეს ერთგვარი გზა 212 00:09:21,115 --> 00:09:22,350 სხვადასხვა კავშირები. 213 00:09:22,350 --> 00:09:25,800 დალაგება ეძებს ქვემოთ და სახის spray ფერწერა ჰარვარდის ადგილზე. 214 00:09:25,800 --> 00:09:26,800 ეს არის ის, სახელი ამ. 215 00:09:26,800 --> 00:09:28,300 ვიცი, რომ ის, რაც ამ ადგილას. 216 00:09:28,300 --> 00:09:31,870 თუ ჩვენ იწყება root და ვეშვებით 1 და შემდეგ 6 და შემდეგ 3 და შემდეგ 6, 217 00:09:31,870 --> 00:09:32,780 სად ვართ ჩვენ? 218 00:09:32,780 --> 00:09:35,640 კარგად თუ დავაკვირდებით, ქვემოთ და ჩვენ ვხედავთ, ჰარვარდის, მაშინ 219 00:09:35,640 --> 00:09:38,960 ჩვენ ვიცით, რომ ჰარვარდის დაარსდა 1636 წელს საფუძველზე გზა 220 00:09:38,960 --> 00:09:41,400 ჩვენ ახორციელებს ამ მონაცემების სტრუქტურას. 221 00:09:41,400 --> 00:09:43,177 ასე რომ, იმედია პირდაპირი. 222 00:09:43,177 --> 00:09:44,760 ჩვენ ვაპირებთ, რომ კიდევ ორი ​​ჩანართები. 223 00:09:44,760 --> 00:09:50,060 და იმედია ეს დაეხმარება იხილეთ ამ გაკეთდეს ორჯერ მეტი. 224 00:09:50,060 --> 00:09:52,210 >> ახლა, მოდით ჩადეთ სხვა უნივერსიტეტში. 225 00:09:52,210 --> 00:09:54,630 მოდით ჩადეთ Yale ამ trie. 226 00:09:54,630 --> 00:09:57,037 იელის დაარსდა 1701. 227 00:09:57,037 --> 00:09:58,870 ასე რომ, ჩვენ იწყება root, როგორც ყოველთვის. 228 00:09:58,870 --> 00:09:59,890 და ჩვენ დავსახეთ გასვლის მაჩვენებელი. 229 00:09:59,890 --> 00:10:01,624 ჩვენ ვაპირებთ, რომ გამოიყენოთ, რომ გადაადგილება მეშვეობით. 230 00:10:01,624 --> 00:10:03,790 პირველი, რაც ჩვენ გვინდა წავიდეს ქვემოთ 1 გზას. 231 00:10:03,790 --> 00:10:05,830 ეს არის პირველი ციფრი ჩვენი გასაღები. 232 00:10:05,830 --> 00:10:08,420 საბედნიეროდ, მიუხედავად იმისა, რომ ჩვენ არ აქვს რაიმე სამუშაოს ამ დროს. 233 00:10:08,420 --> 00:10:09,919 1 გზა უკვე გაწმინდეს. 234 00:10:09,919 --> 00:10:13,520 მე განბაჟებული ეს ადრე, როცა იყო ჩასმა ჰარვარდის at 1636. 235 00:10:13,520 --> 00:10:18,090 ასე რომ, შემიძლია უსაფრთხოდ გადავიდეს down 1 და მხოლოდ იქ. 236 00:10:18,090 --> 00:10:20,150 თუ შეიძლება ქვევით 1. 237 00:10:20,150 --> 00:10:22,930 >> ახლა, თუმცა, მე მინდა წასვლა 7. 238 00:10:22,930 --> 00:10:24,280 მე გაწმინდეს გზა at 6. 239 00:10:24,280 --> 00:10:27,050 მე ვიცი, რომ შემიძლია უსაფრთხოდ გაგრძელება ქვემოთ 6 გზას. 240 00:10:27,050 --> 00:10:29,220 მაგრამ მე უნდა გააგრძელონ 7 გზას. 241 00:10:29,220 --> 00:10:30,580 ასე რომ, რა უნდა გავაკეთოთ? 242 00:10:30,580 --> 00:10:35,070 ისე, ისევე, როგორც ადრე, მე უბრალოდ უნდა გარკვევა კარიბჭე, გავიდნენ გზაზე, 243 00:10:35,070 --> 00:10:38,740 და ავაშენოთ ახალი კვანძის 7 გზას. 244 00:10:38,740 --> 00:10:40,250 როგორც ეს. 245 00:10:40,250 --> 00:10:42,930 >> ასე რომ, ახლა მე გადავიდა 1 და შემდეგ 7. 246 00:10:42,930 --> 00:10:45,550 და ახლა შეამჩნია, მე ერთგვარი საქართველოს ამ ახალი subbranch. 247 00:10:45,550 --> 00:10:46,050 უფლება. 248 00:10:46,050 --> 00:10:49,260 ყველაფერი დანარჩენი 16 , მე არ აინტერესებს. 249 00:10:49,260 --> 00:10:50,720 მე არ აკეთებს 16 არაფერი. 250 00:10:50,720 --> 00:10:51,750 მე ვაკეთებ 17 პერსონალი. 251 00:10:51,750 --> 00:10:58,380 >> ასე რომ, ახლა 17 წლის, მაქვს ერთგვარი Blaze ახალი მარშრუტები აქ. 252 00:10:58,380 --> 00:11:00,462 შემდეგი ციფრი ჩემი გასაღები არის 0. 253 00:11:00,462 --> 00:11:01,670 მე აშკარად ვერ მიიღოს სადმე. 254 00:11:01,670 --> 00:11:02,628 მე უბრალოდ აგებული ეს კვანძი. 255 00:11:02,628 --> 00:11:04,550 ასე რომ მე ვიცი, რომ არ არსებობს ბილიკები წინ აქ. 256 00:11:04,550 --> 00:11:06,370 ასე რომ, მე უნდა მიიღოს ერთ თავს. 257 00:11:06,370 --> 00:11:09,360 >> ასე რომ, მე malloc ახალი კვანძის და 0 ეტაპზე. 258 00:11:09,360 --> 00:11:12,770 და მაშინ კიდევ ერთხელ, მე malloc ახალი კვანძის და ერთ მომენტში არ არსებობს. 259 00:11:12,770 --> 00:11:15,870 ისევ და ისევ, მე ამოწურა ჩემი გასაღები, 1701. 260 00:11:15,870 --> 00:11:18,472 ასე რომ, მე გამოიყურება ქვემოთ და მე spray საღებავი Yale. 261 00:11:18,472 --> 00:11:19,680 ეს არის ის, სახელი ამ კვანძში. 262 00:11:19,680 --> 00:11:24,660 >> ასე რომ, ახლა თუ მე ოდესმე უნდა დაინახოს, თუ Yale არის ამ trie, მე იწყება root, 263 00:11:24,660 --> 00:11:27,060 მე ქვევით 1701, და გამოიყურება ქვემოთ. 264 00:11:27,060 --> 00:11:30,030 და თუ მე ვერ ვხედავ Yale spray მოხატული გადატანა ადგილზე, მაშინ 265 00:11:30,030 --> 00:11:32,200 მე ვიცი, Yale არსებობს ამ trie. 266 00:11:32,200 --> 00:11:32,950 მოდით გავაკეთოთ კიდევ ერთი. 267 00:11:32,950 --> 00:11:36,430 მოდით ჩადეთ Dartmouth ამ trie, რომელიც დაარსდა 1769 წელს. 268 00:11:36,430 --> 00:11:37,750 >> იწყება root ერთხელ. 269 00:11:37,750 --> 00:11:39,445 ჩემი პირველი ციფრი ჩემი გასაღები არის 1. 270 00:11:39,445 --> 00:11:40,820 თამამად შემიძლია ქვევით, რომ გზა. 271 00:11:40,820 --> 00:11:42,400 რომელიც უკვე არსებობს. 272 00:11:42,400 --> 00:11:44,040 შემდეგი ციფრი ჩემი გასაღები 7. 273 00:11:44,040 --> 00:11:45,890 თამამად შემიძლია ქვევით, რომ გზა. 274 00:11:45,890 --> 00:11:47,540 ის არსებობს, ისევე. 275 00:11:47,540 --> 00:11:49,000 >> ჩემი მომავალი 6. 276 00:11:49,000 --> 00:11:52,860 აქ, სადაც მე გაკეთებული ვარ ყვითელი იქ რომ შუა კვანძის, 277 00:11:52,860 --> 00:11:56,060 6 ამჟამად დახურული off. 278 00:11:56,060 --> 00:11:58,830 თუ მინდა წასვლა ქვემოთ რომ გზა, მე უნდა ავაშენოთ თავს. 279 00:11:58,830 --> 00:12:02,250 ასე რომ, მე malloc ახალი კვანძის და 6-პუნქტიანი არსებობს. 280 00:12:02,250 --> 00:12:04,250 შემდეგ, კიდევ ერთხელ, მე სროლით ახალი ბილიკების აქ. 281 00:12:04,250 --> 00:12:10,750 >> ასე რომ, მე malloc ახალი კვანძის ისე, რომ რომ კვანძის გზას ნომერი 9- და მაშინ ახლა 282 00:12:10,750 --> 00:12:13,584 თუ მე გამგზავრება 1769, და მე ქვემოთ. 283 00:12:13,584 --> 00:12:15,500 არაფერია გაკეთებული spray მოხატული არსებობს. 284 00:12:15,500 --> 00:12:16,930 შემიძლია წერა Dartmouth. 285 00:12:16,930 --> 00:12:20,710 და მე ჩასმული DARTMOUTH შევიდა trie. 286 00:12:20,710 --> 00:12:23,450 >> ასე რომ, ჩასმა რამ შევიდა trie. 287 00:12:23,450 --> 00:12:25,384 ახლა ჩვენ გვინდა მოძებნოთ ნივთები. 288 00:12:25,384 --> 00:12:27,050 როგორ უნდა მოძებნოთ რამ trie? 289 00:12:27,050 --> 00:12:29,170 ისე, ეს საკმაოდ ბევრი იგივე იდეა. 290 00:12:29,170 --> 00:12:33,620 ახლა ჩვენ უბრალოდ გამოიყენოთ ციფრები, რომ გასაღები თუ ჩვენ შეგვიძლია ნავიგაცია ძირი 291 00:12:33,620 --> 00:12:37,170 სადაც ჩვენ გვინდა, რომ წავიდეს trie. 292 00:12:37,170 --> 00:12:41,620 >> თუ ჩვენ მოხვდა ჩიხი ნებისმიერ წერტილში, მაშინ ჩვენ ვიცით, რომ ელემენტს არ არსებობს 293 00:12:41,620 --> 00:12:44,500 ანდა, რომ გზიდან უკვე გაწმინდეს. 294 00:12:44,500 --> 00:12:45,930 თუ ჩვენ, რათა ის ყველა გზა და ბოლოს, ყველა ჩვენ უნდა გავაკეთოთ 295 00:12:45,930 --> 00:12:48,471 არის გამოიყურება ქვემოთ და ვნახოთ, თუ ეს ელემენტს ჩვენ ვეძებთ. 296 00:12:48,471 --> 00:12:49,335 თუ ეს არის, წარმატება. 297 00:12:49,335 --> 00:12:52,610 თუ ეს ასე არ არის, ვერ. 298 00:12:52,610 --> 00:12:54,940 >> მოდით ძიება ჰარვარდის ამ trie. 299 00:12:54,940 --> 00:12:56,020 ჩვენ იწყება root. 300 00:12:56,020 --> 00:12:58,228 და კიდევ ერთხელ, ჩვენ ვაპირებთ შექმნა გასვლის მაჩვენებელი 301 00:12:58,228 --> 00:12:59,390 გავაკეთოთ ჩვენი ნაბიჯები ჩვენთვის. 302 00:12:59,390 --> 00:13:02,080 ძირი ჩვენ ვიცით, რომ პირველ რიგში, ჩვენ უნდა წავიდეთ, 1 303 00:13:02,080 --> 00:13:03,390 შეგვიძლია ამის გაკეთება? 304 00:13:03,390 --> 00:13:03,982 დიახ, ჩვენ შეგვიძლია. 305 00:13:03,982 --> 00:13:04,690 თუ უსაფრთხოდ არსებობს. 306 00:13:04,690 --> 00:13:06,660 ჩვენ შეგვიძლია წავიდეთ იქ. 307 00:13:06,660 --> 00:13:08,440 >> ახლა, მომდევნო რიგში, ჩვენ უნდა წავიდეთ 6. 308 00:13:08,440 --> 00:13:10,557 თუ არა 6 გზა არსებობს აქ? 309 00:13:10,557 --> 00:13:11,140 ჰო, ეს ასეა. 310 00:13:11,140 --> 00:13:12,690 ჩვენ შეგვიძლია დაცემას 6 გზას. 311 00:13:12,690 --> 00:13:13,905 ჩვენ დასრულდება მდე აქ. 312 00:13:13,905 --> 00:13:16,130 >> ვერ ვეშვებით 3 გზა აქ? 313 00:13:16,130 --> 00:13:18,450 ისე, როგორც ირკვევა, დიახ, არსებობს ძალიან. 314 00:13:18,450 --> 00:13:20,790 და მივიღებთ 6 გზა აქ? 315 00:13:20,790 --> 00:13:21,982 დიახ, ჩვენ შეგვიძლია. 316 00:13:21,982 --> 00:13:24,002 >> ჩვენ არ საკმაოდ უპასუხა კითხვა ამჟამად. 317 00:13:24,002 --> 00:13:25,710 არსებობს კიდევ ერთი ნაბიჯი, რომელიც ახლა 318 00:13:25,710 --> 00:13:28,520 ჩვენ უნდა შევხედოთ ქვემოთ და ვნახოთ, თუ რომ სინამდვილეში 319 00:13:28,520 --> 00:13:32,660 თუ ჩვენ ვეძებთ ჰარვარდის, ის არის, რომ რა ჩვენ მას შემდეგ, რაც ჩვენ გამონაბოლქვი გასაღები? 320 00:13:32,660 --> 00:13:35,430 მაგალითში ჩვენ გამოყენებით აქ, განმავლობაში ყოველთვის ოთხი ციფრი. 321 00:13:35,430 --> 00:13:40,280 მაგრამ თქვენ შეიძლება გამოყენებით, მაგალითად, სადაც თქვენ შენახვის ლექსიკონი სიტყვა. 322 00:13:40,280 --> 00:13:44,060 >> ასე რომ, ნაცვლად, რომელმაც 10 მითითებას ჩემი ადგილმდებარეობა, ალბათ 26. 323 00:13:44,060 --> 00:13:46,040 ერთი თითოეული წერილი ანბანი. 324 00:13:46,040 --> 00:13:50,350 და არსებობს სიტყვები, როგორიცაა წინ, რომელიც არის subset სურათების, მაგალითად. 325 00:13:50,350 --> 00:13:53,511 ასე რომ, მაშინაც კი, თუ თქვენ მიიღებთ ბოლოს გასაღები და თქვენ გამოიყურება ქვემოთ, 326 00:13:53,511 --> 00:13:55,260 თქვენ არ ხედავთ რა თქვენ ეძებთ. 327 00:13:55,260 --> 00:13:58,500 >> ასე, რომ თქვენ ყოველთვის უნდა კვეთენ მთელი გზა და მაშინ 328 00:13:58,500 --> 00:14:01,540 თუ იყო წარმატებით შეუძლიათ traverse მთელი გზა, 329 00:14:01,540 --> 00:14:03,440 შეხედეთ ქვემოთ და ამის ერთ-ერთი საბოლოო დადასტურება. 330 00:14:03,440 --> 00:14:05,120 ის არის, რომ ის, რაც მე ვეძებ? 331 00:14:05,120 --> 00:14:07,740 ისე, მე გამოიყურება ქვემოთ დაწყების შემდეგ ზედა და აპირებს 1636. 332 00:14:07,740 --> 00:14:08,240 მე გამოიყურება ქვემოთ. 333 00:14:08,240 --> 00:14:09,400 მე ვხედავ ჰარვარდის. 334 00:14:09,400 --> 00:14:11,689 ასე რომ, დიახ, მე შეძლო. 335 00:14:11,689 --> 00:14:13,980 რა მოხდება, თუ ის, რაც მე ვეძებ არ არის trie, თუმცა. 336 00:14:13,980 --> 00:14:17,200 რა მოხდება, თუ ვეძებ Princeton, რომელიც დაარსდა 1746 წელს. 337 00:14:17,200 --> 00:14:20,875 ასე რომ, 1746 ხდება ჩემი გასაღები ნავიგაცია მეშვეობით trie. 338 00:14:20,875 --> 00:14:22,040 ისე, მე იწყება root. 339 00:14:22,040 --> 00:14:24,760 და, პირველ რიგში, მინდა, რომ მიდის ქვემოთ 1 გზას. 340 00:14:24,760 --> 00:14:25,590 შემიძლია ამის გაკეთება? 341 00:14:25,590 --> 00:14:26,490 დიახ, მე არ შემიძლია. 342 00:14:26,490 --> 00:14:28,730 >> შემიძლია ქვევით 7 გზა არსებობს? 343 00:14:28,730 --> 00:14:29,230 ჰო, მე არ შემიძლია. 344 00:14:29,230 --> 00:14:30,750 რომ არსებობს ძალიან. 345 00:14:30,750 --> 00:14:32,460 მაგრამ შემიძლია ქვევით 4 გზა აქ? 346 00:14:32,460 --> 00:14:35,550 ეს იგივეა სვამს კითხვას, შეუძლია მე გაგრძელება ქვემოთ რომ პატარა მოედანზე 347 00:14:35,550 --> 00:14:37,114 რომ მე მონიშნულია ყვითელი? 348 00:14:37,114 --> 00:14:38,030 იქ არაფერია. 349 00:14:38,030 --> 00:14:38,610 უფლება. 350 00:14:38,610 --> 00:14:41,310 >> არ არსებობს გზა, წინ ქვემოთ 4 გზას. 351 00:14:41,310 --> 00:14:46,480 თუ Princeton იყო ამ trie, რომ 4 არ გაიწმინდა ჩვენთვის უკვე. 352 00:14:46,480 --> 00:14:49,130 ასე რომ, ამ ეტაპზე ჩვენ ჩიხში. 353 00:14:49,130 --> 00:14:50,250 ჩვენ არ შეგვიძლია რაიმე. 354 00:14:50,250 --> 00:14:53,440 ასე რომ, შეიძლება ითქვას, საბოლოოდ, არ. 355 00:14:53,440 --> 00:14:56,760 პრინსტონის არ არსებობს ამ trie. 356 00:14:56,760 --> 00:14:58,860 >> ასე რომ, რას ნიშნავს? 357 00:14:58,860 --> 00:14:59,360 უფლება. 358 00:14:59,360 --> 00:15:01,000 არსებობს ბევრი ხდება აქ. 359 00:15:01,000 --> 00:15:02,500 არსებობს მითითებას მთელი ადგილი. 360 00:15:02,500 --> 00:15:04,249 და, როგორც ხედავთ მხოლოდ გრაფიკაზე, 361 00:15:04,249 --> 00:15:07,010 არსებობს ბევრი კვანძების რომ რომლებიც სახის საფრენი გარშემო. 362 00:15:07,010 --> 00:15:13,480 მაგრამ შეამჩნია, ყოველ დროს, ჩვენ გვინდოდა, რომ შეამოწმეთ არის თუ არა რაღაც trie, 363 00:15:13,480 --> 00:15:15,000 ჩვენ მხოლოდ უნდა გაეკეთებინათ 4 გადადის. 364 00:15:15,000 --> 00:15:17,208 >> ყოველ დროს, ჩვენ გვინდოდა, რომ ჩადეთ რამე trie, 365 00:15:17,208 --> 00:15:20,440 ჩვენ უნდა მიიღოს 4 გადადის, შესაძლოა, mallocing რაღაცები გზაზე. 366 00:15:20,440 --> 00:15:23,482 მაგრამ, როგორც ვნახეთ, როდესაც ჩვენ ჩასმული DARTMOUTH შევიდა trie, 367 00:15:23,482 --> 00:15:25,940 ზოგჯერ გზას შეიძლება უკვე განუბაჟებელი ჩვენთვის. 368 00:15:25,940 --> 00:15:30,520 ასე რომ, ჩვენი trie იღებს უფრო დიდი და დიდი, ჩვენ ნაკლებად მუშაობს ყოველ ჯერზე 369 00:15:30,520 --> 00:15:32,270 ჩადეთ ახალი რამ იმიტომ, რომ ჩვენ უკვე 370 00:15:32,270 --> 00:15:35,746 აშენდა ბევრი შუალედური ფილიალები გზაზე. 371 00:15:35,746 --> 00:15:38,370 თუ ჩვენ მხოლოდ ოდესმე უნდა შევხედოთ 4 რამ, 4 არის მუდმივი. 372 00:15:38,370 --> 00:15:41,750 ჩვენ ნამდვილად სახის ახლოვდება მუდმივი დრო ჩასმა 373 00:15:41,750 --> 00:15:44,501 და მუდმივი დრო საძიებელი. 374 00:15:44,501 --> 00:15:47,500 იდგა, რა თქმა უნდა, ის არის, რომ ამ trie, როგორც თქვენ ალბათ გითხრათ, 375 00:15:47,500 --> 00:15:49,030 დიდია. 376 00:15:49,030 --> 00:15:51,040 თითოეული ამ კვანძების იკავებს ბევრი სივრცეში. 377 00:15:51,040 --> 00:15:52,090 >> მაგრამ ეს tradeoff. 378 00:15:52,090 --> 00:15:55,260 თუ გვინდა, მართლაც სწრაფი ჩასმა, მართლაც სწრაფი წაშლის, 379 00:15:55,260 --> 00:15:59,630 და მართლაც სწრაფი ძიება, ჩვენ უნდა აქვს ბევრი მონაცემები საფრენი გარშემო. 380 00:15:59,630 --> 00:16:03,590 ჩვენ უნდა გათვალისწინებულია ბევრი სივრცე და მეხსიერების, რომ მონაცემები სტრუქტურა 381 00:16:03,590 --> 00:16:04,290 არსებობა. 382 00:16:04,290 --> 00:16:05,415 >> და ისე, რომ tradeoff. 383 00:16:05,415 --> 00:16:07,310 მაგრამ როგორც ჩანს, ჩვენ შეიძლება იპოვეს იგი. 384 00:16:07,310 --> 00:16:09,560 ჩვენ შეიძლება არ აღმოაჩინა, რომ წმინდა გრაალი მონაცემთა სტრუქტურები 385 00:16:09,560 --> 00:16:12,264 სწრაფი ჩანართი, წაშლა, და საძიებელი. 386 00:16:12,264 --> 00:16:14,430 და, შესაძლოა, ეს იქნება შესაბამისი მონაცემები სტრუქტურა 387 00:16:14,430 --> 00:16:18,890 გამოყენება ნებისმიერი ინფორმაცია ჩვენ ვცდილობთ, რომ მაღაზია. 388 00:16:18,890 --> 00:16:21,860 მე Doug Lloyd, ეს არის CS50. 389 00:16:21,860 --> 00:16:23,433