标题:关于链表的查找函数
取消只看楼主
livq
Rank: 2
来 自:hb
等 级:论坛游民
帖 子:14
专家分:30
注 册:2017-12-8
结帖率:50%
已结贴  问题点数:10 回复次数:1 
关于链表的查找函数
话不多说先上码
程序代码:
struct node * search(struct node *head , int num , int a)          //head是头,num是要找的数 , a用来做标记
{
    struct node *p , *q;
    q = (struct node *)malloc(sizeof(struct node));
    p = head;
    q->next = p;
    while(p)
    {
        if( p->data = num )
        {
            if( a == 0 )
            {
                return p;
            }
            else if( a == 1 )
            {
                printf("<<<<<<<<%d<<" , q->data);
                return q;
                printf(">>>>>>>>");
            }
            
        }
        else
        {
            p = p->next;
            q = q->next;
        }
    }
    // return NULL;
    while(q)
    {
        printf("\n%d\n" , q->data);
        q = q->next;
    }
}

是在查找的时候随便可以找他的前一个结点,之前写的时候实现了,后来不小心把代码删了,又写不出来来了,哎;
为什么返回q不行啊(但是后面的while循环可以输出q啊);
搜索更多相关主题的帖子: 查找 函数 struct node next 
2017-12-18 11:50
livq
Rank: 2
来 自:hb
等 级:论坛游民
帖 子:14
专家分:30
注 册:2017-12-8
得分:0 
回复 2楼 吹水佬
在删除结点的时候返回q(也就是要删除节点的前一个结点)实参a=1
在查找或者插入结点返回p(也就是当前结点)实参a=0
找不到返回空
2017-12-18 17:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483481-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.139765 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved