博客
关于我
数据结构之单链表的查找(带头节点)
阅读量:104 次
发布时间:2019-02-26

本文共 950 字,大约阅读时间需要 3 分钟。

按位查找(平均时间复杂度为O(n))

按位查找是一种常见的链表操作方法,用于根据元素的位置索引快速获取特定节点。该操作的平均时间复杂度为O(n),这意味着在最坏情况下需要遍历整个链表才能找到目标节点。

以下是实现按位查找的函数示例:

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

这个函数接受链表头节点和目标节点的索引位置i作为输入。通过逐个遍历链表,直到找到目标节点或遍历完链表,函数返回目标节点或NULL(表示索引超出链表长度)。

按值查找(平均时间复杂度为O(n))

按值查找是根据节点的数据值来查找特定节点的操作。这种方法适用于链表中存在多个相同值节点的情况,返回第一个匹配的节点。

以下是实现按值查找的函数示例:

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

该函数接受链表头节点和要查找的数据值e作为输入,返回第一个匹配数据值的节点。如果链表中无匹配节点,则返回NULL。

求表的长度

为了获取链表的长度,可以通过遍历链表并统计节点数来实现。以下是实现求表长度的函数示例:

int length(LinkList L) {    int len = 0;    LNode *p = L;    while (p != NULL && p->next != NULL) {        p = p->next;        len++;    }    return len;}

这个函数遍历链表,直到遇到最后一个节点(即最后一个节点的next属性为NULL)为止。返回遍历过程中统计的节点总数,即链表的长度。

转载地址:http://izyk.baihongyu.com/

你可能感兴趣的文章
nyoj58 最少步数
查看>>
N皇后问题
查看>>
N皇后问题
查看>>
OAuth 2.0 MAC Tokens
查看>>
OAuth 及 移动端鉴权调研
查看>>
OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
查看>>
OAuth2 Provider 项目常见问题解决方案
查看>>
OAuth2 vs JWT,到底怎么选?
查看>>
Vue.js 学习总结(14)—— Vue3 为什么推荐使用 ref 而不是 reactive
查看>>
oauth2-shiro 添加 redis 实现版本
查看>>
OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
查看>>
OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
查看>>
OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
查看>>
OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
查看>>
OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
查看>>
OAuth2.0_授权服务配置_三项内容_Spring Security OAuth2.0认证授权---springcloud工作笔记141
查看>>
OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
查看>>
OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
查看>>
OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
查看>>
OAuth2.0_授权服务配置_授权码模式_Spring Security OAuth2.0认证授权---springcloud工作笔记144
查看>>