Разработка программного продукта, исключающего коллизию

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

}

{if(root->BH_data==NULL)

{(p[pos]==0)

{(root->Right==NULL)

{*tmp = new BH;>Right=tmp;>Right->BH_data=data;>Right->collData=coll;1;

}

{(root->Right,data,coll,++pos);1;

}

}(p[pos]==1)

{(root->Left==NULL)

{*tmp =new BH;>Left=tmp;>Left->BH_data=data;>Left->collData=coll;1;

}

{(root->Left,data,coll,++pos);1;

}

}

}(root->BH_data!=NULL)

{(*root->BH_data==*data)return 1;(p[pos]==0)

{* tmp =new BH;>Right=tmp;>Right->BH_data=data;>Right->collData=coll;

}(p[pos]==1)

{* tmp =new BH;>Left=tmp;>Left->BH_data=data;>Left->collData=coll;

}dd = root->collData;*ddd = new String;

*ddd=*root->BH_data;(root->BH_data);>BH_data=NULL;>collData=0;(root,ddd,dd,pos);

return 1;

}

}

}

}

 

При внесении данных автоматически выполняется функция прорисовки дерева:

 

void paintTree( TImage *img, int x, int y,int _x=0, int _y=0)

{>Canvas->Rectangle(0,0,img->Width,img->Height);>Canvas->Brush->Color=clWhite;>Canvas->FloodFill(0,0,clWhite,fsBorder);>Canvas->CleanupInstance(); paintRoot(img,Head, x, y,100,20,_x,_y)

;}

 

Данная функция вызывает функцию рисования узла дерева и затем посредством рекурсивных вызовов прорисовывают всё дерево:

 

void paintRoot( TImage *img,BH *root,int x, int y,int n=1,int m=1,int _x=0,

int _y=0)

{=25;+=10;(_x>=x & _x=y & _y<=y+20 )

{>Canvas->Brush->Color=clWhite;>Canvas->Font->Size=24;(root!=NULL) if(root->BH_data!=NULL)img->Canvas-

>TextOutA(10,10,(*root->BH_data));

}(root==NULL)

{>Canvas->Brush->Color=clRed;>Canvas->Ellipse(x,y,(x+10),(y+10));

}

{(root!=NULL && root->BH_data==NULL)

{>Canvas->Brush->Color=clBlue;>Canvas->Ellipse(x,y,(x+10),(y+10));>Canvas->MoveTo(x+5,y+5);>Canvas->LineTo(x-5-n,y+15+m);(img,root->Left,x-10-n,y+10+m,n,m,_x,_y);>Canvas->MoveTo(x+5,y+5);>Canvas->LineTo(x+15+n,y+15+m);(img,root->Right,x+10+n,y+10+m,n,m,_x,_y);}{>Canvas->Brush->Color=clGreen;>Canvas->Ellipse(x,y,x+10,y+10);>Canvas->MoveTo(x+5,y+5);>Canvas->LineTo(x-5-n,y+15+m);(img,root->Left,x-10-n,y+10+m,n,m,_x,_y);>Canvas->MoveTo(x+5,y+5);>Canvas->LineTo(x+15+n,y+15+m);(img,root->Right,x+10+n,y+10+m,n,m,_x,_y);

}

}

}

ГЛАВА 4. ЭКСПЕРИМЕНТАЛЬНЫЙ РАЗДЕЛ

 

4.1 Руководство пользователя

 

 

 

Программа представляет собой оконное приложение. В нижнем левом углу располагается поле ввода и кнопка добавления введенных данных в дерево. Основная область рабочего окна служит для прорисовки дерева.

При добавлении данных, на рабочей области отрисовывается построенное дерево. Дерево может содержать до трех различных типов узлов, синие - не содержащие данных, кроме указателей на потомков, зеленые - содержащие пользовательские данные, и красные - NULL элементы.

 

 

При непосредственном выборе узла с помощью мышки, происходит поиск и вывод содержимого данного узла.

 

 

ЗАКЛЮЧЕНИЕ

 

Хеширование, которое родилось еще в середине прошлого века, активно используется в наши дни везде, где требуется произвести быструю выборку данных. Появились новые методы хеширования, новые модификации алгоритмов, написанных ранее, что позволяет значительно ускорить и расширить возможности поиска информации.

В своей работе я проанализировал современные подходы к организации хранения и обработки данных, выявил преимущества использования hash - функций для достижения наилучшей производительности поиска информации. Цель работы - создание программного продукта, достигнута.

 

 

СПИСОК ЛИТЕРАТУРЫ

 

1.Hellerman H., Digital Computer System Principles. McGraw-Hill, 1967.

2.Ершов А.П., Избранные труды., Новосибирск: Наука, 1994.

3.Кнут Д., Искусство программирования, т.3. М.: Вильямс, 2000.

4.Peterson W.W., Addressing for Random-Access Storage // IBM Journal of Research and Development, 1957. V.1, N2. Р.130-146.

5.Morris R., Scatter Storage Techniques // Communications of the ACM, 1968. V.11, N1. Р.38-44.

6.Buchholz W., IBM Systems J., 2 (1963), 86-111

7.Fundamenta Math. 46 (1958), 187-189

8.">

9.">

10.">

11.R. Cichelli, Minimal Perfect Hashing Made Simple, Comm. ACM Vol. 23 No. 1, Jan. 1980.

12.T. Gunji, E. Goto, J. Information Proc., 3 (1980), 1-12

13.Чмора А., Современная прикладная криптография., М.: Гелиос АРВ, 2001.

14.Litwin W., Proc. 6th International Conf. on Very Large Databases (1980), 212-223

15.Кормен Т., Лейзерсон Ч., Ривест Р., Алгоритмы: построение и анализ, М.: МЦНМО, 2001

16.Вирт Н., Алгоритмы + структуры данных = программы, М.: Мир, 1985.

17.Керниган Б., Пайк Р., Практика программирования, СПб.: Невский диалект, 2001.

18.Шень А, Программирование: теоремы и задачи. М.: МЦНМО, 1995.