#1 10.05.09 16:39
Помогите - "Хэш таблица"
Необходимо написать программу на языке Си, которая будет читать входной .txt файл с кодом программы на языке Си. Программа должна подобно компилятору проверять код на наличие, например, инициализированных, но не использованных переменных и как-нибудь сообщать об этом. Такая проверка должна использовать построение таблицы символов или хэш-таблицы.
Таблица должна строиться на бинарном дереве.
Так вот, может есть у кого что подобное (кода кусок или функции или хорошая ссылочка), чтобы собрать такую прогу.
Я не сильно шарю в программировании, поэтому прошу оказать по возможности какую-нибудь помощь.)))
У меня есть несколько функций, но мож есть лучше или какая функция ещё должна быть в проге? :
----------------------------------------------------------------------------------------------------
Поиск в такой таблице может быть описан следующей функцией: struct TreeElement * SearchTree(String Id, struct TreeElement * TP)
{int comp;
if (TP==NULL) return NULL;
comp=IdComp(Id,TP->IdentP);
if (comp<0) return(SearchTree(Id,TP->Left));
if (comp>0) return(SearchTree(Id,TP->Right));
return TP;
}
----------------------------------------------------------------------------------------------------
где структура для для элемента дерева имеет вид struct TreeElement
{String IdentP;
struct TreeElement * Left, * Right;
};
-----------------------------------------------------------------------------------------------------
Занесение в таблицу осуществляется функцией struct TreeElement * InsertTree(String Id, struct TreeElement * TP)
{int comp=IdComp(Id,TP->IdentP);
if (comp<0) return(Fill(Id,TP->Left, &(TP->Left)));
if (comp>0) return(Fill(Id,TP->Right, &(TP->Right)));
return(TP);
}
struct TreeElement * Fill(String Id,
struct TreeElement * P,
struct TreeElement ** FP)
{ if (P==NULL)
{P=alloc(sizeof(struct TreeElement));
P->IdentP=Include(Id);
P->Left=NULL;
P->Right=NULL;
*FP=P;
return(P);
}
else return(InsertTree(Id,P));
}
Исправлено AZOT--888 (10.05.09 16:41)
Offline

