数据结构--单链表的查找

数据结构–单链表的查找

均以带头结点链表为例

目标:

数据结构--单链表的查找_第1张图片

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)

按值查找

数据结构--单链表的查找_第2张图片

代码实现

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;
}

知识点回顾与重要考点

数据结构--单链表的查找_第3张图片

你可能感兴趣的:(408数据结构,数据结构,算法,c++,c语言,链表)