[موسیقی بجانا] روب Bowden: ہیلو. میں روب ہوں. اور ہم اس کے حل کے باہر جانے دو. لہذا ہم یہاں لاگو کرنے کے لئے جا رہے ہیں ایک عام میز. ہم دیکھتے ہیں کہ ہماری struct نوڈ ٹیبل اس طرح نظر آئے جا رہا ہے. تو یہ ایک چار لفظ ہے جا رہا ہے سائز لمبائی 1 + کی صف. ، 1 + مت بھولنا کے بعد زیادہ سے زیادہ لغت میں لفظ 45 حروف. اور پھر ہم ایک اضافی ضرورت کے لئے جا رہے ہیں الٹا سلیش صفر کے لئے کردار. اور پھر ہر میں ہمارے hashtable بالٹی ذخیرہ کرنے کے لئے کی جا رہی ہے ایک نوڈس کے لنک کی فہرست. ہم یہاں کی تحقیقات لکیری نہیں کر رہے ہیں. اور اس حکم میں اگلے سے منسلک کرنے کی بالٹی میں عنصر، ہم ایک کی ضرورت ہے struct نوڈ * اگلا، دوسرا. ٹھیک ہے. تو ہے کہ ایک نوڈ کی طرح لگتا ہے ہے. اب یہاں اعلان ہے ہمارے hashtable کی. یہ 16.834 بالٹیاں ہے جا رہا ہے. لیکن اب یہ تعداد واقعی کوئی فرق نہیں پڑتا. اور آخر میں، ہم جا رہے ہیں عالمی متغیر hashtable سائز، جس صفر کے طور پر شروع کی جا رہی ہے. اور یہ کس طرح کا ٹریک رکھنے کے لئے جا رہا ہے بہت سے الفاظ ہماری لغت میں ہیں. تو لوڈ میں ایک نظر ڈالیں. کہ لوڈ نوٹس، یہ ایک bool واپس. اس کامیابی کے ساتھ تھا تو آپ حقیقی واپس بھری ہوئی، اور جھوٹے دوسری صورت میں. اور یہ، ایک CONST چار * ڈکشنری لیتا ہے ڈکشنری ہے جو ہم کو کھولنے کے لئے چاہتے ہیں. تو ہے کہ سب سے پہلی چیز ہے ہم کیا کرنے جا رہے ہیں. ہم fopen کی جا رہے ہیں پڑھنے کے لئے ڈکشنری. اور ہم بنانے کے لئے جا رہے ہیں یہ کامیاب اس بات کا یقین. یہ نل واپس اگر ایسا ہے تو، پھر ہم نے نہیں کیا کامیابی کے ساتھ ڈکشنری کھولنے. اور ہم جھوٹے واپس کرنے کی ضرورت. لیکن اس کامیابی کے ساتھ کیا ہے کہ سنبھالنے کھولیں، تو ہم پڑھنے کے لئے چاہتے ہیں، ڈکشنری. ہم نے کچھ جب تک تو looping کے رکھنے کے اس لوپ سے باہر کو توڑنے کے لئے کی وجہ سے، ہم دیکھیں گے جس میں. تو looping کے رکھنے کے. اور اب ہم جا رہے ہیں ایک نوڈ malloc کی. اور یقینا ہم نے کی ضرورت نشر دوبارہ چیک کریں. تو mallocing کامیاب نہیں ہیں، تو ہم کہ ہم کسی بھی نوڈ اتارنا کرنا چاہتے ہیں پہلے malloc پر ہوا، بند لغت اور جھوٹے واپس. لیکن اس کو نظر انداز، سنبھالنے ہم کامیاب، تو ہم fscanf استعمال کرنا چاہتے ہیں کی طرف سے ایک ایک لفظ پڑھنے کے لئے ہمارے ہمارے نوڈ ڈکشنری. تو اس اندراج> لفظ یاد چار + 1 سائز LENGHTH کے لفظ بفر ہم اندر لفظ ذخیرہ کرنے کے لئے جا رہے ہیں تو fscanf جب تک، 1 واپس جا رہا ہے یہ قابل کامیابی تھا فائل سے ایک لفظ پڑھا ہے. ایک غلطی یا تو ہوتا ہے، یا ہم فائل کے آخر تک پہنچنے کے، یہ 1 واپس نہیں کرے گا. یہ، 1 واپس نہیں کرتا ہے، جس صورت میں ہم آخر میں سے باہر کو توڑنے کے لئے جا رہے ہیں اس دیر لوپ. تو ہم دیکھتے ہیں کہ ہم کامیابی کے ساتھ ایک بار میں ایک لفظ پڑھا ہے اندراج> لفظ، پھر ہم اس لئے جا رہے ہیں ہماری ہیش تقریب کا استعمال کرتے ہوئے لفظ. کی پر ایک نظر ڈالیں ہیش تقریب. تو کیا تم واقعی ضرورت نہیں ہے اس کو سمجھنے کے لئے. اور اصل میں ہم صرف اس ہیش نکالا انٹرنیٹ سے کام. آپ کی شناخت کرنے کی ضرورت ہے صرف ایک ہی چیز ہے یہ ایک CONST چار * لفظ لیتا ہے. تو یہ ان پٹ کے طور پر ایک تار لے، اور ہے پیداوار کے طور پر ایک int اہستاکشرت واپس لوٹنے کے. تو یہ سب ایک ہیش تقریب ہے، یہ ہے ایک ان پٹ میں لیتا ہے اور آپ کو ایک دیتا ہے hashtable میں انڈیکس. ہم NUM_BUCKETS کی طرف سے moding کر رہے ہیں، تو وہ قیمت واپس اصل hashtable میں ایک انڈیکس ہے اور کرتا ہے سے باہر نہیں انڈیکس صف کی حد. تو اس تقریب میں، ہم جا رہے ہیں دیا ہم نے پڑھا ہے کہ لفظ ہیش ڈکشنری. اور پھر ہم استعمال کرنے کے لئے جا رہے ہیں شامل کرنے کے لئے ہے کہ ہیش hashtable میں لاگ ان. اب hashtable ہیش موجودہ ہے ٹیبل میں فہرست منسلک. اور یہ بہت ممکن ہے یہ صرف نل ہے. ہم پر ہماری اندراج داخل کرنا چاہتے ہیں اس سے منسلک فہرست کے آغاز. اور اس طرح ہم ہماری موجودہ جا رہے ہیں کیا hashtable کے لئے انٹری پوائنٹ فی الحال اشارہ. اور پھر ہم، ذخیرہ کرنے کے لئے جا رہے ہیں میں hashtable میں ہیش، موجودہ اندراج. تو یہ دو لائنوں کی کامیابی کے ساتھ داخل کے آغاز میں اندراج کہ انڈیکس میں منسلک فہرست hashtable میں. ہم نے اس کے ساتھ کیا کر رہے ہیں ایک بار، ہم جانتے ہیں ہم میں ایک لفظ پایا جاتا ہے ڈکشنری، اور ہم ایک بار پھر اضافہ. تو ہم کیا کر رکھیں کہ fscanf تک آخر میں غیر 1 کچھ واپس جس نقطہ یاد ہے کہ ہم اندراج آزاد کرنے کی ضرورت. تو یہاں ہم ایک اندراج malloced. اور ہم کچھ پڑھنے کے لئے کی کوشش کی لغت سے. اور ہم کامیابی کے ساتھ نہیں پڑھا میں لغت سے کچھ، ہم اندراج کو آزاد کرنے کی ضرورت ہے جس میں کیس ہم اصل میں ڈال کبھی نہیں hashtable، اور آخر میں توڑ. ہم باہر کو توڑنے کے بعد ہم کو دیکھنے کے لئے کی ضرورت ہے، اچھی طرح سے، ہم کیونکہ وہاں توڑا ایک خرابی فائل سے پڑھ رہا تھا؟ یا پھر ہم باہر توڑ دیا کیونکہ ہم فائل کے آخر تک پہنچ گئی؟ ایک غلطی تو، تھا تو ہم جھوٹے واپس کرنا چاہتے ہیں. لوڈ کامیاب نہیں ہے. اور اس عمل میں ہم خالی کرنا چاہتے ہیں ہم میں پڑھا ہے کہ الفاظ، اور ڈکشنری فائل بند. ہم کامیاب کیا سمجھتے ہوئے، تو ہم صرف اب بھی لغت کو بند کرنے کی ضرورت ہے فائل، اور آخر میں صحیح واپس آ کے بعد سے ہم کامیابی کے ساتھ ڈکشنری بھری ہوئی. اور یہ کہ لوڈ کے لئے ہے. تو اب، ایک بھاری بھرکم hashtable دیا، چیک اس طرح نظر آئے جا رہا ہے. تو ہے جو، یہ ایک bool واپس، کی جانچ پڑتال منظور چاہے اس بات کی نشاندہی کرنے کے لئے جا چار * لفظ میں، چاہے وہ منظور تار میں ہماری لغت میں ہے. ، یہ لغت میں ہے تو یہ ہماری hashtable میں ہے، ہم سچ واپس آ جائیں گے. اگر یہ نہیں ہے، ہم جھوٹے واپس آ جائیں گے. اس لفظ میں منظور کو دیکھتے ہوئے، ہم لفظ ہیش کرنے کے لئے جا. اب تسلیم کرنے کے لئے ایک اہم بات یہ ہے لوڈ میں ہم جانتے تھے کہ اس کے تمام ہم کم کیس جا رہے ہیں کے الفاظ. لیکن یہاں ہم اس بات کا یقین نہیں کر رہے ہیں. ہم اپنے ہیش تقریب پر ایک نظر ڈالیں تو، اصل میں ہمارے ہیش تقریب کم سانچے ہر ایک کردار ہے لفظ کے. تو اس سے قطع نظر کے بڑے حروف تہجی کے لفظ، ہماری ہیش تقریب کی واپسی ہے جو کچھ بھی کے لئے ایک ہی انڈیکس بڑے حروف تہجی یہ ہو گا کے طور پر، ہے ایک مکمل طور پر چھوٹے کے لئے واپس لفظ کے ورژن. ٹھیک ہے. یہ ہماری انڈیکس میں ہے اس لفظ کے لئے hashtable. اب میں لوپ کے لئے یہ جا رہا ہے منسلک فہرست پر iterate کہ انڈیکس میں تھا. تو ہم اندراج ابتدا کر رہے ہیں نوٹس اس انڈیکس کی طرف اشارہ. ہم جاری رکھنے کے لئے جا رہے ہیں اندراج = نل! جبکہ. اور یاد رکھنا کہ پوائنٹر کو اپ ڈیٹ میں اگلے ہمارے منسلک فہرست اندراج = اندراج>. تو ہماری موجودہ لاگ ان کرنے کی ضرورت ہے منسلک فہرست میں اگلے آئٹم. تو منسلک فہرست میں ہر اندراج کے لئے، ہم strcasecmp استعمال کرنے کے لئے جا رہے ہیں. یہ strcomp نہیں ہے. ایک بار پھر، ہم چاہتے ہیں insensitively چیزوں کیس کرتے ہیں. تو ہم آپس میں موازنہ کرنے strcasecmp استعمال اس کے ذریعے منظور کیا گیا تھا کہ لفظ لفظ کے خلاف تقریب کہ اس اندراج میں ہے. یہ صفر ہے تو، کہ تھا کا مطلب ہم چاہتے ہیں جس صورت میں ایک میچ، سچ واپس. ہم نے کامیابی مل گیا ہمارے hashtable میں لفظ. ایک میچ وہاں نہیں تھا، تو ہم ہیں پھر لوپ پر جا کر اور پر نظر اگلا اندراج. اور ہم جبکہ وہاں looping کی جاری رکھیں گے اس سے منسلک فہرست میں اندراجات ہیں. ہم توڑ تو کیا ہوتا لوپ کے لئے اس سے باہر؟ کہ ہم ایک اندراج کو تلاش نہیں کیا مطلب ہے کہ جس صورت میں، اس لفظ کے ملاپ ہم اس بات کی نشاندہی کرنے کے لئے جھوٹے واپس کہ ہماری hashtable اس لفظ پر مشتمل نہیں تھا. اور یہ کہ ایک چیک ہے. تو سائز میں ایک نظر ڈالیں. اب سائز بہت آسان ہونے جا رہا ہے. کے بعد سے ہر لفظ کے لئے، لوڈ میں یاد ہم ایک عالمی incremented کیا، مل گیا متغیر hashtable سائز. تو سائز تقریب صرف کی جا رہی ہے عالمی متغیر واپس کرنے کے لئے. اور یہ کہ یہ ہے. اب آخر میں، ہم خالی کرنے کی ضرورت ہے لغت میں سب کچھ کیا ہے ایک بار. تو ہم کس طرح ایسا کرنے کے لئے جا رہے ہیں؟ یہاں ہم looping کر رہے ہیں ہماری میز کے تمام بالٹیاں. تو NUM_BUCKETS بالٹیاں ہیں. اور میں ہر ایک سے منسلک فہرست کے لئے ہماری hashtable، ہم لوپ کے لئے جا رہے ہیں لنک کی فہرست کے مکمل طور پر، ہر عنصر آزاد. اب ہم محتاط رہنے کی ضرورت. تو یہاں ہم ایک عارضی متغیر ہے کہ اگلے پوائنٹر ذخیرہ کرنے ہے منسلک فہرست میں عنصر. اور پھر ہم ڈاؤن لوڈ، اتارنا کرنے کے لئے جا رہے ہیں موجودہ عنصر. ہمیں کے بعد ایسا اس بات کا یقین کرنے کی ضرورت ہے صرف موجودہ عنصر کو آزاد نہیں کر سکتے ہیں اور پھر اگلے پوائنٹر تک رسائی حاصل کرنے کی کوشش کریں، ایک بار کے بعد ہم نے اسے آزاد کر دیا ہے، میموری غلط ہو جاتا ہے. تو ہم پر ایک پوائنٹر کے ارد گرد رکھنے کی ضرورت ہے اگلے عنصر، پھر ہم آزاد کر سکتے ہیں موجودہ عنصر، اور پھر ہم کو اپ ڈیٹ کر سکتے ہیں، کی طرف اشارہ کرنے کے لئے ہماری موجودہ عنصر اگلے عنصر. ہم عناصر لوپ ہیں کریں گے جبکہ اس سے منسلک فہرست میں. ہم سب منسلک لئے کیا کریں گے hashtable کی فہرست میں. ہم نے اس کے ساتھ کیا کر رہے ہیں اور ایک بار، ہم نے مکمل طور پر hashtable اتارتے، اور ہم کیا کر رہے ہیں. تو خالی کے لئے ناممکن ہے کبھی جھوٹے واپس. اور ہم کیا کر رہے ہیں، تو ہم صرف سچ واپس. اس کا حل ایک کوشش دے. تو کیا ہمارے پر ایک نظر ڈالیں struct نوڈ طرح نظر آئے گا. یہاں ہم ایک bool لئے جا رہے ہیں کو دیکھنے کے لفظ اور ایک struct نوڈ * بچوں بریکٹ کے حروف تہجی. آپ ہو سکتا ہے تو سب سے پہلی چیز سوچ، کیوں حروف تہجی ہے ایڈ 27 کے طور پر بیان؟ ٹھیک ہے، ہم ضرورت کے لئے جا رہے ہیں یاد رکھیں کہ apostrophe کے ہینڈلنگ کی جائے. تو یہ کسی حد تک ایک کے ہونے جا رہا ہے اس پروگرام میں خصوصی کیس. اب یاد ہے کہ کس طرح ایک trie اصل میں کام کرتا ہے. ہم لفظ تخکرمن رہے ہیں "بلیوں" پھر trie کے جڑ سے، ہم بچوں کو دیکھنے کے لئے جا رہے ہیں صف، اور ہم کو دیکھنے کے لئے جا رہے ہیں خط کے مساوی ہے کہ انڈیکس 2 حساب سے ترتیب ہو جائے گا کہ سی تو. تو دی ہے، اس سے ہمیں ایک نیا نوڈ دے. اور پھر ہم اس نوڈ سے کام کریں گے. تو وہ نوڈ دیا، ہم ایک بار پھر رہے ہیں بچوں کی صف کو دیکھنے کے لئے جا رہا. اور ہم انڈیکس صفر کو دیکھنے کے لئے جا رہے ہیں بلی میں ایک کے مطابق. تو پھر ہم اس نوڈ پر جانے کے لئے جا رہے ہیں، اور یہ کہ نوڈ دیا ہم جا رہے ہیں آخر میں تلاش کرنے کے لئے یہ ایک کے مساوی ہے ٹی اور یہ نوڈ پر منتقل کرنے کے لئے آخر میں، ہم مکمل طور پر دیکھا ہے کے ذریعے ہمارے لفظ "بلی." اور اب bool کے لفظ چاہے نشاندہی کرنے کے لئے سمجھا جاتا ہے یہ دیا لفظ اصل میں ایک لفظ ہے. تو ہم کیوں اس خاص صورت کی ضرورت ہے؟ ویسے کیا لفظ "تباہی" ہماری لغت میں ہے، لیکن لفظ "بلی" نہیں ہے؟ تو اور دیکھنے کے لئے تلاش کر رہے ہیں تو لفظ "بلی" ہماری لغت میں، ہم کر رہے ہیں کامیابی کے ذریعے تلاش کرنے کے لئے جا خطے نوڈ میں سوچکانکوں سی اے ٹی. لیکن یہ صرف اس وجہ سے تباہی راستے میں نوڈس پیدا ہوا C-A-T کی طرف سے، تمام طریقہ لفظ کے آخر. تو bool کے لفظ چاہے نشاندہی کرنے کے لئے استعمال کیا جاتا ہے اس مخصوص مقام اصل میں ایک لفظ کی طرف اشارہ کرتا. ٹھیک ہے. تو اب ہم یہ trie کے کیا ہے جانتے ہیں کہ کی طرح نظر کے لئے جا رہا، کے دیکھو تقریب لوڈ. تو بوجھ ایک bool واپس جا رہا ہے چاہے ہم کامیابی کے ساتھ یا اس کے لئے ناکام لغت بھری ہوئی. اور اس ڈکشنری کی جا رہی ہے ہم نے لوڈ کرنا چاہتے ہیں. ہم کیا کرنے ہیں تو سب سے پہلی چیز کھلا ہوا ہے پڑھنے کے لئے کہ لغت اپ. اور ہم اس بات کو یقینی بنانے کے لئے ہے ہم ناکام نہیں کیا. لغت میں نہیں تھا اگر ایسا ہے تو کامیابی سے کھول دیا، اس کو واپس کرے گا شہوت انگیز null، جس صورت میں ہم جھوٹے واپس جا. لیکن سنبھالنے ہے کہ یہ کامیابی کے ساتھ کھولی، تو اصل میں ہم پڑھ سکتے ہیں لغت کے ذریعے. ہم جا رہے ہیں تو سب سے پہلی چیز کرنا چاہتے ہیں ہم اس ہے ہے عالمی متغیر جڑ. اب جڑ * ایک نوڈ کی جا رہی ہے. یہ ہم ہیں کہ ہمارے trie کے سب سے اوپر ہے کے ذریعے iterating کر جا رہا. ہم جا رہے ہیں تو سب سے پہلی چیز ایسا کرنے کے لئے چاہتے ہیں کے لئے مختص ہے ہماری جڑ کے لئے میموری. ہم calloc استعمال کرتے ہوئے کر رہے ہیں بنیادی طور پر ایک ہی ہے، جس کی تقریب، malloc کی تقریب کے طور پر، سوائے یہ ہے ہے کہ کچھ واپس کرنے کے لئے بات کی ضمانت مکمل طور پر zeroed. ہم malloc کا استعمال کیا جاتا ہے تو ہم کی ضرورت ہو گی میں اشارہ کے تمام کے ذریعے جانا ہماری نوڈ، اور اس بات کو یقینی بنانے کے وہ سب کے سب، شہوت انگیز null ہیں. تو calloc ہمارے لئے ایسا کرے گا. اب صرف malloc کی طرح، ہم کرنے کی ضرورت ہے مختص اصل میں تھا کہ اس بات کا یقین کامیاب. اس شہوت انگیز null واپس آئے تو، پھر ہم بند یا ڈکشنری کی ضرورت ہے فائل اور جھوٹے واپس. تو وہ مختص کیا گیا تھا سنبھالنے کامیاب، ہم * ایک نوڈ استعمال کرنے کے لئے جا رہے ہیں ہمارے trie کے ذریعے iterate کرسر. تو ہماری جڑیں تبدیل کرنے جا رہا ہے کبھی نہیں، لیکن ہم کرسر استعمال کرنے کے لئے جا رہے ہیں اصل نوڈ سے نوڈ کرنے کے لئے جانا. تو اس میں لوپ کے لئے ہم پڑھ رہے ہیں ڈکشنری فائل کے ذریعے. اور ہم fgetc استعمال کر رہے ہیں. Fgetc ایک قبضہ کرنے کے لئے کی جا رہی ہے فائل سے کردار. ہم پکڑ جاری رکھنے کے لئے جا رہے ہیں حروف ہم تک پہنچنے نہیں جبکہ فائل کے آخر میں. ہم کو ہینڈل کرنے کی ضرورت ہے دو مقدمات ہیں. سب سے پہلے، اگر کردار ایک نئی سطر میں نہیں تھا. تو ہم نے اس وقت، ایک نئی سطر میں تھا تو پتہ ہے ہم ایک نیا لفظ پر منتقل کرنے کے بارے میں ہیں. لیکن اس وقت، یہ ایک نئی لائن نہیں تھا سنبھالنے یہاں ہم معلوم کرنا چاہتے ہیں انڈیکس ہم میں انڈیکس کرنے جا رہے ہیں بچوں کی صف میں ہم نے پہلے دیکھا. تو، میں نے پہلے کہا، ہم کرنے کی ضرورت ہے خصوصی کیس apostrophe کے. ہم تہرا استعمال کر رہے ہیں نوٹس یہاں آپریٹر. تو ہم ہیں، کے طور پر اس کو پڑھنے کے لئے جا رہے ہیں ہم میں پڑھا کردار ایک تھا apostrophe کے، تو ہم قائم کرنے کے لئے جا رہے ہیں انڈیکس = "حروف تہجی" -1، جس میں انڈیکس 26 ہو جائے. ورنہ، یہ ایک apostrophe کے نہیں تھا، وہاں ہم انڈیکس قائم کرنے کے لئے جا رہے ہیں C کے برابر ہے - ایک. تو واپس پہلے P-سیٹ سے یاد، C - A ہمیں دینے کے لئے جا رہا ہے سی کے حروف تہجی کی پوزیشن تو سی یہ جائے گا، خط ایک ہے ہم انڈیکس صفر دے. خط B کے لئے، یہ دے گا تو ہم انڈیکس 1، اور. تو یہ ہمیں میں انڈیکس دیتا ہے ہم چاہتے ہیں کہ بچوں کی صف. اب اس انڈیکس میں فی الحال خالی ہے بچوں، کا مطلب ہے کہ ایک نوڈ فی الحال موجود نہیں ہے کہ راستے سے. تو ہم مختص کرنے کی ضرورت اس راستے کے لئے ایک نوڈ. یہی وجہ ہے کہ ہم یہاں کیا کریں گے ہے. تو ہم پھر calloc استعمال کرنے کے لئے جا رہے ہیں تقریب، ہم کرنے کی ضرورت نہیں ہے تاکہ تمام اشارہ صفر. اور ہم پھر سے چیک کرنے کی ضرورت ہے کہ calloc ناکام نہیں کیا. calloc میں ناکام رہا تھا، تو ہم نے کی ضرورت سب کچھ اتارنا، بند ہماری ڈکشنری، اور جھوٹے واپس. تو یہ تو، ناکام نہیں تھا کہ سنبھالنے یہ ہمارے لئے ایک نئے بچے پیدا کر دے گا. اور پھر ہم اس بچے کے پاس جائیں گے. ہمارے کرسر iterate کے گا اس بچے کے نیچے. اب اس کے ساتھ شروع کرنے کے لئے، شہوت انگیز null نہیں تھا، پھر کرسر صرف iterate کے کر سکتے ہیں اصل کے بغیر بچے کو نیچے کچھ بھی مختص کرنے کے لئے. یہ ہم سب سے پہلے ہوا، جہاں معاملہ ہے لفظ مختص "بلی." اور ہم مختص کرنے کی جب کہ اس کا مطلب "تباہی،" ہم پیدا کرنے کے لئے کی ضرورت نہیں ہے پھر سی اے ٹی کے مراکز. انہوں نے پہلے ہی موجود ہیں. اور یہ کیا ہے؟ یہ C تھا جہاں شرط ہے C ایک نئی سطر تھا جہاں الٹا سلیش (ن)،. یہ ہم نے کامیابی کا مطلب ہے کہ ایک لفظ مکمل. اب جو ہم کرنا چاہتے ہیں جب ہم کامیابی سے ایک لفظ مکمل؟ ہم اس لفظ کے میدان میں استعمال کرنے کے لئے جا رہے ہیں ہمارے struct نوڈ کے اندر. ہم سچ ہے کہ مقرر کرنا چاہتے ہیں. تو اس کی طرف اشارہ کرتا ہے کہ اس نوڈ ایک کامیاب طرف اشارہ کرتا ہے لفظ، ایک حقیقی لفظ. اب سچ ہے کہ قائم. ہم نقطہ پر اپنے کرسر ری سیٹ کرنا چاہتے پھر trie کے آغاز پر. اور آخر میں، ہماری لغت اضافہ سائز، ہم ایک کام مل گیا کے بعد سے. تو ہم یہ ہے کہ ایسا رکھنے کے لئے جا رہے ہیں، ، کردار سے کردار میں پڑھنے ہمارے trie میں نئے مراکز کی تعمیر اور لغت میں، جب تک ہر لفظ کے لئے ہم آخر میں سی تک پہنچنے = مسل اختتام، جس میں کیس ہم فائل سے باہر توڑ. اب دو مقدمات کے تحت ہیں ہم مسل اختتام متاثر کیا ہے ہو سکتا ہے. ایک خرابی آگئی تھی تو سب سے پہلے ہے فائل سے پڑھنے کے. ایک خامی تھی تو، تو ہم عام کرنے کی ضرورت ہے. بند، سب کچھ اتارنا فائل، جھوٹے واپس. ، ایک خامی نہیں تھی سمجھتے ہوئے کہ صرف ہم اصل میں کے آخر مارا مطلب فائل، جس صورت میں، ہم قریب فائل اور صحیح واپس آ کے بعد سے ہم کامیابی کے ساتھ بھری ہوئی لغت ہمارے trie میں. تو اب چیک چیک کرتے ہیں. چیک تقریب میں کی تلاش میں، ہم دیکھتے ہیں چیک ایک bool واپس جا رہا ہے. اس لفظ یہ ہے کہ اگر یہ سچ واپس منظور کیا جا رہا ہے ہمارے trie میں ہے. یہ دوسری صورت میں جھوٹے واپس. تو آپ کس طرح کا تعین کر رہے ہیں اس لفظ ہمارے trie میں ہے؟ ہم یہاں دیکھتے ہیں کہ، صرف پہلے کی طرح، ہم iterate کرنے کے لئے کرسر کا استعمال کرنے جا رہے ہیں ہمارے trie کے ذریعے. اب یہاں ہم iterate کرنے جا رہے ہیں ہمارے پورے لفظ پر. تو، ہم نے ماضی ہیں لفظ پر iterating ہم تعین کرنے کے لئے جا رہے ہیں انڈیکس بچوں صف میں ہے لفظ بریکٹ میں مساوی تو اس بالکل طرح دیکھنے کے لئے جا رہا ہے لوڈ، کہاں تو لفظ [میں] ایک apostrophe کے، تو ہم چاہتے ہیں انڈیکس "حروف تہجی" استعمال کرنے کے لئے - 1. ہم تعین کیونکہ کہ ہم ذخیرہ کرنے کے لئے جا رہے ہیں جہاں ہے اپوسٹروفاس. ورنہ ہم دو کم لفظ استعمال کرنے کے لئے جا رہے ہیں بریکٹ میں تو اس لفظ یاد کر سکتے ہیں صوابدیدی بڑے حروف تہجی ہے. اور اس طرح ہم ہم اس بات کو یقینی بنانا چاہتے ہیں چیزوں کی ایک چھوٹے ورژن کا استعمال کرتے ہوئے. اور پھر اس 'A' ایک بار سے منہا ہمیں پھر سے حروف تہجی دے اس کردار کی پوزیشن. جس سے کہ ہماری انڈیکس جا رہا ہے بچوں صف میں. اور اب اگر بچوں میں اس انڈیکس صف خالی ہے، کہ ہم مطلب اب کوئی iterating کر جاری رکھ سکتے ہیں ہمارے trie نیچے. اگر یہ بات ہے، یہ لفظ نہیں کر سکتے ہیں ممکنہ طور پر ہمارے trie میں ہو. یہ تھے تو اس کے بعد کرے گا ایک راستہ ہو جائے گا مطلب اس لفظ کے نیچے. اور تم، شہوت انگیز null کا سامنا نہیں کریں گے. تو، شہوت انگیز null کا سامنا، ہم جھوٹے واپس. لفظ لغت میں نہیں ہے. یہ نل نہیں تھے، تو ہم ہیں iterating کر جاری کی جا رہی. لہذا ہم وہاں کرسر باہر جا رہے ہیں کہ خاص طور پر کی طرف اشارہ کہ انڈیکس میں نوڈ. ہم میں یہ ہے کہ ایسا رکھنے پورے لفظ، سنبھالنے ہم شہوت انگیز null کبھی نہیں مارا. یہی ہے جو ہم کے ذریعے حاصل کرنے کے قابل تھے کا مطلب پورے لفظ اور تلاش ہماری کوشش میں ایک نوڈ. لیکن ہم نے بہت ابھی تک نہیں کر رہے ہیں. ہم صرف سچ واپس نہیں کرنا چاہتے ہیں. ہم کرسر> لفظ واپس کرنا چاہتے ہیں. پھر یاد کے بعد سے، "بلی" نہیں ہے ہماری لغت میں، اور "تباہی" ، پھر ہم کامیابی کے ساتھ ہم مل جائے گا کے ذریعے لفظ "بلی." لیکن کرسر لفظ جھوٹے اور سچ نہیں ہو جائے گا. تو ہم اس بات کی نشاندہی کرنے کے لئے کرسر لفظ واپس چاہے اس نوڈ اصل میں ایک لفظ ہے. اور اس چیک کے لئے ہے. تو سائز چیک کرتے ہیں. تو سائز کافی آسان ہو جا رہا ہے کے بعد، لوڈ میں یاد، ہم کے لئے ڈکشنری سائز incrementing ہم کا سامنا ہے کہ ہر لفظ. سائز تو صرف کی جا رہی ہے ڈکشنری سائز کے واپس. اور یہ کہ یہ ہے. تو آخر میں ہم خالی ہے. تو خالی، ہم استعمال کرتے ہیں کرنے کے لئے جا رہے ہیں اصل میں تمام کرنے کے لئے پنراورتی تقریب ہمارے لئے کام کی. تو ہماری تقریب کی جا رہی ہے unloader بلایا جائے. کیا unloader کیا جا رہا ہے؟ ہم اس unloader جا رہا ہے یہاں دیکھ بچوں کے تمام پر iterate یہ خاص طور پر نوڈ. اور بچے نوڈ نہیں ہے شہوت انگیز null، تو پھر ہم جا رہے ہیں بچے نوڈ اتارنا. تو یہ آپ تکراری طور پر خالی ہے ہمارے بچوں کی تمام. ہم اس بات کا یقین ہے کہ ہو ایک بار اپنے بچوں کے تمام سامان اتارا گیا ہے، تو ہم خود آزاد، تو کر سکتے ہیں خود خالی. یہ تکراری طور پر کام کریں گے پورے trie کے خالی. اور پھر اس نے کیا کیا ہے ایک بار، ہم صرف سچ واپس آ سکتے ہیں. اتارنا ناکام نہیں ہو سکتا. ہم صرف چیزوں کو آزاد کر رہے ہیں. تو ایک بار ہم نے آزاد کیا کر رہے ہیں سب کچھ، سچ واپس. اور یہ کہ یہ ہے. میرا نام روب ہے. اور اس کے ہجے کنندہ تھا. [موسیقی بجانا]