//// //// Ðåàëèçàöèÿ ñëîâàðÿ íà äâîè÷íîì äåðåâå ïîèñêà //// // //#define _CRT_SECURE_NO_WARNINGS //#include <string.h> //#include <stdlib.h> //#include "Dict.h" // // //// Óçåë äåðåâà //struct NodeTree { // char* word; // struct NodeTree* left; // struct NodeTree* right; //}; // //// Êîðåíü äåðåâà //struct NodeTree* root = NULL; // // // //struct NodeTree* addElement(struct NodeTree* p, char* word) //{ // int cond; // // if (p == NULL) { // p = (struct NodeTree*)malloc(sizeof(struct NodeTree)); // p->word = (char*)calloc(strlen(word) + 1, sizeof(char)); // strcpy(p->word, word); // p->left = p->right = NULL; // } // else if ((cond = strcmp(word, p->word)) == 0) { // // âñòàâëÿåìîå ñëîâî ñîâïàäàåò // // ñ óæå èìåþùèìñÿ - íè÷åãî íå äåëàåì // } // else if (cond < 0) { // // âñòàâëÿåìîå ñëîâî ìåíüøå // // êîðíÿ ïîääåðåâà // p->left = addElement(p->left, word); // } // else { // // âñòàâëÿåìîå ñëîâî áîëüøå // // êîðíÿ ïîääåðåâà // p->right = addElement(p->right, word); // } // return p; //} // // // //void clearTree(struct NodeTree* p) { // if (p != NULL) { // clearTree(p->left); // clearTree(p->right); // free(p->word); // free(p); // } //} // //int containElement(struct NodeTree* p, char* word) { // int cond; // if (p == NULL) { // return 0; // } // else if ((cond = strcmp(word, p->word)) == 0) { // return 1; // } // else if (cond < 0) { // return containElement(p->left, word); // } // else { // return containElement(p->right, word); // } //} // // // ///* INSERT – äîáàâëÿåò ýëåìåíò â ìíîæåñòâî. //Ìíîæåñòâî – ñîäåðæèò òîëüêî óíèêàëüíûå ýëåìåíòû. //Ïðè ïîâòîðíîì äîáàâëåíèè ýëåìåíòà â ìíîæåñòâî, ìíîæåñòâî íå èçìåíÿåòñÿ.*/ //void Insert(char* word) { // root = addElement(root, word); //} // ///* MEMBER – ñîîáùàåò, ÿâëÿåòñÿ ëè óêàçàííûé ýëåìåíò ÷ëåíîì äàííîãî ìíîæåñòâà èëè íåò.*/ //int Member(char* word) { // return containElement(root, word); //} // ///* CREATE - ñîçäàåò ñëîâàðü. //Âûçûâàåòñÿ ïåðåä íà÷àëîì èñïîëüçîâàíèÿ ñëîâàðÿ. */ //void Create() { // root = NULL; //} // ///* DESTROY - óíè÷òîæàåò ñëîâàðü. //Âûçûâàåòñÿ ïîñëå îêîí÷àíèÿ èñïîëüçîâàíèÿ ñëîâàðÿ. */ //void Destroy() { // clearTree(root); // root = NULL; //}