اسپیکر 1: کی دے اس کا حل ایک کوشش. تو کیا ہمارے پر ایک نظر ڈالیں struct نوڈ طرح نظر آئے گا. یہاں، ہم جا رہے ہیں کو دیکھنے کے ایک bool کے کلام اور ایک struct نوڈ ستارہ بچوں کی 'الف بے' بریکٹ. تو سب سے پہلی چیز آپ سوچ سکتا ہے، کیوں حروف ہیش 27 کے طور پر بیان کیا جاتا ہے؟ ٹھیک ہے، ہم ضرورت کے لئے جا رہے ہیں یاد رکھیں کہ apostrophe کے ہینڈلنگ، ایسا کرنے میں کہ ایک خاص کی حد تک جا رہا ہے اس پروگرام میں کیس. ٹھیک ہے، اب، یاد کس طرح trie کے اصل میں کام کرتا ہے. ہم لفظ بلیوں تخکرمن کر رہے ہیں، پھر ہمارے trie کے جڑ سے، ہم بچوں کو دیکھنے کے لئے جا رہے ہیں صف، اور ہم کو دیکھنے کے لئے جا رہے ہیں خط کے مساوی ہے کہ انڈیکس سی تو ہے کہ انڈیکس دو ہو جائے گا. تو یہ، کہ ہمیں دے گا دی ایک نیا نوڈ، اور اس کے بعد ہم کریں گے اس نوڈ سے کام. تو وہ نوڈ دیا، ہم ایک بار پھر رہے ہیں بچوں کی صف کو دیکھنے کے لئے جا رہا، اور ہم انڈیکس صفر کو دیکھنے کے لئے جا رہے ہیں بلی میں ایک کے مطابق. تو پھر ہم اس نوڈ پر جانے کے لئے جا رہے ہیں، اور یہ کہ نوڈ دیا، ہم جا رہے ہیں مساوی ہے کہ انڈیکس کو دیکھنے کے لئے ٹی اور یہ نوڈ پر منتقل کرنے کے لئے آخر میں، ہم مکمل طور پر دیکھا ہے ہمارے لفظ بلی کے ذریعے، اور اب bool کے کلام چاہے نشاندہی کرنے کے لئے سمجھا جاتا ہے یہ دیا لفظ اصل میں ایک لفظ ہے. تو ہم کیوں اس خاص صورت کی ضرورت ہے؟ ٹھیک ہے، کیا اگر لفظ تباہی ہماری لغت میں ہے، لیکن لفظ بلی نہیں ہے؟ تو لفظ بلی ہے تو دیکھنے کے لئے کی تلاش میں ہماری لغت میں، ہم جا رہے ہیں کامیابی کے سوچکانکوں کے ذریعے تلاش C-A-T اور ایک نوڈ تک پہنچنے، لیکن اس تباہی ہوا صرف اس وجہ سے C-A-T کی طرف سے راستے پر نوڈس کے تخلیق کردہ تمام لفظ کے آخر کرنے کا طریقہ. تو bool کے لفظ یہ نشاندہی استعمال کیا جاتا ہے یہ خاص طور پر محل وقوع کے اصل ایک لفظ کی طرف اشارہ کرتا. ٹھیک ہے، تو اب ہم جانتے ہیں کہ کیا ایک trie کے کی دیکھو، طرح نظر آئے جا رہا ہے لوڈ تقریب میں. تو لوڈ ایک bool واپس جا رہا ہے چاہے ہم کامیابی کے ساتھ یا اس کے لئے ناکام لوڈ لغت اور اس لغت کی جا رہی ہے ہم نے لوڈ کرنا چاہتے ہیں. ہم کیا کرنے جا رہے ہیں تو سب سے پہلی چیز کھلا ہوا ہے پڑھنے کے لئے کہ لغت اپ. ہم ناکام نہیں کیا اس بات کا یقین کرنے کے لئے ہے، تو ڈکشنری نہیں تھا کامیابی سے کھول دیا، اس کو واپس کرے گا نہیں، جس صورت میں ہم جا رہے ہیں جھوٹے واپس. لیکن سنبھالنے ہے کہ یہ کامیابی کے ساتھ کھولی، تو اصل میں ہم پڑھ سکتے ہیں لغت کے ذریعے. ہم جا رہے ہیں تو سب سے پہلی چیز کرنا چاہتے ہیں ہم اس ہے ہے عالمی متغیر جڑ. اب، جڑ ایک نوڈ سٹار بننے جا رہا ہے. یہ ہم ہیں کہ ہمارے trie کے سب سے اوپر ہے کے ذریعے iterating کر جا رہا. ہم چاہتے ہیں کے لئے جا رہے ہیں تو سب سے پہلی چیز ایسا ہمارے روٹ کے لئے میموری مختص ہے. ہم Calloc کا استعمال کرتے ہوئے کر رہے ہیں بنیادی طور پر ایک ہی ہے، جس کی تقریب، MALLOC تقریب کے طور پر، سوائے یہ ہے ہے کہ کچھ واپس کرنے کے لئے بات کی ضمانت مکمل طور پر zeroed. ہم malloc کا استعمال کیا جاتا ہے تو ہم کی ضرورت ہو گی میں اشارہ کے تمام کے ذریعے جانا ہماری نوڈ اور اس بات کو یقینی بنانے کے وہ سب کے سب، شہوت انگیز null ہیں. تو Calloc ہمارے لئے ایسا کرے گا. اب، صرف malloc کی طرح، ہم کرنے کی ضرورت ہے مختص اصل میں ہے اس بات کا یقین کامیاب. اس شہوت انگیز null واپس آئے تو، پھر ہم ہماری لغت کو بند کرنے کی ضرورت ہے فائل اور جھوٹے واپس. تو مختص کیا گیا تھا سنبھالنے کامیاب، ہم ایک نوڈ استعمال کرنے کے لئے جا رہے ہیں iterate کرنے کے لئے کرسر ستارہ ہمارے trie کے ذریعے. تو ہماری جڑ تبدیل کرنے جا رہا کبھی نہیں ہے، لیکن ہم کرسر استعمال کرنے کے لئے جا رہے ہیں اصل نوڈ سے نوڈ کرنے کے لئے جانا. ٹھیک ہے، تو اس میں لوپ کے لئے، ہم ہیں ، ڈکشنری فائل کے ذریعے پڑھنے اور ہم fgetc میں استعمال کر رہے ہیں. تو fgetc ایک قبضہ کرنے کے لئے کی جا رہی ہے فائل سے کردار. ہم پکڑ جاری رکھنے کے لئے جا رہے ہیں حروف ہم تک پہنچنے نہیں جبکہ فائل کے آخر میں، تو وہاں ہیں ہم کو ہینڈل کرنے کی ضرورت ہے دو مقدمات. سب سے پہلے، کردار نہیں تھا تو ایک یہ ایک نیا تھا تو نئی لائن، تو ہم جانتے ہیں لائن، پھر ہم کرنے والے ہیں ایک نیا لفظ پر منتقل. لیکن اس وقت، یہ ایک نئی لائن نہیں تھا سنبھالنے یہاں، ہم معلوم کرنا چاہتے ہیں انڈیکس ہم میں انڈیکس کرنے جا رہے ہیں بچوں کی صف میں ہم نے پہلے دیکھا. میں نے پہلے کہا تو کی طرح، ہم کرنے کی ضرورت ہے خصوصی کیس apostrophe کے. ہم تہرا آپریٹر کا استعمال کرتے ہوئے کر رہے ہیں نوٹس یہاں، تو ہم پڑھنے کے لئے جا رہے ہیں یہ ہم میں پڑھا کردار تھا کے طور پر اگر ایک apostrophe کے، تو پھر ہم جا رہے ہیں حروف مائنس برابر انڈیکس سیٹ 1، جس میں انڈیکس 26 ہو جائے گا. ورنہ، یہ ایک apostrophe کے نہیں تھا، پھر ہم انڈیکس قائم کرنے کے لئے جا رہے ہیں C مائنس ایک کے برابر. تو پچھلے P سیٹ سے یاد، C مائنس امریکہ دینے جا رہا ہے حروف تہجی کے اعتبار سی کی پوزیشن، اگر ایسا ہے تو C خط، یہ مرضی ہے ہم انڈیکس صفر دے. خط B کے لئے، یہ دے گی تو ہم انڈیکس 1، اور. تو یہ ہمیں میں انڈیکس دیتا ہے ہم چاہتے ہیں کہ بچوں کی صف. اب، اس فہرست میں فی الحال خالی ہے بچوں کی صف، کا مطلب ہے کہ ایک نوڈ فی الحال سے موجود نہیں ہے جو راستہ، تو ہم مختص کرنے کی ضرورت ہے ایک اس راستے کے لئے نوڈ. یہی وجہ ہے کہ ہم یہاں کیا کیا ہے. تو ہم نے، پھر، Calloc استعمال کرنے کے لئے جا رہے ہیں تقریب ہمارے پاس نہیں ہے تاکہ اشارہ کے تمام صفر، اور ہم، پھر، کہ Calloc چیک کرنے کی ضرورت میں ناکام رہے تھے. Calloc میں ناکام رہا تھا، تو ہم نے کی ضرورت سب کچھ اتارنا، بند ہماری ڈکشنری، اور جھوٹے واپس. تو یہ تو، ناکام نہیں تھا کہ سنبھالنے یہ ہمارے لئے ایک نئے بچے پیدا کرے گا اور پھر ہم اس بچے کے پاس جائیں گے. ہمارے کرسر iterate کے گا اس بچے کے نیچے. اب، اس کے ساتھ شروع کرنے کے لئے، شہوت انگیز null نہیں تھا، پھر کرسر صرف iterate کے کر سکتے ہیں اصل کے بغیر بچے کو نیچے کچھ بھی مختص کرنے کے لئے. یہ ہم سب سے پہلے ہوا، جہاں معاملہ ہے لفظ بلی مختص، اور ہم مختص کرنے کی جب کہ اس کا مطلب تباہی، ہم پیدا کرنے کے لئے کی ضرورت نہیں ہے پھر سی اے ٹی کے مراکز. انہوں نے پہلے ہی موجود ہیں. ٹھیک ہے، تو اس کے اور کیا ہے؟ یہ C تھا جہاں شرط ہے C ایک نئی سطر تھا جہاں الٹا سلیش (ن)،. یہ ہم نے کامیابی کا مطلب ہے کہ ایک لفظ مکمل. اب جو ہم کرنا چاہتے ہیں جب ہم کامیابی سے ایک لفظ مکمل؟ ہم اس لفظ کے میدان میں استعمال کرنے کے لئے جا رہے ہیں ہمارے struct نوڈ کے اندر. ہم سچ ہے کہ مقرر کرنا چاہتے ہیں، تاکہ اس نوڈ کی طرف اشارہ اشارہ کرتا ہے کہ ایک کامیاب لفظ ایک حقیقی لفظ. اب، یہ سچ ہے کہ قائم. ہم نقطہ پر اپنے کرسر ری سیٹ کرنا چاہتے پھر trie کے آغاز پر. اور آخر میں، ہماری لغت اضافہ ہم ایک لفظ پایا سائز کے بعد. ٹھیک ہے، تو ہم کر رکھنے کے لئے جا رہے ہیں کہ، کی طرف سے کردار میں پڑھنے کردار، میں نئے مراکز کی تعمیر ہمارے trie میں ہر لفظ کے لئے ڈکشنری، ہم آخر میں C تک ، ہم توڑ جس صورت میں مسل اختتام، برابر فائل سے باہر. اب، دو مقدمات کے تحت ہیں ہم مسل اختتام متاثر کیا ہے ہو سکتا ہے. ایک خرابی آگئی تھی تو سب سے پہلے ہے وہاں تھا تو فائل سے پڑھنے، تو ایک غلطی، ہم عام کرنے کی ضرورت ہے ، سب کچھ خالی فائل کو بند، جھوٹے واپس. ، ایک خامی نہیں تھی سمجھتے ہوئے کہ صرف ہم اصل میں کے آخر مارا مطلب فائل، جس صورت میں، ہم قریب فائل اور صحیح واپس آ کے بعد سے ہم کامیابی کے ساتھ ڈکشنری لوڈ ہمارے trie میں. ٹھیک ہے، تو اب چلو چیک چیک کریں. چیک تقریب میں، ہم دیکھتے ہیں چیک کریں کہ ایک bool واپس جا رہا ہے. اس لفظ یہ ہے کہ اگر یہ سچ واپس منظور کیا جا رہا ہے ہمارے trie میں ہے. یہ دوسری صورت میں جھوٹے واپس. تو ہم کس طرح کا تعین کرنے کے لئے جا رہے ہیں اس لفظ ہمارے trie میں ہے؟ ہم یہاں دیکھتے ہیں کہ، صرف پہلے کی طرح، ہم iterate کرنے کے لئے کرسر کا استعمال کرنے جا رہے ہیں ہمارے trie کے ذریعے. اب، یہاں، ہم iterate کرنے جا رہے ہیں ہمارے پورے لفظ پر. تو ہم ہیں لفظ پر iterating منظور، ہم تعین کرنے کے لئے جا رہے ہیں انڈیکس بچوں صف میں ہے لفظ بریکٹ میں مساوی ہے. تو یہ بالکل طرح دیکھنے کے لئے جا رہا ہے لوڈ، جہاں لفظ بریکٹ میں ہے apostrophe کے، پھر ہم انڈیکس استعمال کرنا چاہتے ہیں 1 مائنس حروف ہم سے مقرر کیا کیونکہ ہم کہاں جا رہے ہے اپوسٹروفاس ذخیرہ کرنے کے لئے. تو ہم tolower استعمال کرنے کے لئے جا رہے ہیں لفظ بریکٹ میں. تو ہو سکتا ہے کہ لفظ یاد صوابدیدی بڑے حروف تہجی، اور ہم ہم استعمال کر رہے ہیں اس بات کو یقینی بنانا چاہتے ہیں چیزوں کی ایک چھوٹے ورژن. اور پھر اس چھوٹے سے منہا ایک، ایک بار پھر، ہمیں دینے کے لئے حروف تہجی کے اعتبار کی پوزیشن کہ کردار کی. جس سے کہ ہماری انڈیکس جا رہا ہے بچوں کی صف میں. اور اب، اگر بچوں میں اس انڈیکس صف خالی ہے، کہ ہم مطلب اب کوئی iterating کر جاری رکھ سکتے ہیں ہمارے trie نیچے. اگر یہ بات ہے، یہ لفظ نہیں کر سکتے ہیں ممکنہ طور پر، ہمارے trie میں کے بعد سے تو یہ ، کہ وہاں ہو جائے گا کا مطلب ہو گا کیا گیا راستہ ہے کہ لفظ، اور آپ گے شہوت انگیز null کا سامنا کبھی نہیں. تو، شہوت انگیز null کا سامنا، ہم جھوٹے واپس. لفظ لغت میں نہیں ہے. یہ نل نہیں تھے، تو ہم جا رہے ہیں iterating کر جاری رکھیں، تاکہ ہم جا رہے ہیں اس کی طرف اشارہ کرنے کے لئے ہمارے کرسر کو اپ ڈیٹ کرنے کہ انڈیکس میں خاص طور پر نوڈ. تو ہم میں یہ ہے کہ ایسا رکھنے پورے لفظ. ، ہم شہوت انگیز null کبھی نہیں مارا سمجھتے ہوئے اس کا مطلب ہم پورے کے ذریعے حاصل کرنے کے قابل تھے دنیا اور ہمارے trie میں ایک نوڈ کو تلاش، لیکن ہم نے بہت ابھی تک نہیں کر رہے ہیں. ہم صرف سچ واپس نہیں کرنا چاہتے ہیں. ہم کرسر غلطی لفظ واپس کرنا چاہتے ہیں بلی نہیں ہے کے بعد سے،، ایک بار پھر یاد ، ہماری لغت اور تباہی ہے پھر ہم نے کامیابی کے ذریعے ملے گا لفظ بلی، لیکن کرسر لفظ جھوٹے اور سچ نہیں ہو جائے گا. تو ہم اس بات کی نشاندہی کرنے کے لئے کرسر لفظ واپس چاہے اس نوڈ اصل میں ایک لفظ ہے، اور اس چیک کے لئے ہے. تو سائز چیک کرتے ہیں. تو سائز کافی آسان ہو جا رہا ہے کے بعد، لوڈ میں یاد رکھیں، ہم ہیں کے لئے ڈکشنری سائز incrementing ہم کا سامنا ہے کہ ہر لفظ. سائز تو صرف واپس جا رہا ہے لغت کے سائز، اور یہ کہ یہ ہے. ٹھیک ہے، تو آخر میں، ہم خالی ہے. تو خالی، ہم استعمال کرتے ہیں کرنے کے لئے جا رہے ہیں اصل میں تمام کرنے کے لئے پنراورتی تقریب ہم، ہماری تقریب کے لئے کام کی Unloader بلایا جا رہا ہے. کیا Unloader کیا جا رہا ہے؟ ہم اس Unloader جا رہا ہے یہاں دیکھ بچوں کے تمام پر iterate یہ خاص طور پر نوڈ، اور اگر بچے نوڈ، شہوت انگیز null نہیں ہے، تو پھر ہم جا رہے ہیں بچے نوڈ اتارنا. تو یہ تکراری جا رہا ہے ہمارے بچوں کی سب اتارنا. ہم اس بات کا یقین ہے کہ ہو ایک بار اپنے بچوں کے تمام سامان اتارا گیا ہے، تو ہم خود آزاد، تو ourself کی خالی کر سکتے ہیں. تو یہ تکراری طور اتارنا گا پورے trie کے، اور اس کے بعد ہے کہ ایک بار کیا، ہم صرف سچ واپس آ سکتے ہیں. خالی ہم، ناکام نہیں کر سکتے ہیں صرف چیزوں کو آزاد. تو ایک بار ہم نے آزاد کیا کر رہے ہیں سب کچھ، سچ واپس. اور یہ کہ یہ ہے. میرا نام روب ہے، اور اس [اشراوی] تھا.