首页 > 其他分享 >12.10随笔

12.10随笔

时间:2024-12-10 23:12:53浏览次数:3  
标签:typedef ElementType int Key 12.10 Position 随笔 散列

这里是12.10随笔。
题目留档:实现线性探测法的查找函数。

函数接口定义:
Position Find( HashTable H, ElementType Key );
其中HashTable是开放地址散列表,定义如下:

define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */

typedef int ElementType; /* 关键词类型用整型 /
typedef int Index; /
散列地址类型 /
typedef Index Position; /
数据所在位置与散列地址是同一类型 /
/
散列单元状态类型,分别对应:有合法元素、空单元、有已删除元素 */
typedef enum { Legitimate, Empty, Deleted } EntryType;

typedef struct HashEntry Cell; /* 散列表单元类型 /
struct HashEntry{
ElementType Data; /
存放元素 /
EntryType Info; /
单元状态 */
};

typedef struct TblNode HashTable; / 散列表类型 /
struct TblNode { /
散列表结点定义 /
int TableSize; /
表的最大长度 */
Cell Cells; / 存放散列单元数据的数组 */
};
函数Find应根据裁判定义的散列函数Hash( Key, H->TableSize )从散列表H中查到Key的位置并返回。如果Key不存在,则返回线性探测法找到的第一个空单元的位置;若没有空单元,则返回ERROR。

裁判测试程序样例:

include <stdio.h>

define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */

typedef int ElementType; /* 关键词类型用整型 /
typedef int Index; /
散列地址类型 /
typedef Index Position; /
数据所在位置与散列地址是同一类型 /
/
散列单元状态类型,分别对应:有合法元素、空单元、有已删除元素 */
typedef enum { Legitimate, Empty, Deleted } EntryType;

typedef struct HashEntry Cell; /* 散列表单元类型 /
struct HashEntry{
ElementType Data; /
存放元素 /
EntryType Info; /
单元状态 */
};

typedef struct TblNode HashTable; / 散列表类型 /
struct TblNode { /
散列表结点定义 /
int TableSize; /
表的最大长度 */
Cell Cells; / 存放散列单元数据的数组 */
};

HashTable BuildTable(); /* 裁判实现,细节不表 */
Position Hash( ElementType Key, int TableSize )
{
return (Key % TableSize);
}

define ERROR -1

Position Find( HashTable H, ElementType Key );

int main()
{
HashTable H;
ElementType Key;
Position P;

H = BuildTable(); 
scanf("%d", &Key);
P = Find(H, Key);
if (P==ERROR)
    printf("ERROR: %d is not found and the table is full.\n", Key);
else if (H->Cells[P].Info == Legitimate)
    printf("%d is at position %d.\n", Key, P);
else
    printf("%d is not found.  Position %d is returned.\n", Key, P);

return 0;

}

/* 你的代码将被嵌在这里 */
代码留档:Position Find(HashTable H,ElementType Key){
Position pos=Hash(Key,H->TableSize);
int flag=0;
while (H->Cells[pos].Info!=Empty&&H->Cells[pos].Data!=Key){
flag++;
if(flag==MAXTABLESIZE){
return ERROR;
}
pos=(pos+1)%H->TableSize;
}
return pos;
}

标签:typedef,ElementType,int,Key,12.10,Position,随笔,散列
From: https://www.cnblogs.com/Thanatos-syst/p/18598190

相关文章

  • 【Python】【练习】24.12.10
    一、题目描述二、题目解答importrandomdefredEnv(k,rest):m=random.random()*restreturnmtotal=float(input("请输入红包金额:"))num=int(input("请输入红包个数:"))remain=totalforiinrange(num-1):money=redEnv(i,remain......
  • Diary - 2024.12.10
    AtcoderARC189EStraightPath。怎么都觉得很简单,我是不是废了???只是记录一下可能比较合理的思考过程。首先发现的是\(n=2,3\)必定无解。然后手玩一下\(n=4\),能找到一个\(\max=3\)的构造。于是大胆猜测下界就是\(3\)。对应构造:横的为\(1\),竖的为\(2\),对角线......
  • 12.10 CW 模拟赛 赛时记录
    前言最近发现只要每分钟都在做有意义的事就不算颓,同理的,这场考试只要每分钟都在想些事情,也就不算短期的主要目标就是利用好时间,其他的问题我基本上已经解决了,就是时间分配利用上的问题所以就只抓时间分配,这段时间先不去想别的,就好好把时间利用起来,不死磕,不畏......
  • 数学随笔
    扩展欧几里得:令\(c=\gcd(a,b)\),则:\[ax_0+by_0=c\]考虑求出一个\(x_1,y_1\)满足:\[bx_1+(a\bmodb)y_1=c\]若\(x_1,y_1,a,b\)已知,我们如何找到\(x,y\)的一组解?\[\begin{aligned}LHS&=bx_1+(a\bmodb)y_1\\&=bx_1+(a-b\lfloor......
  • 2024.12.10讲座
    总体概览主题:嵌入式领域#非阻塞式编程属性:经验分享、进阶教程##之前单片机赛道的同学,学的大部分知识都是对于外设怎么操作、通信协议如何使用。这一讲的内容将让我们的主程序逻辑更加清晰、代码运行更加流畅功能:让程序更高效、清晰、严谨内容阻塞?阻塞,执行某段程序时,CPU......
  • 12.9随笔
    这里是12.9随笔。代码留档:#include<stdio.h>include<stdlib.h>defineMAX1024typedefstructHash_{intHashList[MAX];intLength;}Hash,*PHash;intmain(){intn,p;scanf("%d%d",&n,&p);PHashNewHash=(Hash)calloc(1,sizeof(Has......
  • QT 6.8.0 QML 随笔 调用C++类
    1、开发环境QtCreator、QT6.8.0、CMake。2、添加新文件。3、 在头文件中定义一个intAdd(inta,intb);方法publicslots:intAdd(inta,intb);4、类文件.cpp中实现方法。#include"MyApp.h"#include<QDebug>intMyApp::Add(inta,intb){qDebug()<<a+......
  • 【Python小随笔】使用加密方式进行QQ邮件发送
    #提示defsmtpSend(mail_msg):Q="你的QQ号"#邮箱服务器及认证信息mail_host="smtp.qq.com"mail_user=f"{Q}@qq.com"mail_pass="邮箱秘钥"#发件人和收件人sender=f"{Q}@qq.com"recipients=[f......
  • 12.6随笔
    这里是12.6随笔英语作文留档:Procrastinationisacommonyetharmfulhabit.Itstealthilycreepsintoourlivesandbeginstodisruptournormalroutines.Itcausesproblemslikepilinguptasks.Aswedelay,workaccumulates,leadingtolast-minuterushes.......
  • MOS管随笔
    参考:https://www.eet-china.com/mp/a37555.html参考:https://ee.ofweek.com/2018-12/ART-8900-2801-30291388.htmlS级/源级/SourceG级/栅极/GridD级/漏级/DropNMOSPMOS对比NMOS靠近GND,PMOS靠近VCC测量二极管的类型万用表调节至二极管档红表笔接D,黑表笔接S,如低于0.7V,则......