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

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

单链表的查找

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

总结

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

目录
相关文章
|
存储 监控 固态存储
硬盘对碎片整理的需求
【10月更文挑战第1天】硬盘对碎片整理的需求
278 4
|
编译器 C语言 C++
【C语言】malloc()函数详解(动态内存开辟函数)
【C语言】malloc()函数详解(动态内存开辟函数)
2842 2
|
11月前
|
存储 算法 C语言
【C语言】深入浅出:C语言链表的全面解析
链表是一种重要的基础数据结构,适用于频繁的插入和删除操作。通过本篇详细讲解了单链表、双向链表和循环链表的概念和实现,以及各类常用操作的示例代码。掌握链表的使用对于理解更复杂的数据结构和算法具有重要意义。
3285 6
|
存储 算法 C语言
数据结构基础详解(C语言):单链表_定义_初始化_插入_删除_查找_建立操作_纯c语言代码注释讲解
本文详细介绍了单链表的理论知识,涵盖单链表的定义、优点与缺点,并通过示例代码讲解了单链表的初始化、插入、删除、查找等核心操作。文中还具体分析了按位序插入、指定节点前后插入、按位序删除及按值查找等算法实现,并提供了尾插法和头插法建立单链表的方法,帮助读者深入理解单链表的基本原理与应用技巧。
2180 6
|
8月前
|
SQL 监控 数据库
如何解决 SQL Server 占用内存过多问题
SQL Server 占用过多内存会导致响应缓慢和查询性能低下。解决流程包括:1) 查看内存使用情况,2) 分析各数据库内存占用,3) 优化 SQL Server 配置(如限制最大内存),4) 优化查询(如创建索引),5) 持续监控效果。通过这些步骤可有效控制内存占用,提升系统性能。
995 0
|
监控 安全 网络虚拟化
|
存储 Java 索引
【数据结构】链表从实现到应用,保姆级攻略
本文详细介绍了链表这一重要数据结构。链表与数组不同,其元素在内存中非连续分布,通过指针连接。Java中链表常用于需动态添加或删除元素的场景。文章首先解释了单向链表的基本概念,包括节点定义及各种操作如插入、删除等的实现方法。随后介绍了双向链表,说明了其拥有前后两个指针的特点,并展示了相关操作的代码实现。最后,对比了ArrayList与LinkedList的不同之处,包括它们底层实现、时间复杂度以及适用场景等方面。
283 10
【数据结构】链表从实现到应用,保姆级攻略
|
负载均衡 安全 应用服务中间件
nginx的强大功能和如何使用?
nginx的强大功能和如何使用?
674 2
|
vr&ar Android开发 数据安全/隐私保护
探索移动操作系统的演进:从Android到iOS的技术革新
在移动操作系统的演进过程中,Android和iOS这两大平台凭借其独特的技术优势和丰富的生态系统,成为了全球智能手机市场的主导者。本文深入探讨了它们的发展历程及各自的技术特点。
256 0
在Win10中、如何把常用的应用添加到高效工作窗口呢?
这篇文章提供了两种方法来在Windows 10系统中将常用应用程序添加到高效工作窗口,包括通过开始菜单固定应用和直接从软件安装位置创建快捷方式,并介绍了如何调整图标大小和位置。
在Win10中、如何把常用的应用添加到高效工作窗口呢?