//单链表查找操作,,,按序号查找和按值查找
//先尾插法建立一个空链表
#include<stdio.h>
#include<stdlib.h>
typedef int elem;
typedef struct Lnode {
elem *data;
struct Lnode *next;
}Lnode, *list;
list creat(list &L) //需要熟练
{
int x;
Lnode *s, *r = L;
L = (list)malloc(sizeof(Lnode));
L->next = NULL;
scanf("%d", &x);
while (x!=9999)
{
s = (list)malloc(sizeof(Lnode));
s->data = x;
r->next = s;
r = s;
scanf("%d", &x);
}
r->next = NULL;
return L;
}
//接下来按序号查找
void getelem(list L, int i)
{
int j = 1;
Lnode *p = L->next;
if (i==0)//第0个节点即为头节点
{
return L;
}
if (i<0)//小于0无效
{
return NULL;
}
while (p&&j < i)
{
p = p->next;
j++;
}
return p;//i大于表长时返回的是空值;
}
//按值查找结点
void getelem2(list L, elem e)
{
int i=1;
Lnode *p = L->next;
while (p=NULL&&p->data!=e)
{
p = p->next;
i++;
}
return p,i;
}