- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE65 / NUMPAGES65
一、数据结构与算法基础
1.1 线性表
1、顺序表
2、链表
单链表: 每个节点2个域,数据域、指针域。
循环链表:
双链表:每个节点3个域,数据域、2个指针域。
单链表:包括,数据域和指针域,最后一个指针域为空。只能向单一方向移动。
循环链表:包括,数据域和指针域,最后一个指针域为头节点。
双链表:包括数据域和前后两指针域,可以向2个方向移动。
4、链表的操作:删除、插入
单链表删除:,a1的指针域指向a3(即要删的节点前驱指向要删节点的后续),a2的节点资源释放。
单链表插入:,s的next指向p的next(要插节点指向后继节点),p的next指向s(要插节点的前驱节点指向该节点)。
双链表删除:,
双链表插入:
5、顺序表与链表的比较
性能类别具体项目顺序存储链式存储空间性能存储密度=1,更优1容量分配事先确定动态改变,更优时间性能查找运算O(n/2)O(n/2)读运算O(1),更优(根据地址偏移量直接定位)O([n-1]/2),最好情况为1,最坏情况为n(依次查找)插入运算O(n/2),最好情况为0,最坏情况为n(需要处理后续元素)O(1),更优删除运算O([n-1]/2) (需要处理后续元素)O(1),更优6、栈,先进后出
既可以链表表示也,也可用顺序结构来实现,顺序即为数组。
7、队列,先进先出
顺序队列、循环队列。队尾不存放元素,所以要注意队尾元素的位置是什么,是实际位置(本身)还是下一个元素。
1.2 树和二叉树
1、树的基本概念
节点的度:与下一层的几个节点相关联,度就为几。比如:节点1的度为3。
树的度:所有节点度数最高的值为树的度。比如:树的度为3。
叶子节点:度为0的节点,即没有子节点的节点。
分支节点:除了叶子节点,其他节点都为分支节点,根节点也是分支节点。
内部节点:除了根节点和叶子节点,其他节点都为分支节点。
父节点、子节点、兄弟节点:相对的节点之间的关系。
层次:
计算:节点总个数=所有节点度的总和+1。(3+3+1+2)+1=10
2、树的遍历
前序遍历:先根,然后递归遍历其所有子节点。1,2,5,6,7,3,4,8,9,10
后序遍历:先子节点及兄弟,然后再父节点,最后根。5,6,7,2,3,9,10,8,4,1
层次遍历:按层次,从左到右访问。1,2,3,4,5,6,7,8,9,10
3、二叉树
完成二叉树:除最低层外其他为满二叉树,而且底层页必须从左至右。
非完全二叉树:不满足上面2个条件。
二叉树的重要特性:
A、在二叉树的第i层上最多有2i-1个节点(i=1);
B、深度为k的二叉树最多有2k-1个节点(k=1);
C、对任何一棵二叉树,如果其叶子节点数为n0,度为2的节点数为n2,则n0=n2+1;
D、如果对一棵有n个节点的完全二叉树的节点按层序编号(从第1层到?log2n?+1层,每层从左到右),则对任一节点i(1=i=n),有:
如果i=1,则节点i无父节点,是二叉树的根;如果i1,则父节点是?i/2?;
如果2in,则节点i为叶子节点,无左子节点;否则,其左子节点是节点2i;
如果2i+1n,则节点i无右子节点,否则,其右子节点是节点2i+1。
计算:完全二叉树,度为1的节点,要么有一个,要么没有,否则不是完全二叉树。
(向上取整?3.9?=4,向下取整?3.9?=3)
4、二叉树的遍历
前序遍历:1,2,4,5,7,8,3,6,先根,后左全部,再右全部。
中序遍历:4,2,7,8,5,1,3,6,先左,再自己的中,再右。
后序遍历:4,8,7,5,2,6,3,1,先左,后右,然后再根。
层次遍历:1,2,3,4,5,6,7,8。
5、树与二叉树的转换
所有的孩子节点都为该节点的左子节点,所有的兄弟节点为该节点的右子节点。
二叉树,前序遍历==树,前序遍历。
二叉树,中序遍历==树,后序遍历。
6、查找二叉树(二叉排序树)
查找二叉树,又称二叉排序树(Binary Sort Tree)。一棵查找二叉树,或者为一棵空树,或者满足以下递归条件:
查找树的左、右子树各是一棵查找树。
若查找树的左子树非空,则其左子树上的各节点值均小于根节点的值。
若查找树的右子树非空,则其右子树上的各节点值均大于根节点的值。
7、二叉树的操作
查找:先找根,当前值与查找值比较,小找左子树,大找右子树。
插入节点:
如果有相同键值的节点已在查找二叉树中,则不再插入;
如果查找二叉树为空树,则以新节点为查找二叉树;
将要插入节点的键值与插入后的父节点的键值比较,就能确定新节点是
您可能关注的文档
- 2015年广西三类人员B证继续教育网络学习及(130分)选读.docx
- 2015年国内中药材市场回顾与展望选读.docx
- 2015年季度评估、交付评估调整事宜选读.pptx
- 2015年绩效述职--王宗琪20151207(电气工程师)选读.pptx
- 2_有关包装标准-a选读.ppt
- 2015年监理工程师(市政公用工程)继续教育考77分选读.docx
- 2015年江苏省信用知识竞赛题及选读.docx
- 2015年江幼测试二含选读.docx
- 2015年经济师《中级经济基础》模拟02选读.docx
- 鼻周微络刺血治疗鼻炎选读.docx
- 2025届福建省长汀一中等六校高三第二次月考试卷含解析.doc
- 2025届广东省东莞市六校高三第二学期期终教学质量监控测试语文试题含解析.doc
- 2025届广东省佛山市南海区石门中学高考模拟最后十套:语文试题(五)考前提分仿真卷含解析.doc
- 2025届福建闽侯第四中学高三下学期学习能力诊断(一模)语文试题含解析.doc
- 2025届北京三中高三下学期4月月考试题含解析.doc
- 2025届广东第二师范学院番禺附中高三下学期升级统测语文试题含解析.doc
- 2025届广东省北京师范大学东莞石竹附属学校高三(下)第2次月考语文试题含解析.doc
- 2025届安徽省铜陵市枞阳县枞阳县浮山中学高三语文试题二模冲刺试题(九)含解析.doc
- 2025届甘肃肃兰州市第五十一中学高三下学期高考仿真模拟语文试题试卷含解析.doc
- 2025届甘肃省临洮县二中高三下期第二次模拟考试语文试题理试题含解析.doc
文档评论(0)