فئة TrieNode
الدرس 3 من 14 في دورة Tries - سلسلة هياكل البيانات #8 على Coddy.
كل عقدة في الـ trie هي كائن صغير واحد يحتوي على معلومتين: الـ children المتفرعة منها (خريطة من حرف إلى العقدة التالية) وعلامة isEndOfWord التي تحدد ما إذا كان المسار من الجذر إلى هذه العقدة يمثل كلمة كاملة تم إدخالها.
هذا هو الكلاس بالكامل. لا توجد قيم، ولا مفاتيح: موضع العقدة في الشجرة هو معناها. يصل مسار من الحواف التي تحمل العلامات c و a و t من الجذر إلى العقدة حيث نقوم بتعيين isEndOfWord = true عند إدخال "cat".
لنبدأ ببناء كلاس TrieNode هذا - وسوف يستخدمه كلاس Trie في الدرس القادم.
التحدي
سهلاكتب فئة TrieNode مع constructor لا يأخذ أي مدخلات.
قم بتهيئة حقلين:
childrenمضبوط على empty map (أو ما يعادلها في لغتك لخريطة character-to-node).isEndOfWordمضبوط على false.
جرّب بنفسك
#include <stdio.h>
#include "trienode.h"
int main() {
TrieNode* n = TrieNode_new();
printf("%s %s\n",
TrieNode_childrenCount(n) == 0 ? "true" : "false",
n->isEndOfWord ? "true" : "false");
return 0;
}