برای دیکشنری معمولا از درخت جستجوی دودوئی (BST) استفاده میشود . در این نوع درخت ، عناصری که کوچکتر از ریشه هستند ، فرزند چپ و عناصری که بزرگتر از ریشه هستند ، فرزند راست ریشه خواهند شد . بدیهی است عنصر تکراری در درخت موجود نخواهد بود . کد زیر نمونه ابتدائی یک درخت جستجو هست که حتما برای طراحی یک دیکشنری باید بیشتر روش کار بشه .
class Node
{
char *word;
char *mean;
public:
Node *Lchild;
Node *Rchild;
Node(char *w="", char *m="")
{
strcpy(word,w);
strcpy(mean,m);
Lchild=0;
Rchild=0;
}
void link (Node *prvnode, Node *newnode) //گره قبلی را به گره جدید در حال ساخت با شروط زیر پیوند میزند
{
if (strcmp(prvnode.getword(), word)<0) // اگر کلمه جدید کوچکتر از قبلی باشد
prvnode.Lchild=newnde;
else if ( strcmp(prvnode.getword(), word)<0) // اگر کلمه جدید بزرگتر از کلمه قبلی باشد
prvnode.Rchild=newnde;
else
cout<<"Entery word is repetitive";
}
char* getword()
{
return word;
}
char* getmean()
{
return mean;
}
} *root=0; // است NULL ریشه درخت که در ابتدا
Node *curnode, // گره ای که در حال حاضر روی آن کار میکنیم
*prvnode, // گره قبلی
*newnode; // گره جدیدی که ساخته میشود
void main ()
{
.
.
.
}
برای جستجوش هم باید توابعی ، خارج از کلاس تعریف کنید تا از ریشه و با توجه به فرزندان چپ و راست ، درت را جستجو کنند .