【发布时间】:2014-01-31 08:27:58
【问题描述】:
#define maxCells 1000
#define maxCS 11
#define maxIT 19
typedef struct
{
char LN[16], FN[24], MI;
}nametype;
typedef struct studtype
{
unsigned long ID;
nametype name;
char course[8];
int yr;
}student;
typedef struct ctype
{
student stud;
int next;
}celltype;
typedef struct
{
int *Header;
int CourseCtr; /*holds the # of elements for each course*/
}CSIT;
typedef CSIT Dictionary[2];
typedef int LIST;
typedef struct
{
celltype heap[maxCells];
int AvailPtr; /*holds the index to the first available cell in the VH*/
}*VirtualHeap;
问题定义:
BSCS 和 BSIT 学生记录的列表存储在使用基于游标的实现表示的内部存储器中。该列表将被转换成一个字典,一个集合 ADT。字典使用开放散列(基于光标)在内存中表示。头表中的每一个组都是按照ID升序排列的。
*Hash 函数存在并且可以在你的函数中调用。该函数将接受一个元素作为其参数,并为每个元素返回适当的哈希值。
编写函数 CreateDic() 的代码——该函数会将 BSCS 和 BSIT 学生记录列表转换为字典,该字典将返回给调用函数。每个学生记录都由 ID 唯一标识。
问题
我不知道问题出在哪里,也不了解任何关于开放散列的信息。我是这种语言的新手。这不是作业,也不是练习。这是我们上周的一次考试,我从来没有想过这个问题。谁能帮我更好地理解这个问题。不管有没有密码。请帮我解决这个问题。
【问题讨论】:
-
恐怕你将不得不学习一些 C 语言并阅读开放哈希。期望我们在一个 StackOverflow 答案中教你这两件事是不现实的。
标签: c dictionary hash