/*
实验项目名称
:
电话号码查询系统的实现
实验目的与要求
:
1.
基础知识
:
掌握数据结构中的查找、排序等算法相关知识
;
掌握
C
或
VC++
语言中程序设计的方法。
2.
参考教材相关算法,完成以下程序功能
:
(1)
自选存储结构实现电话号码表的初始化;
(2)
编写一个电话号码查询系统
,
要求有电话号码记录的录入
(
插入
)
存储、
查询、
记录
删除、排序、打印等模块
;
实验性质
:
综合性
(4
学时
)
说明
:
存储结构可采用哈希表的方式
,
完成用电话号码或姓名为关键字构建哈希表
,
并进
行查询、添加、删除、打印记录等功能模
块
(
此方式为推荐方式
),
其次子函数的调用顺序由最终用户决定
(
可用多分支结构
),
程序中应有用户的操作选择界面
.
*/
# include "stdio.h"
# include "stdlib.h"
# define SUCCESS 1
# define NULL_KEY -2
//-2
为无标志记录
# define UNSUCCESS 0
# define DUPLICATE -1
int hashsize[]={11,19,29,37};
//
哈希表容量递增表
,
一个合适的素数序列
int m=0;
//
哈希表表长
,
全局变量
typedef int KeyType;
//
设关键字为整形
typedef struct {
char name;
//
姓名
KeyType num;
//
号码
}Node;
typedef struct {
Node *elem;
//
数据元素存储地址
,
动态分配数组
int count;
//
当前数据元素个数
int sizeindex;
//hashsize[H.sizeindex]
为当前容量
}HashTable;
void ChuangJian(HashTable &H) {
//
构建一个空哈希表
int i;
H.count=0;
//
当前元素个数
H.sizeindex=0;
//
初试存储容量为
hashsize[0]
m=hashsize[0];
H.elem=(Node *)malloc(m*sizeof(Node));
if (!H.elem)
exit (-2);
//
存储分配失败