{
linklist *p=head
int i=0,j=0
while(p!=NULL)
{
if(p->data==ch)
{
a[j++]=i
a=(int*)relloc(a,(j+1)*sizeof(int))
}
i++
p=p->next
}
return j
}
这个函数,返回值是找到的位置的个数,数组a存放的位置的索引。
调用的时候:
int *a
linklist *head
//链表初始化
char ch
//ch初始化
int n=get1(head,ch,a)
if(n!=0)
{
printf("找到了,在")
for(int i=0i<ni++)
printf("%2d",a[i])
printf("位置\n")
}
else
printf("没有找到\n")
hoho,其实很简单啊,你一看就懂了,下面注释加代码^_______^。 struct node{int datanode *next}*head//定义表头指针。 *node Search(int key) //按关键字key返回所在指针的搜索函数Search{node *p=head //初始化循环指针while (p->data!=key &&p!=NULL) p=p->next //当找不到关键字或者指针不为空时,顺序查找。return p //最后返回指针p,如果不存在的话,就会返回NULL(因为上面的循环不变式的结束条件)} ok,明白否?^____^欢迎分享,转载请注明来源:内存溢出
评论列表(0条)