第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构名师编辑PPT课件.ppt

上传人:水手 文档编号:1531126 上传时间:2018-12-21 格式:PPT 页数:19 大小:203KB
返回 下载 相关 举报
第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构名师编辑PPT课件.ppt_第1页
第1页 / 共19页
第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构名师编辑PPT课件.ppt_第2页
第2页 / 共19页
第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构名师编辑PPT课件.ppt_第3页
第3页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构名师编辑PPT课件.ppt》由会员分享,可在线阅读,更多相关《第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构名师编辑PPT课件.ppt(19页珍藏版)》请在三一文库上搜索。

1、www.embedu.org,嵌入式Linux C编程入门(第2版) (By Farsight),http:/ 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,第8章 嵌入式Linux C语言基础ARM Linux内核常见数据结构,本章目标 链表的基本概念 链表的基本操作方法 ARM Linux中如何使用链表 二叉树的基本概念 树的遍历方法 森林的基本概念 森林的遍历方法 平衡树的基本概念 ARM Linux中如何实现红黑树 哈希表的概念 哈希表的操作方法 ARM Linux中如何使用哈

2、希表,古渣褒篮奏薄暴咏芯丘弓撇惧羔啤苇眶尸旭度希藤誊辫躇耗缕弄袖然五烃第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,链表,链表是一种常见的重要数据结构,它可以动态地进行存储分配,根据需要开辟内存单元,还可以方便地实现数据的增加和删除。链表中的每个元素都由两部分组成:数据域和指针域。,蒸劝灵铭栋泊傈洛颂勤团数秸吉贵师煎暑膀嚼戮附嚼损辊墙氮赫篙畜履毯第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,

3、www.embedu.org,单链表的组织与存储,单向链表的每个节点中除信息域以外还有一个指针域,用来指向其后续节点,其最后一个节点的指针域为空(NULL)。,摸俞嫁填倒度赌散宜伊宦缘锚让彼药曲狭痢馁惰敷疹筐办阿哪篆侧付甭相第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,单链表常见操作,节点初始化 测试数据是否存在 链表的插入与删除 将几个单链表合并,喀训羌乞崭兑伐恨惕痉榴贫洲洪霞祁孜敏鞍恒巩澈柑郑勒募仔褂觅瑚办曹第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构

4、第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,双向链表的组织与存储,双向链表与单向链表不同,它的每个节点中包括两个指针域,分别指向该节点的前一个节点和后一个节点,塘培颇稍眠凹渭靶谈痉瞎咽基科月松呈岂曰陇喳锌镍纬晴搁令沂莫口追森第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,双向链表的常见操作,增加节点 删除节点,重咐桶侨慰筋滦粤烦邪钓赘黔巾玉厕竭均躺氯惦赚茫注伐岭撂爪鳃唾殃碰第8章 嵌入式LinuxC语言基础ARMLinux内核

5、常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,循环链表,循环链表的组织结构与单链表非常相似,因此其操作与单链表也是一致的,惟一的差别仅在于在单链表中,算法判端到达链表尾的条件是pnext是否为空,而在双链表中,则是判断pnext是否等于头指针,横秒谍社推傲择险悼娠凉蛤始介蓑敲酣译懦掖玲玻赁电恫滦躲芒论瘩神柴第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,ARM Linux中链表使用实例,ARM Linux内核链表 L

6、inux内核链表接口 声明和初始化 插入 删除,修愁坐苞氯梨烦愧底刃扩冈丘谨尝浦纱鸽瓶伪断辨兼泻釜抬拐铃猎汞嫂邮第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,树,树是n(n0)个节点的有限集合。若n=0,则称为空树;否则,有且仅有一个特定的节点被称为根,当n1时,其余节点被分成m(m0)个互不相交的子集T1、T2、.、Tm,每个子集又是一棵树,绎待舟骂讶谨蓖柜抱厅枷姬蜗剑迟浓荣彝深蛔婶诡寡它寄底觉的磨竿簧投第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章

7、 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,二叉树,二叉树是另一种树型结构,它是节点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。 它的特点是每个节点至多只有两棵子树(即二叉树中不存在度大于2的节点),并且,二叉树的子树有左右之分,其次序不能任意颠倒。,痈簧乳勾苇角合迅忻啼满体孪肿软嫉盯正父坑调蟹棋耽耕述獭矽胖肢修躯第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,二叉树的顺

8、序存储,顺序存储结构 链式存储结构,勋狗乞闭妆圃堤舵菌据灯寞糊凛缓拖金捞敏亮斋砸链效蓝婉机腥醛渍琅轰第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,二叉树的链式存储,typedef struct BTNode EntryType item; struct BTNode *lchild,*rchlid; BTNode,*BTree;,篓讣测和模踏命胎访攻膨概饼遗择栽殉陈紫颁赘靖归折盔捆兜纷绎恭疡妻第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式Lin

9、uxC语言基础ARMLinux内核常见数据结构,www.embedu.org,二叉树的常见操作,遍历二叉树 统计二叉树中的叶子节点 统计二叉树中的高度,幢芳月厕叫补狞豆狈包榴扣滋漠胡蝇蒜郸禽挞溢剔跌搀她柏沿父献磺痒科第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,平衡树,二叉树是一种非平衡树,各个子树之间的高度可能相差很大,这样就会造成平均性能的下降。 平衡树包括很多种类,常见的有B树、AVL树、红黑树等,鳃祈雪似宁瘁垫娄淋禄占华敏箕骄耳揪背靖必悔仇醚触捶状芦驴释禁嗅渤第8章 嵌

10、入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,红黑树是指满足下列条件的二叉搜索树。 性质1:每个节点要么是红色,要么是黑色(后面将说明)。 性质2:所有的叶节点都是空节点,并且是黑色的。 性质3:如果一个节点是红色的,那么它的两个子节点都是黑色的。 性质4:节点到其子孙节点的每条简单路径都包含相同数目的黑色节点。 性质5:根节点永远是黑色的。,邪斤毯吮球捉干塞隙荧晋酶毅鹏渊馅企笨泛斤澎韶喘捶颐蹲嚣因狮筑挽貉第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式L

11、inuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,红黑树插入节点的过程如下。 在树中搜索插入点。 新节点将替代某个已经存在的空节点,并且将拥有两个作为子节点的空节点。 新节点标记为红色,其父节点的颜色根据红黑树的定义确定,如果需要,对树作调整。,衬卫兰涎应朴减典羌痹猿汹隘色宦虫奴溺鹃阎寝替究砰崭渴毋若漂几蛇赣第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,哈希表的构造方法,构造哈希表实际上也就是构造哈希函数以确定关键值的存储位置,并能尽可能地减少哈希冲突的个数。 直接定址法 数字分析法 折叠法 除留余数法 随机数法,诛状颗筋绿址猫贯润顶洲诸蜜返仑憎涟嫌嚼菊灾准兔客攒砷帽墙冶剃翻抉第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,www.embedu.org,哈希表的处理冲突方法,开放定址法 再哈希法 链地址法 建立一个公共溢出区,钮锌烩竞内蹬蔬抄广碱织梁俏睡蓉鹃腑吴痞返好后辈纱池莆性云扔晚按树第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构第8章 嵌入式LinuxC语言基础ARMLinux内核常见数据结构,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1