20162328 2017-2018-1 《程序设计与数据结构》第7周学习总结

教材学习内容总结

树是非线性结构,其元素组织为一个层次结构。
树的度表示树种任意节点的最大子节点数。
有m个元素的平衡n叉树的高度是logn^m.
树的遍历有4 种方法。
进行层次遍历时可用队列来储存树中的元素。
使用数组实现二叉树时,位于位置n的元素的左孩子在(2
n+1)的位置,其右孩子在(2*(n+1))的位置。
树的基于数组的储存链实现方法可以占据数组中的连续位置,不管树是不是完全树。
如何在一般二叉树中添加及删除元素,要取决于树的用途。
使用决策树可以设计专家系统。
二叉查找树是一棵二叉树,对于其中的每一个点,左子树上的元素的小于父结点的值,而右子树啥漫画的元素大于等于父结点的值。
最有效的二叉树查找树是平衡的,所以每次比较是可以排除一半的元素。
如果没有其他操作,二叉查找树的树形有元素的添加次序来决定 。
当从二叉查找树中删除元素时要考虑三种情形,其中的两种比较简单。
情形1 如果被删结点是叶节点,可以简单的删除。
情形2 如果被删结点有一个子节点,则用他的子节点替代他。
如果被删节点有两个子节点,再输的更低层找到一个合适的节点替代它。别删节点的子节点成为替代节点的子节点。
当从二叉查找树中删除有两个子结点的结点时,比较好的办法是用它的中序后继来取代它。
可以对二叉查找树进行旋转以恢复平衡。

教材学习中的问题和解决过程

在实现LinkedBinaryTree时不理解调用的Iterator类,产看了JDK还是不懂迭代器的概念

解决方法

使用ArrayList类来代替Iterator类

代码托管

20162328蔡文琛 大二week07的更多相关文章

  1. 20162328蔡文琛 大二 十二周课上测试 hash

  2. 20162328蔡文琛 大二week01

    教材学习内容总结 算法+程序机构=程序 渐进复杂度称为算法的阶. 算法分析是计算机科学的基础课题. 增长函数显示了与问题大小相关的时间或空间的利用率. 算法的阶由算法增长函数的主项决定. 算法的阶给出 ...

  3. 20162328蔡文琛 week09 大二

    20162328蔡文琛 大二week09 教材学习内容总结 堆是一棵完全二叉树,其中每个元素大于等于其所有子节点的值. 向堆中添加一个元素的方法是,首先将这个元素添加为叶节点然后将其向上移动到合适的位 ...

  4. 20162328蔡文琛 week05 大二

    20162328 2017-2018-1 <程序设计与数据结构>第5周学习总结 教材学习内容总结 集合是收集元素并组织其他对象的对象. 集合中的元素一般由加入集合的次序或元素之间的某些固有 ...

  5. 20162328蔡文琛 week11 大二

    20162328 2017-2018-1 <程序设计与数据结构>第十一周学习总结 教材学习内容总结 在无向图中,表示边的顶点对是无序的. 如果图中的两个顶点之间有边链接,则称它们是领接的. ...

  6. 20162328蔡文琛 week10 大二

    20162328 2017-2018-1 <程序设计与数据结构>第十周学习总结 教材学习内容总结 理解图与有向图.无向图 理解带权图 会应用带权图 理解图的广度优先遍历和深度优先遍历 掌握 ...

  7. 20162328蔡文琛 week06 大二

    20162328 2017-2018-1 <程序设计与数据结构>第6周学习总结 教材学习内容总结 队列元素按FIFO的方式处理----最先进入的元素最先离开. 队列是保存重复编码k值得一种 ...

  8. 20162328蔡文琛week07

    学号 2016-2017-2 <程序设计与数据结构>第X周学习总结 教材学习内容总结 多态引用在不同的时候可以指向不同类型的对象. 多态引用在运行时才将方法调用用于它的定义绑定在一起. 引 ...

  9. 20162328蔡文琛week04

    学号 20162328 <程序设计与数据结构>第4周学习总结 教材学习内容总结 本周学习了第四章和第七章,第四章中的内容已经有了初步定的掌握,布尔表达式的运用,是条件和循环语句的基础及数组 ...

随机推荐

  1. C++之指针指向二维数组

    一维指针通经常使用指针表示,其指向的地址是数组第一元素所在的内存地址,例如以下 int ary[4][5]; int(*aryp)[5] = ary; 那么ary[4]相当于int(*aryp).下面 ...

  2. mac下安装phalcon

    PHP版本:7.1.16 1. 安装 brew tap tigerstrikemedia/homebrew-phalconphp brew install php71-phalcon 2.配置php. ...

  3. 一、用Delphi10.3模拟读取百度网页,并读取相关头部信息

    一.读取网页的如下: uses TxHttp, Classes, TxCommon, Frm_WebTool, SysUtils; var m_Url: string; m_Http: TTxHttp ...

  4. CTF-i春秋网鼎杯第四场部分writeup

    CTF-i春秋网鼎杯第四场部分writeup 因为我们组的比赛是在第四场,所以前两次都是群里扔过来几道题然后做,也不知道什么原因第三场的题目没人发,所以就没做,昨天打了第四场,简直是被虐着打. she ...

  5. 2017-2018-1 20155231 《信息安全系统设计基础》实现mypwd

    2017-2018-1 20155231 <信息安全系统设计基础>实现mypwd Linux pwd命令用于显示工作目录. 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称. p ...

  6. 2017-2018-1 20155306 《信息安全系统设计基础》嵌入式C语言———提取设置时分秒

    2017-2018-1 20155306 <信息安全系统设计基础>嵌入式C语言---提取设置时分秒 要求:根据下图,完成对时分秒的设置和提取. 示例及思路分析: 思路分析:以分钟为例,根据 ...

  7. Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat

    一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...

  8. restful framework之序列化组件

    一.Django自带序列化组件 from django.core import serializers def test(request): book_list = Book.objects.all( ...

  9. (转)为什么所有浏览器的user-agent都是Mozilla

    最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windows 3.1),它支持文字显示的同时还支持图片,于是Web开始好玩起来. 然后出现了一个新的网页 ...

  10. AxWebBrowser 实现的多进程浏览器 (一)

    我们使用 C#/VB.NET 进行 Trident 内核浏览器编程,大多都是单进程的,当打开的页面较多时比较容易出现卡死等情况. 单进程浏览器简单示例: Public Class formBrowse ...