1、查找
对单链表进行查找的思路为:对单链表的结点依次扫描,检测其数据域是否是我们
所要查好的值,若是返回该结点的指针,否则返回 NULL。
因为在单链表的链域中包含了后继结点的存储地址,所以当我们实现的时候,只要
知道该单链表的头指针,即可依次对每个结点的数据域进行检测。
以下是应用查找算法的一个例子:
#include <stdio.h>
#include <malloc.h>
#include <string.h
> /*包含一些字符串处理函数的头文件*/
#define N 10
typedef struct node
{
char name[20];
struct node *link;
}stud;
stud * creat(int n) /*建立链表的函数*/
{
stud *p,*h,*s;
int i;
if((h=(stud *)malloc(sizeof(stud)))==NULL)
{
printf("不能分配内存空间!");
exit(0);
}
h->name[0]='\0';
h->link=NULL;
p=h;
for(i=0;i<n;i++)
{
if((s= (stud *) malloc(sizeof(stud)))==NULL)
{
printf("不能分配内存空间!");
exit(0);
}
p->link=s;
printf("请输入第%d 个人的姓名",i+1);
scanf("%s",s->name);
s->link=NULL;