当前位置: 首页 > news >正文

设计公司网站的要点辽宁省城乡建设集团官网

设计公司网站的要点,辽宁省城乡建设集团官网,浙江省工程信息网官网,做网站图片软件哈希表 概念:相当于字典,可以根据数据的关键字来寻找相关数据的查找表。 步骤:建立->插入->遍历->查找->销毁 建立 建立数据,形式随意,但一般为结构体(储存的数据量大)&#xff…

哈希表

概念:相当于字典,可以根据数据的关键字来寻找相关数据的查找表。

步骤:建立->插入->遍历->查找->销毁

建立

建立数据,形式随意,但一般为结构体(储存的数据量大);建立表结构体,包括储存数据的数据为和表结构体类型的指针(用于指向下一位)。

typedef struct hsnode
{DATA_TYPE data;struct hsnode *pnext;
}HASH_NODE;

接着用该结构体定义出一个大小为HASN_SIZE的哈希表:

HASH_NODE *hash_table[HASN_SIZE] = {NULL};

建立查找方法:根据具体的数据使用不同的方法,如汉字拼音可用拼音首子母来查找,将拼音转化为数字,根据数字来搜寻所需的数据域所对应的其余数据。

int hash_fun(char ch)
{if (ch >= 'a' && ch <= 'z'){return ch-'a';}else if (ch >= 'A' && ch <= 'Z'){return ch-'A';}else{return HASN_SIZE-1;}
}
插入

用表结构体定义一个大小为结构体大小的指针结点,使其数据域为输入的数据,后驱指针指向空,用建立的查找方法获得该结构体的角标,然后使后驱指针指向角标为获得的角标的哈希表,并使该表值为带新数据的表头。

int insert_hash_table(DATA_TYPE data)
{HASH_NODE *pnode = malloc(sizeof(HASH_NODE));if (NULL == pnode){perror("fail malloc");return -1;}pnode->data = data;pnode->pnext = NULL;int addr = hash_fun(data.name[0]);pnode->pnext = hash_table[addr];hash_table[addr] = pnode;return 0;
}
遍历

用循环来遍历表头,在循环内,建立一个指针,指向哈希表,再建立一个循环,若哈希表不指向空,就遍历该表,并打印表的内容。

void hash_for_each()
{for (int i = 0; i < HASN_SIZE; i++){HASH_NODE *ptmp = hash_table[i];while (ptmp != NULL){printf("%s %s %s %d\n", ptmp->data.name, ptmp->data.tel, ptmp->data.addr, ptmp->data.age);ptmp = ptmp->pnext;}printf("\n");}
}
查找

用表结构体定义一个指针,其值为角标为自定义的哈希函数的返回值的哈希表,只要其表结点不为空,就对比输入的搜索条件与表数据域相关内容,相同则返回,不同则使指针指向后驱结点继续对比

HASH_NODE *find_hash_table(char *name)
{int addr = hash_fun(name[0]);HASH_NODE *ptmp = hash_table[addr];while (ptmp != NULL){if (!strcmp(name, ptmp->data.name)){return ptmp;}ptmp = ptmp->pnext;}return NULL;
}
销毁

用表结构体定义一个指针,设置一个循环次数为哈希表长度的循环,再嵌套一个循环,若角标为循环次数的哈希表不为空(循环条件),则使指针等于角标为循环次数的哈希表,并使该哈希表值为指针的后驱结点,最后释放指针即可

void destroy_hash_table()
{HASH_NODE *ptmp = NULL;for (int i = 0; i < HASN_SIZE; i++){while(hash_table[i] != NULL){ptmp = hash_table[i];hash_table[i] = ptmp->pnext;free(ptmp);}}}

http://www.yayakq.cn/news/775398/

相关文章:

  • 企业网站pr值低怎么办医疗网站的建设设计要注意什么
  • 陕西交通建设集团网站体检桂林建站
  • 什么行业做网站网页制作接单
  • 外卖网站 模板电子商城网站设计论文
  • 功能型网站介绍宁波建站
  • wordpress主题图片替换无锡seo培训
  • 揭阳网站制作托管东莞市有多少个镇
  • 网站开发如何收费大数据分析
  • 做网站困难吗微信小程序可以做电影网站吗
  • 智能网站建设绵阳建设股份有限公司
  • 建立网站的主要方式wordpress后退会选中文字
  • 安庆网站建设哪家好wordpress前端
  • asp网站开发环境搭建iis 配置网站详解
  • 建一个英文网站需要多少钱艺术作品欣赏网站
  • 淘宝网站店铺请人做青岛seo网络优化公司
  • 广告推广方案百度seo推广工具
  • 企业网站名备案广东营销网站建设
  • 网站背景修改网站开发技术岗位职责
  • 门户网站界面设计模板网站建设丨选择金手指排名15
  • 东软实训网站开发门户网站建设需注意的问题
  • 北京网站公司哪家好商业网站设计与制作论文
  • 东莞智通人才网官网山西seo优化公司
  • 大型网站 开发语言网络舆情分析师证书
  • 八大处做双眼预约网站北京产品设计公司
  • 佛山外贸网站建设资讯wordpress数据库密码
  • 如何建一个企业网站做网站ps切图
  • 12306网站是是阿里巴巴做的吗wordpress建两个网站
  • 揭阳有哪家网站制作公司永兴县网站建设推广公司
  • 自己建一个网站怎么赚钱现货平台在中国合法吗
  • fullpage网站怎么做商城网站建设是什么意思