【发布时间】:2016-02-24 03:32:41
【问题描述】:
我正在完成一项学校作业,但我无法理解如何使用 ADT。基本上,我需要实现一个存储<key, value> 对的符号表ADT。与键关联的值是用户定义的任意对象,通过 void 指针传递给 ADT。我已经包含了头文件,我只需要为它制作源文件。
我坚持的声明是针对结构本身的。它是一个符号表对象,由SymTable_T 类型的指针指向。它应该能够复制插入其中的<key, value> 对,并且当从表中删除或表本身被破坏时,这些副本应该被破坏。
实现应该使用一个哈希表,该哈希表使用链接来解决冲突。我已经熟悉散列,所以没有问题。
这是我想出的:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "symTable.h"
#define DEFAULT_TABLE_SIZE 61
#define HASH_MULTIPLIER 65599
typedef struct SymTable *SymTable_T;
{
char *key;
int value;
struct SymTable *next; //linked list
};
有人能指出我正确的方向吗?有人可以向我解释实施 ADT 的要点吗?提前非常感谢您!
【问题讨论】:
标签: c linked-list hashtable abstract-data-type