Разработка программного продукта, исключающего коллизию
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
}
{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.