Welcome

首页 / 软件开发 / C语言 / 数据结构-哈希表(C描述)

数据结构-哈希表(C描述)2010-05-06 “子 孑” 博客 1.基于分离链解决冲突

1.1主要的存储结构

struct ListNode
{
ElementType Element;
Position Next;
};

这是存储数据的结构,实际上是一个链表。

typedef struct ListNode *Position;
typedef Position List;
struct HashTbl
{
int TableSize;//哈希表大小
List *TheLists;//指针数组
};

这是哈希表主结构,*TheLists是一个指针数组,数组的每一项都链接一个上面的ListNode,而这个入口地址相当于链表头节点。

1.2ADT描述

hashsep.h
typedef int ElementType;
#ifndef HASHSEP_H_INCLUDED
#define HASHSEP_H_INCLUDED
typedef unsigned int Index;
struct ListNode;
typedef struct ListNode *Position;
struct HashTbl;
typedef struct HashTbl *HashTable;
HashTable InitializeTable( int TableSize );
void DestroyTable( HashTable H );
Position Find( ElementType Key, HashTable H );
void Insert( ElementType Key, HashTable H );
ElementType Retrieve( Position P );
/* Routines such as Delete are MakeEmpty are omitted */
#endif // HASHSEP_H_INCLUDED