6-35 单链表查找元素*
typedef struct _NODE_
{
int data;
struct _NODE_ *next;
} NODE;
说明:data 为数据域。next 为指针域,指示后继结点。
请编写函数,在带附加头结点的单链表中查找数据元素。
函数原型
NODE* Find(NODE *head, int element);
说明:参数 head 为单链表的头指针,element 为数据元素。函数在 head 所指单链表中查找首个与 element 相同的数据元素。若查找成功,则函数值为首个匹配的数据元素结点的地址,否则为 NULL。
裁判程序
int main()
{
NODE *h, *p;
int x;
Create(&h);
Input(h);
scanf("%d", &x);
p = Find(h, x);
if (p)
{
printf("Found %d\n", p->data);
}
else
{
puts("Not found!");
}
Destroy(&h);
return 0;
}
说明:Create 函数用于创建链表,Destroy 函数用于销毁链表。Input 函数用于输入链表:首先输入结点数,然后输入这些数据元素。
输入样例1
4
25 36 49 64
49
输出样例1
Found 49
NODE* Find(NODE *head, int element)
{
NODE *p=head;
while(p!=NULL)
{
if(p->data==element)
{
return p;
}
p=p->next;
}
return NULL;
}