1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3//EN">
<HTML><HEAD>
<TITLE>IBM Visualization Data Explorer Programmer's Reference</TITLE>
<META HTTP-EQUIV="abstract" CONTENT="IBM Visualization Data Explorer
Programmer's Reference">
<META HTTP-EQUIV="contact" CONTENT="IBM Visualization Data Explorer
(ibmdx@watson.ibm.com)">
<META HTTP-EQUIV="owner" CONTENT="IBM Visualization Data Explorer
(ibmdx@watson.ibm.com)">
<META HTTP-EQUIV="updated" CONTENT="Tue, 16 Sep 1997 ">
<META HTTP-EQUIV="review" CONTENT="Fri, 14 Aug 1998 ">
<META HTTP-EQUIV="keywords" CONTENT="GRAPHICS VISUALIZATION VISUAL PROGRAM DATA
MINING">
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
</HEAD><BODY BGCOLOR="#FFFFFF">
<A NAME="Top_Of_Page"></A>
<H1>IBM Visualization Data Explorer Programmer's Reference</H1>
<B>[ <A HREF="#Bot_Of_Page">Bottom of Page</A> | <A
HREF="progu124.htm">Previous Page</A> | <A HREF="progu126.htm">Next
Page</A> | <A HREF="../proguide.htm#ToC">Table of Contents</A> | <A
HREF="progu097.htm#PToC20">Partial Table of Contents</A> | <A
HREF="progu344.htm#HDRINDEX_START">Index</A> ]</B><HR><P>
<H3><A NAME="HDRDXCH" HREF="progu097.htm#PToC_219">DXCreateHash</A></H3>
<A NAME="IDX1620"></A>
<A NAME="IDX1621"></A>
<P><STRONG>Function</STRONG>
<P>
Creates a hash table for storing elements.
<P><STRONG>Syntax</STRONG>
<BR>
<TT><STRONG><BR>
#include <dx/dx.h><BR>
<P><BR>
HashTable DXCreateHash(int elementSize, PseudoKey (*hashFunc)(),<BR>
int (*cmpFunc)())<BR>
</STRONG></TT><BR>
<P><STRONG>Functional Details</STRONG>
<P>
An element to be stored consists of a key plus whatever data is to be
associated with that key.
Its size, in bytes, is specified by <TT><STRONG>elementSize</STRONG></TT>.
in bytes.
The parameter <TT><STRONG>hashFunc</STRONG></TT> points to the optional hash
function callback.
Given an element, <TT><STRONG>hashFunc</STRONG></TT> should return a uniformly
distributed
long integer
pseudokey.
If <TT><STRONG>hashFunc</STRONG></TT> is not provided, then the first
long integer
word of each key is assumed to be the pseudokey.
<TT><STRONG>cmpFunc</STRONG></TT> is the optional compare function callback.
Given a search key and an element, <TT><STRONG>cmpFunc</STRONG></TT>
should return 0 if the key matches the element.
If no compare function is provided, any element matching the pseudokey
is assumed to match the search key.
<P>
Optionally provided by the calling application:
<BR>
<TT><STRONG><BR>
PseudoKey hashFunc (Key key);<BR>
</STRONG></TT><BR>
<P>
Called on insertion and query to convert the arbitrary-size search
key into the
long integer
pseudokey used to store the hash table-element.
<BR>
<TT><STRONG><BR>
int cmpFunc (Key searchKey, Element element);<BR>
</STRONG></TT><BR>
<P>
Called on insertion and query when an element from the table matches
the pseudokey.
Returns 0 if the search key matches the key contained in the element
found in the table.
<P>
See <A HREF="progu070.htm#HDRHASH">14.5 , "Hashing"</A> for additional details
on
<TT><STRONG>hashFunc</STRONG></TT> and
<TT><STRONG>cmpFunc</STRONG></TT>.
The HashTable created should be deleted with DXDestroy when it is no
longer needed.
See <A HREF="progu023.htm#HDRMEMNG">4.2 , "Memory Management"</A>.
<P>
<TT><STRONG>PseudoKey</STRONG></TT> is defined as:
<PRE><STRONG>
typedef long PseudoKey;
typedef Pointer Key;
</STRONG>
</PRE>
<P><STRONG>Return Value</STRONG>
<P>
Returns the hash table or returns <TT><STRONG>NULL</STRONG></TT> and sets an
error code.
<P><STRONG>See Also</STRONG>
<P>
<TT><STRONG>
<A HREF="progu132.htm#HDRDXDHE">DXDeleteHashElement</A>,
<A HREF="progu133.htm#HDRDXDHSH">DXDestroyHash</A>,
<A HREF="progu186.htm#HDRDXGNHE">DXGetNextHashElement</A>,
<A HREF="progu214.htm#HDRDXIGNHE">DXInitGetNextHashElement</A>,
<A HREF="progu218.htm#HDRDXIHE">DXInsertHashElement</A>,
<A HREF="progu280.htm#HDRDXQHE">DXQueryHashElement</A>
</STRONG></TT>
<P>
<A HREF="progu070.htm#HDRHASH">14.5 , "Hashing"</A>.
<P><HR><B>[ <A HREF="#Top_Of_Page">Top of Page</A> | <A
HREF="progu124.htm">Previous Page</A> | <A HREF="progu126.htm">Next
Page</A> | <A HREF="../proguide.htm#ToC">Table of Contents</A> | <A
HREF="progu097.htm#PToC20">Partial Table of Contents</A> | <A
HREF="progu344.htm#HDRINDEX_START">Index</A> ]</B> <br><b>[<a
href="../allguide.htm">Data Explorer Documentation</a> | <a
href="../qikguide.htm">QuickStart Guide</a> | <a
href="../usrguide.htm">User's Guide</a> | <a
href="../refguide.htm">User's Reference</a> | <a
href="../proguide.htm">Programmer's Reference</a> | <a
href="../insguide.htm">Installation and Configuration
Guide</a> ]</b><br><p><b>[<a
href="http://www.research.ibm.com/dx">Data Explorer Home
Page</a>]</b><p><HR ALIGN=LEFT WIDTH=600><b>[<A
HREF="http://www.ibm.com/">IBM Home Page</A> | <A
HREF="http://www.ibm.com/Orders/">Order</A> | <A
HREF="http://www.ibm.com/Search/">Search</A> | <A
HREF="http://www.ibm.com/Assist/">Contact IBM</A> | <A
HREF="http://www.ibm.com/Legal/">Legal</A> ]</b><hr><p>
<A NAME="Bot_Of_Page"></A>
</BODY></HTML>
|