嵌入式自学第十二天
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;
}