【问题描述】
实现有头结点单链表查找算法:根据关键字值查找其在单链表中的位置(第一次出现的位置)。
【输入形式】
第一行输入整数n(n不大于1000),表示单链表长度;
第二行输入若干个整数(以非法整数或文件末尾作为结束),表示欲查找的关键字值;
【输出形式】
输出每个关键字值在单链表中的位置。若未找到,输出“no”。
【样例输入】
5
10 56 -34 -2 90
90
-100
34
56
e
【样例输出】
5
no
no
2
单链表的查找算法
链表的访问均从头指针开始,注意有头结点单链表和无头结点单链表访问的区别。
因为只需要顺着链表挨个比较,找到就返回位置,没找到就返回no;
所以直接看代码
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
LinkList initList();
int insertList(LinkList head, int pos, ElemType e);
int GetIndex(LinkList head, ElemType e);
//初始化
LinkList initList()
{
LNode* head;
head=(struct LNode*)malloc(sizeof