单链表的按位查找和按值查找

简介: 单链表的按位查找和按值查找的代码实现讲解

单链表的查找

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

网络异常,图片无法展示
|

按位查找

分析:按位查找一般考虑的是带头结点的。所以可以把带头结点当作是0结点,首先判断i是否小于0,先定义一个j是当前指向的是第几个结点,即最开始是指向第0个结点。然后通过循环可以找到第i个结点

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

按值查找

按值查找,找到数据==e的结点

LNOde * GetElem(LinkList L,ELemType e){
    LNode *p=L->next;
    while(P!=Null && p->data != e)
        p=p->next;
    return p;
}

求表的长度

分析:想要求一个单链表的长度,可以通过头指针p一直指向它的下一个结点,并且记录指向下一个结点的次数,当下一个结点为Null的时候结束循环,这时候累加次数即单链表的长度

int Length(LinkList L){
    int len = 0;  //统计表长
    while(p->next != Null){
        p = p->next;
        len++;
    }
    retrun len;
}

总结

通过链表的插入,删除,查找的了解,我们可以发现代码的频繁。在插入和删除中我们每次都用到了查找这个功能,所以我们考虑可以将查找这段代码进行封装,从而达到代码的复用性。

目录
相关文章
|
2月前
|
Java 索引
|
2月前
数组元素同时查找插入
数组元素同时查找插入
25 0
|
7月前
双链表的插入,删除以及遍历
双链表的插入,删除以及遍历
52 6
|
7月前
|
人工智能
数组排序,查找
数组排序,查找
|
存储 C++
链表操作:插入、删除与遍历
(笔者画图不易呜呜)链表是一种基本的数据结构,它可以用来存储一系列的元素,并且支持灵活的插入、删除操作。在计算机科学中,链表常常用于构建更复杂的数据结构,如栈、队列以及图等。
353 0
|
存储 C语言 C++
顺序表的插入、删除和查找(四)
详细介绍了数据结构中的顺序表
263 0
|
Java
Java数组、排序和查找
Java数组、排序和查找
84 0
|
存储 算法
查找-之有序表查找
待查找的表是有序排列的
103 0
查找-之有序表查找

热门文章

最新文章