哈希表+堆的补充

堆的补充:

head_swap(int a,int b)

{

swap(hp[ ph[a] ],hp[ ph[a] ])   //交换两个数的下标

//ph以插入顺序(因为会排序)找元素    //hp以元素找下标

swap(ph[a],ph[b]); //交换两个元素的查询-->通过元素下标找元素的查询

swap(h[a],h[b]);   //交换数

}

哈希表:

//拉链法:

#include<iostream>

using namespace std;

const int N=100003;

int h[N],en[N],e[N],dix;

int insert(int x)

{

int k=(x%n+n)%n   //保证k不为负数;

e[dix]=x;      ne[idx]=h[k];      h[k]=dix++;

}

bool find(int x)

{

int k=(x%n+n)%n;

for(int i=h[k] ; i!=-1 ;e[ i ]=en[ h[k] ])     { if(i==x); }return true;

else return false;

}

//开放寻址法

h[N];null=超出数据范围数字;

int find(int x)

{

int k = (x%n+n)%n;

while(h[k]!=x&&h[k]!=null) k++,if(k==N)k=0;

return k;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值