>> سرور 1: دعونا نعطي هذا الحل المحاولة.
لذلك دعونا نلقي نظرة على ما لدينا سوف تبدو وكأنها عقدة البنية.
هنا، ونحن نرى ونحن في طريقنا لديك كلمة منطقي ونجم عقدة البنية
أطفال قوس الأبجدية.
أولا حتى الشيء الذي يمكن أن يتساءل، لماذا يتم تجزئة الأبجدية يعرف بأنه 27؟
كذلك، تذكر أننا سنحتاج الى ليتم التعامل مع اقتباس أحادية، لذلك
التي ستكون نوعا من الخاصة الحال في جميع أنحاء هذا البرنامج.
>> حسنا، الآن، وتذكر كيف يمكن ل حاكموا يعمل فعلا.
دعونا نقول أننا فهرسة القطط كلمة، ثم من جذر حاكموا لدينا،
ونحن في طريقنا لإلقاء نظرة على الأطفال مجموعة، ونحن في طريقنا للبحث في
المؤشر الذي يتوافق مع رسالة C. ذلك من شأنه أن يكون مؤشر اثنين.
ذلك بالنظر إلى أن، وهذا سيتيح لنا عقدة جديدة، ثم سنقوم
العمل من تلك العقدة.
>> ذلك بالنظر إلى أن عقدة، ونحن مرة أخرى سوف ننظر في مجموعة الأطفال،
ونحن في طريقنا للبحث في الفهرس الصفر لتتوافق مع A في القط.
حتى ذلك الحين ونحن في طريقنا للذهاب إلى تلك العقدة، وبالنظر إلى أن العقدة، ونحن في طريقنا
لإلقاء نظرة على المؤشر الذي يتوافق لT. والانتقال إلى تلك العقدة،
أخيرا، لقد بدا تماما من خلال كلمة القط، والآن منطقي
ومن المفترض الكلمة للإشارة إلى ما إذا كان هذه كلمة معينة هو في الواقع كلمة واحدة.
>> فلماذا نحتاج أن حالة خاصة؟
حسنا، ماذا لو كلمة كارثة في قاموسنا، ولكن
كلمة القط لا؟
حتى في البحث لمعرفة ما اذا كلمة القط في قاموسنا، ونحن في طريقنا لل
تبدو بنجاح من خلال مؤشرات C-A-T والتوصل إلى عقدة، ولكن هذا
فقط لأن الكارثة حدث ل إنشاء العقد على طول الطريق من C-A-T جميع
الطريق إلى نهاية الكلمة.
بحيث يتم استخدام منطقي كلمة تشير إلى ما إذا كان هذا الموقع خاص فعلا
تشير كلمة واحدة.
>> كل الحق، وحتى الآن أن نعرف ما حاكموا يجري لتبدو وكأنها، دعونا ننظر
في وظيفة التحميل.
لذلك يجري تحميل لإرجاع منطقي لما إذا كنا بنجاح أو
القاموس تحميلها دون جدوى و هذا سيكون القاموس
أننا نريد أن يتم تحميلها.
أولا حتى شيء نحن ذاهبون الى القيام به هو فتح حتى أن القاموس للقراءة.
علينا أن نتأكد من أننا لم تفشل، حتى إذا كان القاموس لا
افتتح بنجاح، فإنه سيعود لا، في هذه الحالة نحن في طريقنا لل
العودة الكاذبة.
ولكن على افتراض أنه بنجاح فتح، ثم يمكننا أن نقرأ الواقع
من خلال القاموس.
>> أولا حتى شيء ونحن في طريقنا ل تريد القيام به هو لدينا هذا
الجذر متغير عمومي.
الآن، وجذر ستكون نجمة العقدة.
انها قمة حاكموا لدينا أننا ستكون بالتكرار عبر.
أولا حتى شيء نحن ذاهبون الى تريد القيام به هو تخصيص الذاكرة لدينا الجذر.
>> تلاحظ أن نستخدمه في Calloc وظيفة، والتي هي في الأساس نفسه
كما وظيفة Malloc، إلا انها مضمونة للعودة شيء
ركزت تماما.
لذلك إذا كنا Malloc، فإننا بحاجة إلى تذهب من خلال جميع المؤشرات في موقعنا
عقدة وتأكد من أن انهم جميعا فارغة.
حتى Calloc سوف نفعل ذلك بالنسبة لنا.
>> الآن، تماما مثل Malloc، ونحن بحاجة للتأكد التأكد من أن تخصيص في الواقع
ناجحة.
إذا كان هذا عاد فارغة، ثم نحن تحتاج إلى إغلاق قاموسنا
ملف العودة وكاذبة.
حتى على افتراض تخصيص و ناجحة، ونحن في طريقنا إلى استخدام عقدة
نجم المؤشر لتكرار حاكموا من خلال موقعنا.
لذلك الجذر لدينا لن تتغير، ولكن ونحن في طريقنا إلى استخدام المؤشر ل
في الواقع الانتقال من عقدة إلى عقدة.
>> كل الحق، لذلك في هذا للحلقة، ونحن القراءة من خلال ملف القاموس،
ونستخدمه في fgetc.
حتى fgetc هو الذهاب الى الاستيلاء على واحد حرف من الملف.
ونحن في طريقنا لمواصلة الاستيلاء الأحرف في حين أننا لا تصل إلى
نهاية الملف، لذلك هناك حالتين نحن بحاجة إلى التعامل معها.
الأولى، إذا كان الحرف ليس سطر جديد، لذلك نحن نعرف ما اذا كان هذا الجديد
الخط، ثم نحن على وشك ننتقل إلى كلمة جديدة.
ولكن على افتراض أنه لم يكن سطر جديد، ثم هنا، ونحن نريد لمعرفة
مؤشر نحن في طريقنا للمؤشر في في مجموعة الأطفال التي
ونحن ننظر في من قبل.
>> لذلك كما قلت من قبل، نحن بحاجة إلى حالة خاصة اقتباس أحادية.
لاحظ أننا نستخدم المشغل الثلاثي هنا، لذلك نحن ذاهبون الى قراءة
هذا كما لو كان الطابع نقرأ في الفاصلة العليا، ثم نحن في طريقنا لل
تعيين المؤشر يساوي الأبجدية ناقص 1، والتي ستكون مؤشر 26.
آخر، إذا لم يكن الفاصلة العليا، ثم ونحن في طريقنا لتعيين مؤشر
ج يساوي ناقص.
حتى أن نتذكر مرة أخرى من مجموعات ع السابقة، ج ناقص سوف تعطينا
موقف أبجدية ج، لذلك إذا ج هو حرف A، هذه الإرادة
تعطينا مؤشر الصفر.
هذه الرسالة B، فإنه يعطي لنا مؤشر 1، وهلم جرا.
>> لذلك هذا يعطينا مؤشر إلى مجموعة الأطفال التي نريد.
الآن، إذا كان هذا هو مؤشر فارغة حاليا في مجموعة الأطفال، وهذا يعني أن
لا وجود عقدة حاليا من هذا الطريق، لذلك نحن بحاجة إلى تخصيص
عقدة لهذا المسار.
هذا ما نقوم به هنا.
لذلك نحن ذاهبون الى، مرة أخرى، استخدم Calloc وظيفة بحيث لم يكن لدينا
إلى صفر من كل المؤشرات، ونحن، مرة أخرى، تحتاج إلى التحقق من أن Calloc
لم تفشل.
إذا لم تفشل Calloc، ثم نحن بحاجة لتفريغ كل شيء، أغلق لدينا
القاموس، والعودة كاذبة.
>> حتى على افتراض أنه لم يفشل، ثم هذا سيخلق طفل جديد بالنسبة لنا،
ثم سنذهب الى هذا الطفل.
سيكون المؤشر لدينا تكرار وصولا الى هذا الطفل.
الآن، إذا كان هذا غير فارغة لتبدأ، ثم المؤشر يمكن تكرار فقط
وصولا الى هذا الطفل دون الواقع الحاجة إلى تخصيص أي شيء.
هذا هو الحال حيث أننا حصل الأول تخصيص كلمة القط، و
وهذا يعني عندما نذهب إلى تخصيص كارثة، ونحن لا تحتاج إلى إنشاء
العقد ل C-A-T مرة أخرى.
كانت موجودة بالفعل.
>> حسنا، ما هو هذا آخر؟
هذا هو الشرط حيث كان ج مائل n، حيث كان ج سطر جديد.
وهذا يعني أن لدينا بنجاح أكمل الكلمة.
الآن، ماذا نريد أن نفعل عندما كنا بنجاح كلمة واحدة؟
نحن ذاهبون الى استخدام هذا الحقل كلمة داخل البنية عقدة لدينا.
>> نحن نريد أن تعيين هذا إلى True، بحيث يشير إلى أن هذا يشير إلى وجود عقدة
كلمة الناجحة كلمة الفعلية.
الآن، تعيين هذا إلى True.
نحن نريد لإعادة المؤشر إلى نقطة دينا إلى بداية حاكموا مرة أخرى.
وأخيرا، زيادة قاموسنا الحجم منذ وجدنا كلمة أخرى.
>> كل الحق، لذلك نحن في طريقنا للحفاظ على القيام أن القراءة في حرف
حرف، بناء العقد الجديد في لدينا حاكموا ولكل كلمة في
القاموس، حتى نصل أخيرا لج يساوي EOF، في هذه الحالة، ونحن كسر
من الملف.
الآن، هناك نوعان من الحالات تحت التي كنا قد ضرب EOF.
الأول هو إذا كان هناك خطأ القراءة من ملف، لذلك إذا كان هناك
خطأ، ونحن بحاجة إلى القيام نموذجية تفريغ كل شيء، بإغلاق الملف،
العودة الكاذبة.
على افتراض لم يكن هناك خطأ، وهذا يعني فقط أننا فعلا ضرب نهاية
ملف، في هذه الحالة، فإننا إغلاق ملف العودة وصحيح لأننا
بنجاح تحميل القاموس لدينا في حاكموا.
>> كل الحق، لذلك دعونا الآن تحقق من تحقق.
النظر في وظيفة تحقق، ونحن نرى أن تحقق يجري لإرجاع منطقي.
فإنها ترجع صحيح إذا هذه الكلمة أنه يتم تمريرها في حاكموا لدينا.
تقوم بإرجاع False خلاف ذلك.
>> فكيف نحن ذاهبون إلى تحديد ما إذا كان هذه الكلمة هي في منطقتنا حاكموا؟
نرى هنا أنه، تماما مثل من قبل، ونحن في طريقنا إلى استخدام المؤشر للتنقل
حاكموا من خلال موقعنا.
الآن، وهنا، ونحن في طريقنا للتكرار خلال موقعنا على الكلمة بأكملها.
لذلك بالتكرار على كلمة نحن مرت، ونحن في طريقنا لتحديد
مؤشر إلى مجموعة الأطفال التي يقابل كلمة قوس ط.
لذلك هذا هو الذهاب الى تبدو تماما مثل الحمل، حيث إن كلمة قوس ط هو
اقتباس أحادية، ثم نريد استخدام المؤشر الأبجدية ناقص 1 لأننا تحديد
هذا هو المكان الذي نحن ذاهبون لتخزين الفواصل العليا.
>> إلا فإننا ذاهبون الى استخدام tolower كلمة قوس ط.
لذلك تذكر أن الكلمة يمكن أن يكون تعسفيا الرسملة، ولذا فإننا
نريد أن نتأكد من أن نستخدمه نسخة صغيرة من الأشياء.
ومن ثم طرح من هذا صغيرة لل، مرة أخرى، تعطينا
موقف الأبجدي من هذا الطابع.
بحيث سيكون لدينا مؤشر في مجموعة الأطفال.
>> والآن، إذا كان هذا المؤشر في الأطفال مجموعة باطل، وهذا يعني أننا
لم تعد قادرة على الاستمرار بالتكرار أسفل دينا حاكموا.
إذا كان هذا هو الحال، هذه الكلمة لا يمكن ربما يكون في حاكموا لدينا، لأنه إذا كان
و، فإن ذلك يعني أنه سيكون هناك الطريق وصولا الى تلك الكلمة، وتفعل
لم تواجه فارغة.
لذلك تواجه فارغة، نعود خطأ.
كلمة ليست في القاموس.
إذا لم تكن فارغة، ثم نحن في طريقنا لل تستمر بالتكرار، لذلك نحن ذاهبون
تحديث المؤشر لدينا للإشارة إلى أن عقدة معينة في هذا الفهرس.
>> لذلك علينا أن نحافظ يفعل ذلك طوال الكلمة بأكملها.
على افتراض أننا لم تصل لاغية، وهذا يعني تمكنا من خلال الحصول على كامل
العالم وتجد لدينا عقدة في حاكموا، لكننا لم تفعل تماما حتى الآن.
نحن لا نريد فقط العودة إلى صحيح.
نريد أن نعود المؤشر كلمة خطأ منذ ذلك الحين، نتذكر مرة أخرى، إذا ليس القط
في قاموسنا والكارثة، ثم سوف نحصل بنجاح من خلال
القط كلمة واحدة، ولكن الكلمة المؤشر سيكون خطأ وليس صحيح.
لذلك نعود للإشارة إلى كلمة المؤشر إذا كانت هذه العقدة هي في الواقع كلمة واحدة،
وهذا كل شيء عن الاختيار.
>> لذلك دعونا تحقق من الحجم.
لذلك الحجم سوف يكون من السهل جدا منذ ذلك الحين، نتذكر في الحمل، ونحن
تزايد حجم القاموس ل كل كلمة التي نواجهها.
لذلك الحجم هو مجرد الذهاب الى العودة حجم القاموس، وهذا كل شيء.
>> كل الحق، لذلك أخيرا، لدينا إلغاء.
حتى إلغاء، ونحن في طريقنا للاستخدام وظيفة عودي إلى القيام به في الواقع كل
العمل بالنسبة لنا، لذلك لدينا وظيفة سوف يتم استدعاؤها مفرغ.
ما هو مفرغ تنوي القيام به؟
نرى هنا أن يتم الانتقال إلى مفرغ تكرار عبر جميع الأطفال في
هذه عقدة معينة، وإذا كان الطفل العقدة ليست فارغة، ثم نحن في طريقنا لل
تفريغ عقدة الطفل.
>> لذلك هذا هو الذهاب الى متكرر تفريغ جميع أطفالنا.
مرة واحدة ونحن على يقين من أن جميع أطفالنا تم تفريغها، ثم نحن
يمكن أن نحرر أنفسنا، لذلك تفريغ بنفسي.
ولذلك فإن هذا سوف تفريغ متكرر حاكموا بأكمله، ثم مرة واحدة هذا
القيام به، ويمكننا فقط العودة صحيح.
تفريغ لا يمكن أن تفشل، ونحن مجرد تحرير الأشياء.
ذلك مرة واحدة ننتهي تحرير كل شيء، والعودة الحقيقية.
وهذا كل شيء.
اسمي روب، وهذا كان [غير مسموع].