文档章节

算法学习 之链表

东湖畔新家
 东湖畔新家
发布于 2017/05/09 18:57
字数 388
阅读 4
收藏 0

/**********开放定址哈希表的存储结构**********/ 
int hashsize[ ] = { 997, ... }; // 哈希表容量递增表一个合适的素数序列
typedef struct 
{
ElemType *elem; // 数据元素存储基址,
int count; // 当前数据元素个数
int sizeindex;// sizeindex为当前容量
} HashTable;
#define SUCCESS 1
#define UNSUCCESS 0
#define DUPLICATE -1
Status SearchHash (HashTable H, KeyType Key, int &p, int &c) 
{ // 在开放定址哈希表H中查找关键码为K的元素,
// 若查找成功,以p指示待查数据元素在表中位置,
// 并返回SUCCESS;否则,以p指示插入位置,
// 并返回UNSUCCESS, c用以计冲突次数,其初值
// 置零,供建表插入时参考
p = Hash(Key);  //求得哈希地址
while ( H.elem[p].key != NULLKEY &&K != H.elem[p].key) 
// 该位置中填有记录并且关键字不相等
collision(p, ++c); // 求得下一探查地址p
if ((Key== H.elem[p].key) return SUCCESS; 
// 查找成功,p返回待查数据元素位置
else return UNSUCCESS; // 查找不成功,p返回的是插入位置
} // SearchHash

通过调用查找算法实现了开放定址哈希表的插入操作。

Status InsertHash (HashTable &H, Elemtype e) 
{ // 查找不成功时插入数据元素e到开放定址哈希表H
// 中,并返回OK;若冲突次数过大,则重建哈希表
c = 0;
if ( HashSearch ( H, e.key, p, c ) == SUCCESS )
return DUPLICATE;  //表中已有与e有相同关键字的元素
else if ( c < hashsize[H.sizeindex]/2 ) 
{  // 冲突次数c未达到上限,(阀值c可调)
H.elem[p] = e; ++H.count; return OK; // 插入e
} 
else RecreateHashTable(H);     // 重建哈希表
} // InsertHash
 

© 著作权归作者所有

东湖畔新家
粉丝 1
博文 170
码字总数 31582
作品 0
杭州
后端工程师
私信 提问
你和名企的距离,差的不只是985/211或研究生学历

今天高考结束了, 或许有些热爱代码的00后同学,看到网上公布的答案,开始估分,自已离985/211就差做错或少做一道题, 感觉没戏,来社区看代码来了。我在很多年前,考上的也是双非学校。虽然...

旅梦开发团
06/08
0
0
各种基本算法实现小结(一)—— 链 表

各种基本算法实现小结(一)—— 单链表 (均已测试通过) ============================================================ 单链表(测试通过) 测试环境: Win-TC 运行结果: ==============...

长平狐
2013/01/06
81
0
浅入浅出数据结构(1)——什么是数据结构及算法

在很多数据结构相关的书籍,尤其是中文书籍中,常常把数据结构与算法“混合”起来讲,导致很多人初学时对于“数据结构”这个词的意思把握不准,从而降低了学习兴趣和学习信心。然而实际上,数...

你的社交帐号昵
2018/05/15
0
0
面试常考的常用数据结构与算法【简】

数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易。在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考察一个人...

anlve
2018/05/01
92
0
左程云著算法与数据结构题目最优解笔记-链表

#链表 链表是面试时被提及最频繁的数据结构。链表就是通过指针将一个个节点连接起来。链表是非连续的动态内存空间,链表的查找比数组慢,但是添加和删除比数组快。 ###链表声明 public class...

hiyoung
2018/09/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
1K
16
oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
3
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
2
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部