嵌入式LinuxC语言基础ARMLinux内核常见数据结构.pptVIP

嵌入式LinuxC语言基础ARMLinux内核常见数据结构.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式LinuxC语言基础ARMLinux内核常见数据结构

第8章 嵌入式Linux C语言基础——ARM Linux内核常见数据结构 本章目标 链表的基本概念 链表的基本操作方法 ARM Linux中如何使用链表 二叉树的基本概念 树的遍历方法 森林的基本概念 森林的遍历方法 平衡树的基本概念 ARM Linux中如何实现红黑树 哈希表的概念 哈希表的操作方法 ARM Linux中如何使用哈希表 链表 链表是一种常见的重要数据结构,它可以动态地进行存储分配,根据需要开辟内存单元,还可以方便地实现数据的增加和删除。链表中的每个元素都由两部分组成:数据域和指针域。 单链表的组织与存储 单向链表的每个节点中除信息域以外还有一个指针域,用来指向其后续节点,其最后一个节点的指针域为空(NULL)。 单链表常见操作 节点初始化 测试数据是否存在 链表的插入与删除 将几个单链表合并 双向链表的组织与存储 双向链表与单向链表不同,它的每个节点中包括两个指针域,分别指向该节点的前一个节点和后一个节点 双向链表的常见操作 增加节点 删除节点 循环链表 循环链表的组织结构与单链表非常相似,因此其操作与单链表也是一致的,惟一的差别仅在于在单链表中,算法判端到达链表尾的条件是p→next是否为空,而在双链表中,则是判断p→next是否等于头指针 ARM Linux中链表使用实例 ARM Linux内核链表 Linux内核链表接口 声明和初始化 插入 删除 树 树是n(n≥0)个节点的有限集合。若n=0,则称为空树;否则,有且仅有一个特定的节点被称为根,当n1时,其余节点被分成m(m0)个互不相交的子集T1、T2、...、Tm,每个子集又是一棵树 二叉树 二叉树是另一种树型结构,它是节点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。 它的特点是每个节点至多只有两棵子树(即二叉树中不存在度大于2的节点),并且,二叉树的子树有左右之分,其次序不能任意颠倒。 二叉树的顺序存储 顺序存储结构 链式存储结构 二叉树的链式存储 typedef struct BTNode{ EntryType item; struct BTNode *lchild,*rchlid; }BTNode,*BTree; 二叉树的常见操作 遍历二叉树 统计二叉树中的叶子节点 统计二叉树中的高度 平衡树 二叉树是一种非平衡树,各个子树之间的高度可能相差很大,这样就会造成平均性能的下降。 平衡树包括很多种类,常见的有B树、AVL树、红黑树等 红黑树是指满足下列条件的二叉搜索树。 ? 性质1:每个节点要么是红色,要么是黑色(后面将说明)。 ? 性质2:所有的叶节点都是空节点,并且是黑色的。 ? 性质3:如果一个节点是红色的,那么它的两个子节点都是黑色的。 ? 性质4:节点到其子孙节点的每条简单路径都包含相同数目的黑色节点。 ? 性质5:根节点永远是黑色的。 红黑树插入节点的过程如下。 ? 在树中搜索插入点。 ? 新节点将替代某个已经存在的空节点,并且将拥有两个作为子节点的空节点。 ? 新节点标记为红色,其父节点的颜色根据红黑树的定义确定,如果需要,对树作调整。 哈希表的构造方法 构造哈希表实际上也就是构造哈希函数以确定关键值的存储位置,并能尽可能地减少哈希冲突的个数。 直接定址法 数字分析法 折叠法 除留余数法 随机数法 哈希表的处理冲突方法 开放定址法 再哈希法 链地址法 建立一个公共溢出区 嵌入式Linux C编程入门(第2版) (By Farsight) /

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档