当前位置: 首页 > java >正文

自学嵌入式第二十六天:数据结构-哈希表、内核链表

一、哈希表

        1.提供一种可以存储和查找的数据结构,为了提高查找的速度而生;时间复杂度是(O(1)-O(logn));

        2.对需要统计的数字直接定址;

        fun(key)=存储位置;key是要存储的数据;

        fun叫哈希函数,把key值转成存储的下标;

        key可以是数可以是其他数据;

        用于存储数据的空间一般是一段连续的存储空间;

        3.哈希函数(fun)设计的要求:计算尽量快捷方便,地址尽量均匀;

        对于数字一般是求余;

        冲突:fun(key1)==fun(key2)

                线性探测,+1,+2...

                二次探测,+1,-1,+2,-2....

                随机探测,rand()

二、快速排序

        取中间值,把小于中间值的数调到左边,大于中间值的数调到右边;

        连续递归;

三、内核链表

        1.在内核中链表结点仅有两个指针,且是双向循环链表;

        2.数据域和指针域分离;链表的功能扩展能力变强

        3.container_of(tmp,per,node)

        使用container_of带参宏可以得到指向数据的指针;

        4.list_for_each_entry_safe(pos,n,head,member)

        遍历

        pos:当前要访问的数据的结构体指针,n是pos的下一个,head是链表的头结点,member是自定义的结构体中结点的变量名;

        5.head头结点不包含有效元素,head->next是链表中第一个有效数据;

        

        

http://www.xdnf.cn/news/18619.html

相关文章:

  • 从0开始学习Java+AI知识点总结-23.web实战案例(班级和学生增删改查、信息统计)
  • 【Prometheus】Prometheus监控Docker实战
  • C++编程语言:标准库:第36章——字符串类(Bjarne Stroustrup)
  • 【C语言16天强化训练】从基础入门到进阶:Day 8
  • Krea Video:Krea AI推出的AI视频生成工具
  • 知识蒸馏 Knowledge Distillation 序列的联合概率 分解成 基于历史的条件概率的连乘序列
  • 大模型——深度评测智能体平台Coze Studio
  • 2025-08-23 李沐深度学习19——长短期记忆网络LSTM
  • Kafka Streams vs Apache Flink vs Apache Storm: 实时流处理方案对比与选型建议
  • SpringBootWeb入门
  • Ollama 本地部署 Qwen2.5-7b
  • 搜索--常见面试问题
  • Android 之wifi连接流程
  • 使用 LangChain 和 Neo4j 构建知识图谱
  • 一文学会vue的动态权限控制
  • 00后AI创业者崛起与AI商业应用新玩法:从Mercor到历史人物复刻的机遇
  • 【剖析高并发秒杀】从流量削峰到数据一致性的架构演进与实践
  • MySQL GPG 密钥更新问题解决文档
  • Kubernetes网络服务全解析
  • Linux netfilter工作原理详解
  • Mac简单测试硬盘读写速度
  • 暴雨环境漏检率下降78%!陌讯动态融合算法在道路积水识别的工程突破
  • LeetCode 面试经典 150_数组/字符串_找出字符串中第一个匹配项的下标(23_28_C++_简单)(KMP 算法)
  • PyTorch 面试题及详细答案120题(71-85)-- 高级特性与工具
  • Base64 编码优化 Web 图片加载:异步响应式架构(Java 后端 + 前端全流程实现)
  • vue实现小程序oss分片上传
  • 合合信息acge模型获C-MTEB第一,文本向量化迎来新突破
  • 微前端架构核心要点对比
  • C++ 使用最新 MySQL Connector/C++(X DevAPI)+ CMake 完整教程
  • 力扣 30 天 JavaScript 挑战 第38天 (第九题)学习了 语句表达式的区别 高级函数 promise async await 节流