1 00:00:00,000 --> 00:00:12,350 >> [সঙ্গীত বাজাচ্ছি] 2 00:00:12,350 --> 00:00:13,050 >> Rob Bowden: হাই. 3 00:00:13,050 --> 00:00:13,640 আমি রব নই. 4 00:00:13,640 --> 00:00:16,210 আর এর এই সমাধান বের করা যাক. 5 00:00:16,210 --> 00:00:20,070 তাই আমরা এখানে বাস্তবায়ন করতে যাচ্ছেন একটি সাধারণ টেবিল. 6 00:00:20,070 --> 00:00:24,090 আমরা দেখতে যে আমাদের মধ্যে struct নোড টেবিল ভালো চেহারা যাচ্ছে. 7 00:00:24,090 --> 00:00:28,710 সুতরাং এটি একটি গৃহস্থালি শব্দ আছে যাচ্ছে আকার উচ্চতা + 1 টি অ্যারে. 8 00:00:28,710 --> 00:00:32,259 , + 1 টি ভুলবেন না, যেহেতু সর্বোচ্চ অভিধানে শব্দ 45 হয় 9 00:00:32,259 --> 00:00:33,130 অক্ষর. 10 00:00:33,130 --> 00:00:37,070 এবং তারপর আমরা এক অতিরিক্ত প্রয়োজন চলুন ব্যাকস্ল্যাশ শূন্য জন্য অক্ষর. 11 00:00:37,070 --> 00:00:40,870 >> এবং তারপর প্রতিটি আমাদের hashtable বালতি সংরক্ষণ করতে যাচ্ছে একটি 12 00:00:40,870 --> 00:00:42,320 নোড যুক্ত তালিকা. 13 00:00:42,320 --> 00:00:44,420 আমরা এখানে অনুসন্ধান রৈখিক করছেন না. 14 00:00:44,420 --> 00:00:48,430 তাই যাতে পরবর্তী লিঙ্ক বালতি উপাদান, আমরা একটি প্রয়োজন 15 00:00:48,430 --> 00:00:50,390 struct নোড * পরবর্তী. 16 00:00:50,390 --> 00:00:51,110 ঠিক আছে. 17 00:00:51,110 --> 00:00:53,090 সুতরাং যে একটি নোডের মতো দেখতে কি. 18 00:00:53,090 --> 00:00:56,180 >> এখন এখানে ঘোষণা হল আমাদের hashtable এর. 19 00:00:56,180 --> 00:00:59,640 এটা 16.834 buckets আছে যাচ্ছে. 20 00:00:59,640 --> 00:01:01,910 কিন্তু যে সংখ্যা সত্যিই কোন ব্যাপার না. 21 00:01:01,910 --> 00:01:05,450 এবং পরিশেষে, আমরা আছে চলুন বিশ্বব্যাপী পরিবর্তনশীল hashtable আকার, যা 22 00:01:05,450 --> 00:01:07,000 শূন্য হিসাবে চলতে শুরু করতে যাচ্ছে. 23 00:01:07,000 --> 00:01:10,760 এবং এটা কিভাবে ট্র্যাক রাখতে যাচ্ছে অনেক শব্দ আমাদের অভিধান আছে. 24 00:01:10,760 --> 00:01:13,710 >> সুতরাং আসুন লোড কটাক্ষপাত করা যাক. 25 00:01:13,710 --> 00:01:16,390 যে চাপের লক্ষ্য করুন, এটি একটি bool ফেরৎ. 26 00:01:16,390 --> 00:01:20,530 এটি সফলভাবে যদি আপনি সত্য ফিরে লোড, এবং মিথ্যা অন্যথায়. 27 00:01:20,530 --> 00:01:23,990 এবং এটি একটি const গৃহস্থালি * অভিধান লাগে অভিধান যা 28 00:01:23,990 --> 00:01:25,280 আমরা খোলার ব্যাপারে. 29 00:01:25,280 --> 00:01:27,170 তাই প্রথম যে জিনিস আমরা কি করতে যাচ্ছেন. 30 00:01:27,170 --> 00:01:29,500 >> আমরা fopen চলুন পড়ার জন্য অভিধান. 31 00:01:29,500 --> 00:01:31,680 এবং আমরা করা আছে চলুন এটি সফল হয়েছে তা নিশ্চিত. 32 00:01:31,680 --> 00:01:35,920 এটি শূন্য ফিরে তাই হয়, তাহলে আমরা না সফলভাবে অভিধান খুলতে. 33 00:01:35,920 --> 00:01:37,440 এবং আমরা মিথ্যা ফিরে প্রয়োজন. 34 00:01:37,440 --> 00:01:41,580 কিন্তু এটা সফলভাবে যে অভিমানী খোলা, তাহলে আমরা পড়তে চাই 35 00:01:41,580 --> 00:01:42,400 অভিধান. 36 00:01:42,400 --> 00:01:46,450 আমরা কিছু খুঁজে না হওয়া পর্যন্ত তাই looping রাখা এই লুপ আউট বিরতি কারণ, 37 00:01:46,450 --> 00:01:47,570 আমরা দেখতে পাবেন যা. 38 00:01:47,570 --> 00:01:48,920 সুতরাং looping রাখা. 39 00:01:48,920 --> 00:01:51,780 >> এবং এখন আমরা চলুন একটি নোডের malloc. 40 00:01:51,780 --> 00:01:54,020 এবং অবশ্যই আমরা প্রয়োজন এয়ার আবার চেক. 41 00:01:54,020 --> 00:01:58,680 সুতরাং mallocing সফল হয়নি, তাহলে আমরা যে আমরা কোনো নোড আন চান 42 00:01:58,680 --> 00:02:02,590 আগে malloc ঘটেছে, বন্ধ করুন অভিধান এবং মিথ্যা ফিরে. 43 00:02:02,590 --> 00:02:06,830 কিন্তু যে উপেক্ষা, অভিমানী আমরা সফল, তাহলে আমরা fscanf ব্যবহার করতে চান 44 00:02:06,830 --> 00:02:12,400 থেকে একটি একক শব্দ পড়তে আমাদের আমাদের নোড অভিধান. 45 00:02:12,400 --> 00:02:17,940 সুতরাং যে এন্ট্রি> শব্দ মনে রাখতে গৃহস্থালি + 1 টি সাইজ LENGHTH কালাম বাফার 46 00:02:17,940 --> 00:02:20,300 আমরা এখনো শব্দ সংরক্ষণ করতে যাচ্ছেন যে 47 00:02:20,300 --> 00:02:25,070 >> সুতরাং fscanf যতদিন, 1 ফিরে যাচ্ছে এটি সক্ষম করার সফলভাবে ছিল 48 00:02:25,070 --> 00:02:26,750 ফাইল থেকে একটি শব্দ পড়তে. 49 00:02:26,750 --> 00:02:30,460 একটি ত্রুটি হয় যদি সেটা হয়, অথবা আমরা ফাইলের শেষে পৌঁছানোর, এটা 50 00:02:30,460 --> 00:02:31,950 1 ফিরে না. 51 00:02:31,950 --> 00:02:35,180 এটা 1 ফিরে না যা ক্ষেত্রে পরিশেষে আমরা আউট বিরতি চলুন 52 00:02:35,180 --> 00:02:37,280 এই সময় লুপ. 53 00:02:37,280 --> 00:02:42,770 সুতরাং আমরা দেখতে যে আমরা সফলভাবে আছে একবার মধ্যে একটি শব্দ পড়া 54 00:02:42,770 --> 00:02:48,270 এন্ট্রি> শব্দ, তাহলে আমরা যে চলুন আমাদের হ্যাশ ফাংশন ব্যবহার করে শব্দ. 55 00:02:48,270 --> 00:02:49,580 >> এর কটাক্ষপাত করা যাক হ্যাশ ফাংশন. 56 00:02:49,580 --> 00:02:52,430 57 00:02:52,430 --> 00:02:55,610 সুতরাং আপনি সত্যিই প্রয়োজন নেই এই বুঝতে. 58 00:02:55,610 --> 00:02:59,460 এবং প্রকৃতপক্ষে আমরা এই হ্যাশ টানা ইন্টারনেট থেকে কাজ. 59 00:02:59,460 --> 00:03:04,010 আপনি স্বীকার করা প্রয়োজন শুধুমাত্র জিনিস এই একটি const গৃহস্থালি * শব্দ লাগে. 60 00:03:04,010 --> 00:03:08,960 সুতরাং এটা ইনপুট হিসেবে একটি পংক্তি গ্রহণ, এবং এর আউটপুট হিসাবে একটি স্বাক্ষরবিহীন int-ফেরার. 61 00:03:08,960 --> 00:03:12,360 তাই যে সমস্ত একটি হ্যাশ ফাংশন হয়, এটা হয় একটি ইনপুট মধ্যে নেয় এবং আপনি একটি দেয় 62 00:03:12,360 --> 00:03:14,490 hashtable মধ্যে সূচী. 63 00:03:14,490 --> 00:03:18,530 >> আমরা NUM_BUCKETS দ্বারা moding করছি যে লক্ষ্য করুন, তাই যে মূল্য ফেরত 64 00:03:18,530 --> 00:03:21,730 আসলে hashtable মধ্যে একটি সূচক এবং না অতিক্রম না সূচক 65 00:03:21,730 --> 00:03:24,320 অ্যারের কোট. 66 00:03:24,320 --> 00:03:28,060 সুতরাং যে ফাংশন, আমরা চলুন দেওয়া আমরা পড়তে যে শব্দ হ্যাশ করার 67 00:03:28,060 --> 00:03:29,390 অভিধান. 68 00:03:29,390 --> 00:03:31,700 এবং তারপর আমরা ব্যবহার করতে যাচ্ছেন সন্নিবেশ যে হ্যাশ 69 00:03:31,700 --> 00:03:33,750 hashtable ঢোকা. 70 00:03:33,750 --> 00:03:38,520 >> এখন hashtable হ্যাশ বর্তমান টেবিলে তালিকা লিঙ্ক. 71 00:03:38,520 --> 00:03:41,410 এবং এটা খুবই সম্ভব এটি শুধু শূন্য যে. 72 00:03:41,410 --> 00:03:44,960 আমরা আমাদের এন্ট্রি সন্নিবেশ করতে চান এই লিঙ্ক তালিকা শুরুতে. 73 00:03:44,960 --> 00:03:48,600 এবং তাই আমরা আমাদের বর্তমান আছে চলুন কি hashtable করতে এন্ট্রি পয়েন্ট 74 00:03:48,600 --> 00:03:50,380 বর্তমানে স্থানটিকে. 75 00:03:50,380 --> 00:03:53,310 এবং তারপর আমরা, সংরক্ষণ চলুন এ hashtable মধ্যে 76 00:03:53,310 --> 00:03:55,350 হ্যাশ, বর্তমান এন্ট্রি. 77 00:03:55,350 --> 00:03:59,320 তাই এই দুটি লাইন সফলভাবে সন্নিবেশ শুরুতে এন্ট্রি 78 00:03:59,320 --> 00:04:02,260 যে সূচিতে যুক্ত তালিকা hashtable মধ্যে. 79 00:04:02,260 --> 00:04:04,900 >> আমরা যে সঙ্গে সম্পন্ন হলে, আমরা জানি আমরা অন্য শব্দ পাওয়া যে 80 00:04:04,900 --> 00:04:07,790 অভিধান, এবং আমরা আবার বাড়ায়. 81 00:04:07,790 --> 00:04:13,960 সুতরাং আমরা করছেন রাখা যে fscanf যতক্ষণ অবশেষে এ অ 1 কিছু ফেরত 82 00:04:13,960 --> 00:04:16,950 যা বিন্দু মনে রাখা আমরা এন্ট্রি মুক্ত করতে হবে. 83 00:04:16,950 --> 00:04:19,459 সুতরাং এখানে আমরা একটি এন্ট্রি malloced. 84 00:04:19,459 --> 00:04:21,329 এবং আমরা কিছু পড়ার চেষ্টা অভিধান থেকে. 85 00:04:21,329 --> 00:04:23,910 এবং আমরা সফলভাবে পড়তে হয়নি মধ্যে অভিধান থেকে কিছু, 86 00:04:23,910 --> 00:04:26,650 আমরা এন্ট্রি মুক্ত করতে প্রয়োজন যে ক্ষেত্রে আমরা আসলে পুরা না 87 00:04:26,650 --> 00:04:29,140 hashtable, এবং পরিশেষে বিরতি. 88 00:04:29,140 --> 00:04:32,750 >> আমরা আউট বিরতি পরে আমরা দেখাতে, ভাল, আমরা, কারণ সেখানে আউট বিরতি নি 89 00:04:32,750 --> 00:04:34,360 একটি ত্রুটি ফাইল থেকে পড়া হয়? 90 00:04:34,360 --> 00:04:37,120 অথবা আমরা আউট বিরতি, কারণ আমরা ফাইলের শেষে পৌঁছেছেন? 91 00:04:37,120 --> 00:04:39,480 একটি ত্রুটি তারপর ছিল, যদি আমরা মিথ্যা ফিরে চাই. 92 00:04:39,480 --> 00:04:40,930 লোড সফল হয়নি কারণ. 93 00:04:40,930 --> 00:04:43,890 আর এই প্রক্রিয়ায় আমরা আন চান সব আমরা পড়তে যে শব্দ, এবং 94 00:04:43,890 --> 00:04:45,670 অভিধান ফাইলটি বন্ধ করুন. 95 00:04:45,670 --> 00:04:48,740 >> আমরা সফল হয়নি Assuming, তারপর আমরা ঠিক এখনও অভিধান বন্ধ করতে হবে 96 00:04:48,740 --> 00:04:53,040 ফাইল, এবং পরিশেষে সত্য ফিরে যেহেতু আমরা সফলভাবে অভিধান লোড. 97 00:04:53,040 --> 00:04:54,420 এবং যে চাপের জন্য এটি. 98 00:04:54,420 --> 00:04:59,020 সুতরাং এখন, একটি লোড hashtable দেওয়া চেক এই মত দেখতে যাচ্ছে. 99 00:04:59,020 --> 00:05:03,140 তাই, যা এটি একটি bool ফেরৎ, চেক পাস কি না তা নির্দেশ করা যাচ্ছে 100 00:05:03,140 --> 00:05:07,530 গৃহস্থালি * শব্দ, কি না তা পাস স্ট্রিং আমাদের অভিধান আছে. 101 00:05:07,530 --> 00:05:09,890 এটি অভিধানে যদি তাই এটা আমাদের hashtable মধ্যে যদি, 102 00:05:09,890 --> 00:05:11,170 আমরা সত্য ফিরে আসবে. 103 00:05:11,170 --> 00:05:13,380 এটা না হলে, আমরা মিথ্যা ফিরে আসবে. 104 00:05:13,380 --> 00:05:17,740 >> এই শব্দ সালে পাশ দেওয়া, আমরা করছি শব্দ হ্যাশ যাচ্ছে. 105 00:05:17,740 --> 00:05:22,110 এখন চিনতে একটি গুরুত্বপূর্ণ জিনিস লোড আমরা জানতাম যে যে সব 106 00:05:22,110 --> 00:05:23,820 আমরা ছোট হাতের হতে যাচ্ছেন শব্দ. 107 00:05:23,820 --> 00:05:25,820 কিন্তু এখানে আমরা তাই নিশ্চিত না হন. 108 00:05:25,820 --> 00:05:29,510 আমরা আমাদের হ্যাশ ফাংশন কটাক্ষপাত করা হলে, আসলে আমাদের হ্যাশ ফাংশন 109 00:05:29,510 --> 00:05:32,700 নিম্ন আবরণ প্রতিটি চরিত্র শব্দের. 110 00:05:32,700 --> 00:05:37,940 সুতরাং নির্বিশেষে ক্যাপিটালাইজেশন এর শব্দ, আমাদের হ্যাশ ফাংশন রিটার্ন করে 111 00:05:37,940 --> 00:05:42,270 যাই হোক না কেন জন্য একই সূচী ক্যাপিটালাইজেশন এটা থাকা উচিত, যেমন হয় 112 00:05:42,270 --> 00:05:45,280 একটি সম্পূর্ণ ছোট হাতের জন্য ফিরে শব্দের সংস্করণ. 113 00:05:45,280 --> 00:05:46,600 ঠিক আছে. 114 00:05:46,600 --> 00:05:49,790 এটা আমাদের সূচী মধ্যে হয় এই শব্দ জন্য hashtable. 115 00:05:49,790 --> 00:05:52,940 >> এখন লুপ জন্য এই যাচ্ছে লিঙ্ক তালিকা উপর বারবার 116 00:05:52,940 --> 00:05:55,000 যে যে সূচিতে ছিল. 117 00:05:55,000 --> 00:05:59,610 সুতরাং আমরা এন্ট্রি আরম্ভ করা হয় বিজ্ঞপ্তি যে সূচক নির্দেশ. 118 00:05:59,610 --> 00:06:02,750 আমরা চালিয়ে যাচ্ছেন এন্ট্রি! = শূন্য সময়. 119 00:06:02,750 --> 00:06:07,770 এবং মনে রাখবেন যে পয়েন্টার আপডেট পরবর্তী আমাদের যুক্ত তালিকা এন্ট্রি = এন্ট্রি>. 120 00:06:07,770 --> 00:06:14,400 সুতরাং আমাদের বর্তমান এন্ট্রি পয়েন্ট আছে লিঙ্ক তালিকায় পরবর্তী আইটেম. 121 00:06:14,400 --> 00:06:19,250 >> তাই লিঙ্ক তালিকায় প্রতিটি এন্ট্রির জন্য, আমরা strcasecmp ব্যবহার করতে যাচ্ছেন. 122 00:06:19,250 --> 00:06:20,330 এটা strcomp না. 123 00:06:20,330 --> 00:06:23,780 আবার, আমরা চাই কারণ জন্মভূমিতে জিনিস মামলা করবেন. 124 00:06:23,780 --> 00:06:27,870 সুতরাং আমরা তুলনা করতে strcasecmp ব্যবহার এই মাধ্যমে প্রেরণ করা হত যে শব্দ 125 00:06:27,870 --> 00:06:31,860 শব্দ বিরুদ্ধে ফাংশন যে এই এন্ট্রি হয়. 126 00:06:31,860 --> 00:06:35,570 এটি শূন্য ফেরৎ, যে ছিল মানে আমরা চাই যে ক্ষেত্রে একটি ম্যাচ, 127 00:06:35,570 --> 00:06:36,630 সত্য ফিরে. 128 00:06:36,630 --> 00:06:39,590 আমরা সফলভাবে পাওয়া আমাদের hashtable শব্দ. 129 00:06:39,590 --> 00:06:43,040 >> একটি ম্যাচ ছিল না, তাহলে আমরা করছি আবার লুপ যাচ্ছে এবং তাকান 130 00:06:43,040 --> 00:06:43,990 পরের এন্ট্রি. 131 00:06:43,990 --> 00:06:47,640 এবং আমরা যখন সেখানে looping চালিয়ে যাব এই লিঙ্ক তালিকায় এন্ট্রি হয়. 132 00:06:47,640 --> 00:06:50,160 আমরা বিরতি তাহলে কি হবে লুপ জন্য এই আউট? 133 00:06:50,160 --> 00:06:55,110 আমরা একটি এন্ট্রি খুঁজে পান না মানে যে ক্ষেত্রে, এই শব্দ মিলেছে 134 00:06:55,110 --> 00:07:00,220 আমরা ইঙ্গিত মিথ্যা ফিরে যে আমাদের hashtable এই শব্দ ধারণ করা হয়নি. 135 00:07:00,220 --> 00:07:02,540 এবং যে একটি চেক আছে. 136 00:07:02,540 --> 00:07:04,790 >> তাই এর আকার কটাক্ষপাত করা যাক. 137 00:07:04,790 --> 00:07:06,970 এখন আকার বেশ সহজ হবে. 138 00:07:06,970 --> 00:07:11,080 যেহেতু প্রতিটি শব্দের জন্য, চাপের মধ্যে স্মরণ আমরা একটি আন্তর্জাতিক মান বৃদ্ধি, পাওয়া 139 00:07:11,080 --> 00:07:12,880 পরিবর্তনশীল hashtable আকার. 140 00:07:12,880 --> 00:07:16,480 তাই মাপ ফাংশন ঠিক যাচ্ছে বিশ্বব্যাপী পরিবর্তনশীল ফিরে যাও. 141 00:07:16,480 --> 00:07:18,150 এবং যে এটি. 142 00:07:18,150 --> 00:07:22,300 >> এখন পরিশেষে, আমরা মাল খালাস করতে হবে অভিধান সবকিছু সম্পন্ন এর একবার. 143 00:07:22,300 --> 00:07:25,340 তাই কিভাবে আমরা তা করতে যাচ্ছে? 144 00:07:25,340 --> 00:07:30,440 রাইট এখানে আমরা ধরে looping করছি আমাদের টেবিল সব buckets. 145 00:07:30,440 --> 00:07:33,240 সুতরাং NUM_BUCKETS buckets আছে. 146 00:07:33,240 --> 00:07:37,410 এবং প্রতিটি লিঙ্ক তালিকা জন্য আমাদের hashtable, আমরা ধরে লুপ চলুন 147 00:07:37,410 --> 00:07:41,070 লিঙ্ক তালিকা সম্পূর্ণতা, প্রতিটি উপাদান freeing. 148 00:07:41,070 --> 00:07:42,900 >> এখন আমরা সচেতন হওয়া প্রয়োজন. 149 00:07:42,900 --> 00:07:47,910 তাই আমরা এখানে একটি অস্থায়ী ভেরিয়েবল আছে যে পরের পয়েন্টার জমা করার এর 150 00:07:47,910 --> 00:07:49,730 লিঙ্ক তালিকায় উপাদান. 151 00:07:49,730 --> 00:07:52,140 এবং তারপর আমরা বিনামূল্যে চলুন বর্তমান উপাদান. 152 00:07:52,140 --> 00:07:55,990 আমরা আমরা আমরা যেহেতু এই কাজ নিশ্চিত করা প্রয়োজন শুধু বর্তমান উপাদান মুক্ত করতে পারবেন না 153 00:07:55,990 --> 00:07:59,180 এবং তারপর পরবর্তী পয়েন্টার অ্যাক্সেস করতে চেষ্টা করুন, একবার যেহেতু আমরা এটি মুক্ত করেছি, 154 00:07:59,180 --> 00:08:00,870 স্মৃতি হয়ে অবৈধ. 155 00:08:00,870 --> 00:08:04,990 >> সুতরাং আমরা একটি পয়েন্টার কাছাকাছি রাখা প্রয়োজন পরবর্তী উপাদান, তাহলে আমরা মুক্ত করতে পারেন 156 00:08:04,990 --> 00:08:08,360 বর্তমান উপাদান, এবং তারপর আমরা আপডেট করতে পারেন নির্দেশ আমাদের বর্তমান উপাদান 157 00:08:08,360 --> 00:08:09,550 পরবর্তী উপাদান. 158 00:08:09,550 --> 00:08:12,800 আমরা উপাদান লুপ আছে করব, যখন এই লিঙ্ক তালিকায়. 159 00:08:12,800 --> 00:08:15,620 আমরা সব লিঙ্ক জন্য যে চেষ্টা করবো hashtable এ তালিকায়. 160 00:08:15,620 --> 00:08:19,460 আমরা যে সঙ্গে সম্পন্ন এবং একবার, আমরা করেছি সম্পূর্ণ hashtable unloaded, এবং 161 00:08:19,460 --> 00:08:20,190 আমরা কাজ সম্পন্ন হয়. 162 00:08:20,190 --> 00:08:23,200 সুতরাং এটি আন জন্য অসম্ভব কখনও মিথ্যা ফিরে. 163 00:08:23,200 --> 00:08:26,470 এবং আমরা কাজ সম্পন্ন হয়, আমরা শুধু সত্য ফিরে. 164 00:08:26,470 --> 00:08:29,000 >> এর এই সমাধান ব্যবহার করে দেখুন না. 165 00:08:29,000 --> 00:08:33,070 তাই আসুন কি আমাদের কটাক্ষপাত করা যাক struct নোড মত হবে. 166 00:08:33,070 --> 00:08:36,220 এখানে আমরা আমরা একটি bool আছে চলুন দেখুন শব্দ এবং একটি struct নোড * শিশু 167 00:08:36,220 --> 00:08:37,470 বন্ধনী বর্ণমালা. 168 00:08:37,470 --> 00:08:38,929 169 00:08:38,929 --> 00:08:42,020 আপনি হতে পারেন সুতরাং প্রথম জিনিস ভাবছি, কেন বর্ণমালা 170 00:08:42,020 --> 00:08:44,660 এড 27 হিসাবে সংজ্ঞায়িত? 171 00:08:44,660 --> 00:08:47,900 ভাল, আমরা প্রয়োজন চলুন মনে রাখা ঊর্ধকমা হ্যান্ডলিং হবে. 172 00:08:47,900 --> 00:08:51,910 সুতরাং যে কিছুটা একটি অংশ হতে যাচ্ছে এই প্রোগ্রাম সারা বিশেষ ক্ষেত্রে. 173 00:08:51,910 --> 00:08:54,710 >> এখন মনে রাখবেন কিভাবে একটি trie আসলে কাজ করে. 174 00:08:54,710 --> 00:08:59,380 আসুন আমরা শব্দ সূচিবদ্ধ করাকে করছি বলে "বিড়াল." তারপর trie মূল থেকে, 175 00:08:59,380 --> 00:09:02,610 আমরা শিশুদের তাকান চলুন অ্যারে, এবং আমরা তাকান চলুন 176 00:09:02,610 --> 00:09:08,090 চিঠি যে অনুরূপ সূচী 2 ইন্ডেক্স করা হবে সি তাই. 177 00:09:08,090 --> 00:09:11,530 তাই দেওয়া যে, যে ইচ্ছা আমাদের একটি নতুন নোডের দিতে. 178 00:09:11,530 --> 00:09:13,820 এবং তারপর আমরা যে নোড থেকে কাজ করব. 179 00:09:13,820 --> 00:09:17,770 >> সুতরাং যে নোড দেওয়া, আমরা আবার করছি শিশুদের অ্যারে তাকান যাচ্ছে. 180 00:09:17,770 --> 00:09:22,110 এবং আমরা সূচক শূন্য তাকান চলুন বিড়াল একটি মিলা করতে. 181 00:09:22,110 --> 00:09:27,170 তখন আমরা যে নোড যেতে চলুন, এবং যে নোড দেওয়া আমরা চলুন 182 00:09:27,170 --> 00:09:31,090 শেষে চেহারা এটি একটি অনুরূপ এর টি এবং যে নোডের উপর চলন্ত যাও 183 00:09:31,090 --> 00:09:35,530 পরিশেষে, আমরা সম্পূর্ণভাবে তাকিয়ে আছে মাধ্যমে আমাদের শব্দ "বিড়াল." এবং এখন bool 184 00:09:35,530 --> 00:09:40,960 শব্দ কিনা ইঙ্গিত অনুমিত হয় এই দেওয়া শব্দ আসলে একটি শব্দ. 185 00:09:40,960 --> 00:09:43,470 >> তাই কেন আমরা যে বিশেষ ক্ষেত্রে প্রয়োজন? 186 00:09:43,470 --> 00:09:47,700 আচ্ছা কি শব্দের "বিপর্যয়কারী ঘটনা" আমাদের অভিধানে, কিন্তু 187 00:09:47,700 --> 00:09:50,150 শব্দ "বিড়াল" নয় কি? 188 00:09:50,150 --> 00:09:54,580 তাই ও দেখতে খুঁজছেন যদি শব্দ "বিড়াল" আমাদের অভিধান, আমরা পারব হয় 189 00:09:54,580 --> 00:09:59,970 সফলভাবে মাধ্যমে সন্ধান করতে যাচ্ছে অঞ্চলের নোডের মধ্যে সূচকের সি একটি টি. 190 00:09:59,970 --> 00:10:04,290 কিন্তু যে শুধুমাত্র কারণ বিপর্যয় পথে নোড তৈরি করতে ঘটেছে 191 00:10:04,290 --> 00:10:07,190 সি একটি টি থেকে, সব পথ থেকে শব্দের শেষে. 192 00:10:07,190 --> 00:10:12,020 সুতরাং bool শব্দ কি না তা নির্দেশ করতে ব্যবহৃত হয় এই বিশেষ অবস্থান 193 00:10:12,020 --> 00:10:14,310 আসলে একটি শব্দ নির্দেশ করে. 194 00:10:14,310 --> 00:10:15,140 >> ঠিক আছে. 195 00:10:15,140 --> 00:10:19,310 তাই এখন আমরা এটা trie কি জানেন যে অনুরূপ যাচ্ছে, এর তাকান 196 00:10:19,310 --> 00:10:20,730 ফাংশন লোড. 197 00:10:20,730 --> 00:10:24,610 সুতরাং লোড একটি bool ফিরে যাচ্ছে কিনা আমরা সফলভাবে অথবা জন্য 198 00:10:24,610 --> 00:10:26,720 অসফল অভিধান লোড. 199 00:10:26,720 --> 00:10:30,460 এবং এই অভিধান হতে যাচ্ছে আমরা লোড করতে চান. 200 00:10:30,460 --> 00:10:33,930 >> আমরা কি করছি তাই সর্বপ্রথম খোলা পড়ার জন্য যে অভিধান আপ. 201 00:10:33,930 --> 00:10:36,160 এবং আমরা নিশ্চিত করতে হবে আমরা ব্যর্থ হয়নি. 202 00:10:36,160 --> 00:10:39,580 অভিধান ছিল না তাই যদি সফলভাবে খোলা, এটা ফিরে আসবে 203 00:10:39,580 --> 00:10:42,400 নাল, যে ক্ষেত্রে আমরা করছি মিথ্যা ফিরে যাচ্ছে. 204 00:10:42,400 --> 00:10:47,230 কিন্তু অভিমানী যে এটা সফলভাবে খোলা তারপর, আমরা আসলে পড়তে পারেন 205 00:10:47,230 --> 00:10:48,220 অভিধান মাধ্যমে. 206 00:10:48,220 --> 00:10:50,880 >> আমরা চলুন সুতরাং প্রথম জিনিস যেতে চাই আমরা এই আছে হয় 207 00:10:50,880 --> 00:10:52,500 বিশ্বব্যাপী পরিবর্তনশীল রুট. 208 00:10:52,500 --> 00:10:56,190 এখন রুট * একটি নোডের হতে যাচ্ছে. 209 00:10:56,190 --> 00:10:59,760 এটা আমরা করছি যে আমাদের trie উপরে আছে মাধ্যমে iterating করা যাচ্ছে. 210 00:10:59,760 --> 00:11:02,660 আমরা চলুন যে তাই প্রথম জিনিস কাজ করতে চান করতে বরাদ্দ করা হয় 211 00:11:02,660 --> 00:11:04,140 আমাদের রুট জন্য মেমরি. 212 00:11:04,140 --> 00:11:07,980 আমরা calloc ব্যবহার করছেন যে লক্ষ্য করুন মূলত একই যা ফাংশন, 213 00:11:07,980 --> 00:11:11,500 malloc ফাংশন হিসাবে, ছাড়া এটা কিছু যে ফেরত গ্যারান্টী 214 00:11:11,500 --> 00:11:13,180 সম্পূর্ণ আউট zeroed. 215 00:11:13,180 --> 00:11:17,290 আমরা malloc ব্যবহার সুতরাং, যদি আমরা করতে হবে মধ্যে পয়েন্টার সব দিয়ে যেতে আমাদের 216 00:11:17,290 --> 00:11:20,160 নোড, এবং নিশ্চিত যে তারা সব নাল করছি. 217 00:11:20,160 --> 00:11:22,710 সুতরাং calloc আমাদের জন্য তা করতে হবে. 218 00:11:22,710 --> 00:11:26,330 >> এখন শুধু malloc মত, আমরা করা প্রয়োজন বরাদ্দ আসলে ছিল নিশ্চিত যে 219 00:11:26,330 --> 00:11:27,520 সফল. 220 00:11:27,520 --> 00:11:29,990 এই নাল ফিরে আসেন, তাহলে আমরা বন্ধ বা অভিধান প্রয়োজন 221 00:11:29,990 --> 00:11:32,100 ফাইল এবং মিথ্যা ফিরে. 222 00:11:32,100 --> 00:11:36,835 সুতরাং যে বরাদ্দ ছিল অভিমানী সফল, আমরা * একটি নোডের ব্যবহার চলুন 223 00:11:36,835 --> 00:11:40,270 আমাদের trie মাধ্যমে পুনরুক্তি করতে কার্সার. 224 00:11:40,270 --> 00:11:43,890 সুতরাং আমাদের শিকড় পরিবর্তন করতে যাচ্ছেন না, কিন্তু আমরা কার্সার ব্যবহার চলুন 225 00:11:43,890 --> 00:11:47,875 আসলে নোড থেকে নোড যান. 226 00:11:47,875 --> 00:11:50,940 >> তাই এই মধ্যে লুপ জন্য আমরা পড়া হয় অভিধান ফাইলটি মাধ্যমে. 227 00:11:50,940 --> 00:11:53,670 এবং আমরা fgetc ব্যবহার করছেন. 228 00:11:53,670 --> 00:11:56,290 Fgetc একটি একক দখল করতে যাচ্ছে ফাইল থেকে অক্ষর. 229 00:11:56,290 --> 00:11:59,370 আমরা দখল চালিয়ে যাচ্ছেন অক্ষর আমরা পৌঁছাতে না যখন 230 00:11:59,370 --> 00:12:01,570 ফাইলের শেষে. 231 00:12:01,570 --> 00:12:03,480 >> আমরা সব ব্যবস্থা করতে হবে দুই ক্ষেত্রে আছে. 232 00:12:03,480 --> 00:12:06,610 প্রথমত, যদি চরিত্র একটি নতুন লাইন ছিল না. 233 00:12:06,610 --> 00:12:10,450 সুতরাং আমরা এটা, তারপর একটি নতুন লাইন ছিল জানতে আমরা একটি নতুন শব্দ যান চলেছেন. 234 00:12:10,450 --> 00:12:15,240 কিন্তু তারপর, এটা একটা নতুন লাইন ছিল না অভিমানী এখানে আমরা চিন্তা করতে চাই 235 00:12:15,240 --> 00:12:18,380 সূচী আমরা মধ্যে সূচক যাচ্ছেন শিশুদের অ্যারের মধ্যে যে 236 00:12:18,380 --> 00:12:19,810 আমরা আগে দিকে তাকিয়ে. 237 00:12:19,810 --> 00:12:23,880 >> সুতরাং, আমি আগে বলেন ভালো, আমরা প্রয়োজন বিশেষ ক্ষেত্রে ঊর্ধকমা. 238 00:12:23,880 --> 00:12:26,220 আমরা তিন ব্যবহার করছেন লক্ষ্য করুন এখানে অপারেটর. 239 00:12:26,220 --> 00:12:29,580 তাই আমরা যদি এই পড়তে যাচ্ছেন আমরা পড়তে চরিত্র একটি ছিল 240 00:12:29,580 --> 00:12:35,330 ঊর্ধকমা, তারপর আমরা সেট চলুন সূচক = "বর্ণমালা" -1, যা হবে 241 00:12:35,330 --> 00:12:37,680 সূচক 26 হতে. 242 00:12:37,680 --> 00:12:41,130 >> অন্যথায়, এটি একটি ঊর্ধকমা ছিল না, যদি সেখানে আমরা সূচী সেট চলুন 243 00:12:41,130 --> 00:12:43,760 গ সমান - একটি. 244 00:12:43,760 --> 00:12:49,030 তাই ফিরে পূর্বে পি সেট থেকে মনে রাখবেন, গ - একটি আমাদের দিতে হবে 245 00:12:49,030 --> 00:12:53,410 সি এর বর্ণানুক্রমিক অবস্থান তাই আপনি যদি সি এই করবে না, চিঠি একটি হল 246 00:12:53,410 --> 00:12:54,700 আমাদের সূচক শূন্য দিতে. 247 00:12:54,700 --> 00:12:58,120 অক্ষর বি জন্য, এটা আপনাকে দিতে হবে তাই আমাদের সূচক 1, ২. 248 00:12:58,120 --> 00:13:03,010 >> তাই এই আমাদের মধ্যে সূচক দেয় আমরা চাই যে শিশুদের অ্যারে. 249 00:13:03,010 --> 00:13:08,890 আমি এই সূচক বর্তমানে নাল যদি শিশু, এর মানে হল যে একটি নোডের 250 00:13:08,890 --> 00:13:11,830 বর্তমানে বিদ্যমান নেই যে পথ থেকে. 251 00:13:11,830 --> 00:13:15,160 সুতরাং আমরা বরাদ্দ করা প্রয়োজন যে পথ জন্য একটি নোড. 252 00:13:15,160 --> 00:13:16,550 যে আমরা এখানে চেষ্টা করবো কি. 253 00:13:16,550 --> 00:13:20,690 >> তাই আমরা আবার calloc ব্যবহার চলুন ফাংশন, আমরা করতে হবে না, যাতে 254 00:13:20,690 --> 00:13:22,880 সব পয়েন্টার আউট শূন্য. 255 00:13:22,880 --> 00:13:27,240 এবং আমরা আবার চেক প্রয়োজন যে calloc ব্যর্থ হয়নি. 256 00:13:27,240 --> 00:13:30,700 Calloc ব্যর্থ হয়নি, তাহলে আমরা প্রয়োজন সবকিছু আন, বন্ধ করুন আমাদের 257 00:13:30,700 --> 00:13:32,820 অভিধান, এবং মিথ্যা ফিরে. 258 00:13:32,820 --> 00:13:40,050 সুতরাং তারপর, ব্যর্থ না অভিমানী এই আমাদের জন্য নতুন শিশু তৈরি করবে. 259 00:13:40,050 --> 00:13:41,930 এবং তারপর আমরা যে সন্তানের যেতে হবে. 260 00:13:41,930 --> 00:13:44,960 আমাদের কার্সার পুনরুক্তি হবে যে সন্তানের নিচে. 261 00:13:44,960 --> 00:13:49,330 >> আমি এই দিয়ে শুরু করতে নাল ছিল না যদি, তারপর কার্সার শুধু পুনরুক্তি করতে পারেন 262 00:13:49,330 --> 00:13:52,590 আসলে ছাড়া যে সন্তানের নিচে কিছু বরাদ্দ করা হচ্ছে. 263 00:13:52,590 --> 00:13:56,730 এই প্রথম আমরা ঘটেছে যেখানে কেস শব্দ বরাদ্দ "বিড়াল." এবং 264 00:13:56,730 --> 00:14:00,330 আমরা বরাদ্দ করা যেতে হলে যে মানে "বিপর্যয়কারী ঘটনা," আমরা তৈরি করতে হবে না 265 00:14:00,330 --> 00:14:01,680 আবার সি একটি টি জন্য নোড. 266 00:14:01,680 --> 00:14:04,830 তারা ইতিমধ্যেই বিদ্যমান. 267 00:14:04,830 --> 00:14:06,080 >> অন্য এই কি? 268 00:14:06,080 --> 00:14:10,480 এই গ যেখানে শর্ত গ নতুন লাইন ছিল যেখানে ব্যাকস্ল্যাশ এন,. 269 00:14:10,480 --> 00:14:13,710 এই আমরা সফলভাবে আছে যে মানে একটি শব্দ সম্পন্ন. 270 00:14:13,710 --> 00:14:16,860 এখন কি আমরা যেতে চাই যখন আমরা সফলভাবে একটি শব্দ সম্পন্ন? 271 00:14:16,860 --> 00:14:21,100 আমরা এই শব্দ ক্ষেত্র ব্যবহার চলুন আমাদের struct নোড ভেতরে. 272 00:14:21,100 --> 00:14:23,390 আমরা সত্য যে সেট করতে চান. 273 00:14:23,390 --> 00:14:27,150 সুতরাং যে ইঙ্গিত করে যে এই নোডের একটি সফল ইঙ্গিত 274 00:14:27,150 --> 00:14:29,250 শব্দ, একটি প্রকৃত শব্দ. 275 00:14:29,250 --> 00:14:30,940 >> এখন সত্য যে সেট. 276 00:14:30,940 --> 00:14:35,150 আমরা বিন্দু থেকে আমাদের কার্সার পুনরায় সেট করতে চান আবার trie শুরুতে. 277 00:14:35,150 --> 00:14:40,160 এবং পরিশেষে, আমাদের অভিধান বাড়ায় আকার, আমরা অন্য কাজ পাওয়া থেকে. 278 00:14:40,160 --> 00:14:43,230 সুতরাং আমরা যে করছেন রাখা চলুন, , অক্ষর দ্বারা অক্ষর পড়া 279 00:14:43,230 --> 00:14:49,150 আমাদের trie নতুন নোড নির্মাণের এবং অভিধানে, যতক্ষণ না প্রতিটি শব্দের জন্য 280 00:14:49,150 --> 00:14:54,020 পরিশেষে আমরা সি পৌঁছানোর! = ফাইলের শেষে, যা ক্ষেত্রে আমরা ফাইল আউট বিরতি. 281 00:14:54,020 --> 00:14:57,050 >> এখন দুই ক্ষেত্রে অধীনে আছে আমরা ফাইলের শেষে আঘাত করে থাকতে পারে যা. 282 00:14:57,050 --> 00:15:00,980 একটি ত্রুটি ছিল প্রথম ফাইল থেকে পড়া. 283 00:15:00,980 --> 00:15:03,470 একটি ত্রুটি ছিল তাই, আমরা সাধারণত যা করতে হবে. 284 00:15:03,470 --> 00:15:06,460 বন্ধ, সবকিছু আন ফাইল, মিথ্যা ফিরে. 285 00:15:06,460 --> 00:15:09,810 , একটি ত্রুটি ছিল না Assuming যে শুধু আমরা আসলে শেষ আঘাত মানে 286 00:15:09,810 --> 00:15:13,750 ফাইল, যা ক্ষেত্রে, আমরা বন্ধ করুন ফাইল এবং সত্য ফিরে যেহেতু আমরা 287 00:15:13,750 --> 00:15:17,330 সফলভাবে লোড অভিধান আমাদের trie মধ্যে. 288 00:15:17,330 --> 00:15:20,170 >> তাই এখন এর চেক চেক আউট যাক. 289 00:15:20,170 --> 00:15:25,156 চেক ফাংশন এ জন্যে, আমরা দেখতে যে চেক একটি bool ফিরে যাচ্ছে. 290 00:15:25,156 --> 00:15:29,680 এই শব্দ এটা যে যদি এটা সত্য ফেরৎ অতিক্রান্ত হচ্ছে আমাদের trie হয়. 291 00:15:29,680 --> 00:15:32,110 এটা অন্যথায় মিথ্যা ফেরৎ. 292 00:15:32,110 --> 00:15:36,050 সুতরাং কিভাবে আপনি কি না তা নির্ধারণ করা হয় এই শব্দ আমাদের trie হয়? 293 00:15:36,050 --> 00:15:40,190 >> আমরা এখানে দেখতে যে, ঠিক আগের মতই, আমরা বারবার করতে কার্সার ব্যবহার চলুন 294 00:15:40,190 --> 00:15:41,970 আমাদের trie মাধ্যমে. 295 00:15:41,970 --> 00:15:46,600 এখন এখানে আমরা বারবার চলুন আমাদের সমগ্র শব্দ ধরে. 296 00:15:46,600 --> 00:15:50,620 সুতরাং, আমরা অতীত হয় শব্দের উপর iterating আমরা নির্ধারণ করতে যাচ্ছেন 297 00:15:50,620 --> 00:15:56,400 সূচক শিশুদের অ্যারের মধ্যে যে শব্দ বন্ধনী আই অনুরূপ তাই এই 298 00:15:56,400 --> 00:15:59,670 ঠিক মত দেখতে যাচ্ছে লোড, যেখানে যদি শব্দ [I] 299 00:15:59,670 --> 00:16:03,310 একটি ঊর্ধকমা, তাহলে আমরা চাই হয় সূচক "বর্ণমালা" ব্যবহার করার জন্য - 1. 300 00:16:03,310 --> 00:16:05,350 আমরা নির্ধারিত কারণ যে যে আমরা সংরক্ষণ করতে যাচ্ছেন যেখানে হয় 301 00:16:05,350 --> 00:16:07,100 apostrophes. 302 00:16:07,100 --> 00:16:11,780 >> অন্যথায় আমরা দুটি কম শব্দ ব্যবহার চলুন বন্ধনী আই সুতরাং যে শব্দ মনে করতে পারেন 303 00:16:11,780 --> 00:16:13,920 নির্বিচারে ক্যাপিটালাইজেশন আছে. 304 00:16:13,920 --> 00:16:17,540 এবং তাই আমরা আমরা যে নিশ্চিত করতে চাই একটা ছোট হাতের সংস্করণ ব্যবহার. 305 00:16:17,540 --> 00:16:21,920 এবং তারপর যে 'একটি' একবার থেকে বিয়োগ আবার আমাদের বর্ণানুক্রমিক দিতে 306 00:16:21,920 --> 00:16:23,880 যে চরিত্রের অবস্থান. 307 00:16:23,880 --> 00:16:27,680 সুতরাং যে আমাদের সূচী হতে যাচ্ছে শিশুদের অ্যারের মধ্যে. 308 00:16:27,680 --> 00:16:32,420 >> এবং এখন যদি শিশুদের মধ্যে যে সূচী অ্যারে নাল হয়, যে আমরা মানে 309 00:16:32,420 --> 00:16:34,990 আর iterating চালিয়ে যেতে পারেন আমাদের trie নিচে. 310 00:16:34,990 --> 00:16:38,870 যদি সেই ক্ষেত্রে, এই শব্দ না করতে পারেন সম্ভবত আমাদের trie হতে. 311 00:16:38,870 --> 00:16:42,340 তা হলে, যে would সাল একটি পথ হতে পারে মানে 312 00:16:42,340 --> 00:16:43,510 যে শব্দ নিচে. 313 00:16:43,510 --> 00:16:45,290 এবং যদি আপনি নাল সম্মুখীন হবে. 314 00:16:45,290 --> 00:16:47,850 সুতরাং নাল সম্মুখীন, আমরা মিথ্যা ফিরে. 315 00:16:47,850 --> 00:16:49,840 শব্দ অভিধানে নেই. 316 00:16:49,840 --> 00:16:53,660 এটি নাল না, তাহলে আমরা করছি iterating চালিয়ে যাচ্ছে. 317 00:16:53,660 --> 00:16:57,220 >> তাই আমরা সেখানে কার্সার আউট চলুন যে বিশেষ নির্দেশ 318 00:16:57,220 --> 00:16:59,760 যে সূচিতে নোড. 319 00:16:59,760 --> 00:17:03,150 আমরা সারা যে করছেন রাখা সম্পূর্ণ শব্দ, অভিমানী 320 00:17:03,150 --> 00:17:03,950 আমরা নাল আঘাত না. 321 00:17:03,950 --> 00:17:07,220 আমরা মাধ্যমে পেতে পারবেন মানে সম্পূর্ণ শব্দ এবং খুঁজে 322 00:17:07,220 --> 00:17:08,920 আমাদের ব্যবহার করে দেখুন একটি নোড. 323 00:17:08,920 --> 00:17:10,770 কিন্তু আমরা পুরোপুরি এখনও সম্পন্ন না. 324 00:17:10,770 --> 00:17:12,290 >> আমরা শুধু সত্য ফিরে চাই না. 325 00:17:12,290 --> 00:17:14,770 আমরা কার্সার> শব্দ ফিরে চাই. 326 00:17:14,770 --> 00:17:18,980 আবার স্মরণ থেকে, "বিড়াল" করা হয় না হয় আমাদের অভিধানে, এবং "বিপর্যয়কারী ঘটনা" 327 00:17:18,980 --> 00:17:22,935 তারপর আমরা সফলভাবে আমরা পেতে হবে হয় মাধ্যমে শব্দ "বিড়াল." কিন্তু কার্সার 328 00:17:22,935 --> 00:17:25,760 শব্দ মিথ্যা এবং সত্য না হতে হবে. 329 00:17:25,760 --> 00:17:30,930 সুতরাং আমরা ইঙ্গিত কার্সার শব্দ ফিরে কিনা এই নোডের আসলে একটি শব্দ. 330 00:17:30,930 --> 00:17:32,470 এবং যে চেক জন্য এটি. 331 00:17:32,470 --> 00:17:34,250 >> তাই এর আকার চেক আউট যাক. 332 00:17:34,250 --> 00:17:37,350 তাই আকার বেশ সহজ হবে যেহেতু, চাপের মধ্যে মনে রাখবেন, আমরা করছি 333 00:17:37,350 --> 00:17:41,430 জন্য অভিধান আকার বৃদ্ধিশীল আমরা সম্মুখীন যে প্রতিটি শব্দ. 334 00:17:41,430 --> 00:17:45,350 তাই সাইজ ঠিক করতে যাচ্ছে অভিধান মাপ ফিরে. 335 00:17:45,350 --> 00:17:47,390 এবং যে এটি. 336 00:17:47,390 --> 00:17:50,590 >> তাই সর্বশেষে আমরা আন করেছেন. 337 00:17:50,590 --> 00:17:55,100 তাই আন, আমরা ব্যবহার করতে যাচ্ছেন একটি আসলে সব কি recursive ফাংশন 338 00:17:55,100 --> 00:17:56,530 আমাদের জন্য কাজ. 339 00:17:56,530 --> 00:17:59,340 তাই আমাদের ফাংশন যাচ্ছে unloader আহ্বান করা. 340 00:17:59,340 --> 00:18:01,650 কি unloader করতে যাচ্ছে? 341 00:18:01,650 --> 00:18:06,580 আমরা যে unloader যাচ্ছে এখানে দেখুন শিশুদের সব সময়ে উপর বারবার 342 00:18:06,580 --> 00:18:08,410 এই বিশেষ নোড. 343 00:18:08,410 --> 00:18:11,750 আর সন্তানের নোড নয় নাল, তারপর আমরা চলুন 344 00:18:11,750 --> 00:18:13,730 চাইল্ড নোড আন. 345 00:18:13,730 --> 00:18:18,010 >> তাই এই আপনি recursively আন হল আমাদের শিশুদের সব. 346 00:18:18,010 --> 00:18:21,080 আমরা নিশ্চিত যে একবার আমাদের শিশুদের সব unloaded করা হয়েছে, তাহলে আমরা 347 00:18:21,080 --> 00:18:25,210 নিজেদেরকে মুক্ত, তাই করতে পারেন নিজেদেরকে আন. 348 00:18:25,210 --> 00:18:29,460 এই recursively কাজ করবে সমগ্র trie আন. 349 00:18:29,460 --> 00:18:32,850 এবং তারপর যে কাজ একবার, আমরা সত্য ফিরে আসতে পারেন. 350 00:18:32,850 --> 00:18:34,210 আন ব্যর্থ করতে পারবে না. 351 00:18:34,210 --> 00:18:35,710 আমরা শুধু জিনিষ freeing করছি. 352 00:18:35,710 --> 00:18:38,870 তাই একবার আমরা freeing শেষ করেছেন সবকিছু, সত্য ফিরে. 353 00:18:38,870 --> 00:18:40,320 এবং যে এটি. 354 00:18:40,320 --> 00:18:41,080 আমার নাম রব হল. 355 00:18:41,080 --> 00:18:42,426 এবং এই speller ছিল. 356 00:18:42,426 --> 00:18:47,830 >> [সঙ্গীত বাজাচ্ছি]