C语言 单链表 查找一个元素出现的所有位置

C语言 单链表 查找一个元素出现的所有位置,第1张

int get1(linklist *head,int ch,int *a)

{

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,明白否?^____^


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12016018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存