发表于: 2017-12-14 20:46:58

1 696


一.今天完成的主要事情

1.方案评审

首先是下午两点钟的时候后端小组对整个方案大概过了一遍,自己负责的模块并没有太多的问题

然后是下午六点的时候又针对其他成员的问题进行了一次沟通,解决了三个问题

最后是晚上八点准时开始的方案评审,自己负责的模块并没有什么问题

2.继续学习付老师的计算机理论基础课程

学习了数组,树,二叉树一节

数组,树,二叉树
一.数组的概念以及常见的操作
数组的概念
      数组中的每个元素的类型都是相同的,这个类型可以是一个数字,字符,对象甚至其他的集合,比如一个数组中的每个元素都是数组的话,那这个数组就是二维数组.数组在内存中存储是连续存储的,所以数组的插入和删除性能比较低,因为每次操作之后都需要再开辟存储空间,并且还要对内存中的值进行赋值,增加开销.
      数组是一个整体,确定之后各维度大小不能改变,每一个数据元素有唯一的一组下标来确定.
数组的常见操作
在数组中不考虑插入,删除数据的操作,一般只做取值和赋值,遍历操作.
二.树的基本概念和性质
树的概念
树型结构是一类重要的非线性结构,其节点有分支,而且具有层次结构.
树型结构的严谨定义
树的基本术语


线性结构和树型结构的相同点是第一个数据元素没有前驱,最后一个元素没有后继,不同点是数组中其他的元素都只有一个后继,而树型结构中的其他元素有多个后继
三.二叉树的链式存储和遍历
二叉树的定义
二叉树是由n个节点的有限集合构成,此集合或者为空集,或者由一个根节点及两颗互不相交的左右子树组成,并且左右子树都是二叉树.二叉树可以是空集合,根可以有空的左子树或空的右子树
二叉树的存储结构
      顺序存储要先把二叉树扩充为完全二叉树,然后再从树根,自上到下,每层自左到右的给所有节点编号,最后再按照编号把二叉树的数据元素存储到一组连续的存储单元中.
但这样有个问题,存储的时候会浪费很多的存储空间,因为先要把一个二叉树扩充为完全二叉树,需要加一些没有数据的空节点.多余的节点用于表示节点和节点之间的父子关系

除此之外,插入或者删除的时候会非常麻烦


二叉链表法,三叉链表法
        二叉链表法是一个数据域保存当前节点的数据,两个指针域分别表示该节点左孩子和右孩子的地址,三叉链表法则又添加了一个父节点的地址.其中二叉链表法会更加常用一些.


遍历二叉树

        其实就是将二叉树按照某种规律转变为线性关系排列出来.
       有三种方式,先序(根)遍历,中序(根)遍历,后序(根)遍历
       通过序列还原二叉树,只有通过先序和中序序列或者后序和中序序列才能还原出二叉树
      先序和中序
      中序和后序
四.二叉树的应用(二叉排序树,哈夫曼树)
二叉排序树的定义
       二叉排序树的基本运算包括查找,插入,创建,遍历
      查找操作,如果K=当前节点,返回,如果K<当前节点,在左子树中递归查找,如果K>当前节点,在右子树中递归查找
      插入操作和查找操作息息相关,插入时先查找,如果树中不存在该节点,,则将新的节点插入到查找失败的位置,新节点成为一个新的叶子节点,所以新插入到节点一定是一个新添加的叶子节点.
       对二叉排序树采用中序遍历,则获取的数据正好从小到大
       对二叉排序树采用后序遍历,则获取的数据整好从大到小


哈夫曼树(最优树)

       可以解决将学生的分数从百分制转变为五级制,提供性能最高的解决方式

        哈夫曼树的应用,哈夫曼编码,构造一个哈夫曼树的过程,就获取到了一个哈夫曼编码,用于解决符合正态分布的问题,能够找到最优解.


二.明天计划完成的事情

和小组成员商量分配任务,然后尽快完成分配给自己的任务


三.遇到的问题

暂无


四.收获

以上


五,项目进度情况

如期进行,暂无延期风险


返回列表 返回列表
评论

    分享到