嵌入式数据结构(查找)(哈希表)

嵌入式自学第十二天

1、 在这里插入图片描述
2、代码实现

list.c

#define _CRT_SECURE_NO_WARNINGS
#include "list.h"
#include "stdlib.h"
#include "string.h" 
#include "stdio.h"
 
hsb* hsb_creat()
{
	hsb *p;
	if ((p=(hsb*)malloc(sizeof(hsb))) == NULL)
	{
		return NULL;
	}
	memset(p,0,sizeof(hsb));
	return p;
}
int hsb_inseart(hsb *q, int num)
{
	lb1 p,r;
	if ((p = (lb1)malloc(sizeof(lb))) == NULL)
	{
		return -1;
	}
	if (q == NULL)
	{
		return -1;
	}
	p->key = num;
	p->next = NULL;
	p->val = num % N;
	r = &q->a[num % N];
	while (r->next&&p->key>r->next->key) //
	{
		r = r->next;
	}
	p->next = r->next;
	r->next = p;
	return 0;
}
lb1 hsb_chazhao(hsb *q, int num)
{
	lb1 p;
	if (q == NULL)
		return NULL;
	p = &q->a[num % N];

	while (p->next != NULL&& p->next->key != num)
	{
		p = p->next;
	}
	if (p->next == NULL)
	{
		return NULL;
	}
	else
	{
		printf("found\n");
		return p->next;
	}

}

list.h

#ifndef __LIST_H
#define __LIST_H

#define N 15

typedef struct nod {
	int val;
	int key;
	struct nod* next;
}lb,*lb1;

typedef struct {
	lb a[N];
}hsb;

hsb* hsb_creat();
int hsb_inseart(hsb *q,int num);
lb1 hsb_chazhao(hsb *q,int num);

#endif

main.c

#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "list.h"
#include "stdlib.h"
#include "string.h" 

int main() 
{
	hsb* p;
	lb1 q;
	int k[11] = {23,34,14,38,46,16,68,15,7,31,26};
	int i;
	p = hsb_creat();
	for(i=0;i<11;i++)
		hsb_inseart(p,k[i]);
	q = hsb_chazhao(p, 24);
	if(q == NULL)
	{
		printf("no found\n");
	}
	else
	{
		printf("%d",q->key);
	}
	return 0; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式学习者。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值