数据结构–单链表的查找

均以带头结点链表为例

目标:

GetElem(Li):按位查找操作。获取表L中第i个位置的元素的值。
LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。

按位查找

按位查找,返回第i 个元素(带头结点)

代码实现

typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode, *LinkList;


LNode* GetElem(LinkList L, int i)
{
    if (i < 0)  return NULL;
    LNode* p = L;
    int j = 0;
    while (L != NULL && j < i)
        p = p->next, j++;
    return p;
}

时间复杂度:O(n)

按值查找

代码实现

typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode, *LinkList;


LNode* LocateElem(LinkList L, ElemType e)
{
    LNode* p = L;
    while (p != NULL && p->data != e)
        p = p->next;
    return p;
}

知识点回顾与重要考点

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐