zoukankan      html  css  js  c++  java
  • 10.6之补10.5

    反思与总结乃是学习的一部分!

    昨天学了啥。。

    一,P1200

        1,不同类型的不能乱乘吧。char类型虽然是数字你也得把它转换成int类型的。

        2,关于string中length()的用法。length测出的应该是字符串的长度再加上最后一个换行符好像是。但事实上并不是,仍然是字符串本来的长度。那我来看看最末位是什么,最末位什么也没有 。空格?输出不加换行符试一下

    。是个空格。

    同时跟这个对应的问题是,你string是从0开始计数的,如果你不注意的话可能在这块翻跟头。

    举个例子吧,假如你要遍历这个字符串,那么你必须i从0开始,到length-1结束。

        3,每做一个题,用自己的方法做完,也要看看别人的代码好在哪里,同时想想有什么其他的方法没有。在这方面之前的堆和快排我做的不是很好!应该是要回顾的。

        4,比如我这个跟别人高赞的题解比较来看,起码的变量定义的位置,但是你要知道为什么。我百度了下这就涉及到了全局变量和局部变量这个东西了。这个就又涉及到静态内存和动态分布了。。这个再深入吧。

    二,树。

        1,什么是树?

    一种递归定义的数据结构。

        2,什么是二叉树?

    从名字上来看,每个节点有两个儿子。同时最重要的特点是有序。

        3,如何存储一棵树?

    (1)采用最暴力直接的方法也就是邻接矩阵的方法。若一个树有n个节点,那么开一个n^2大的空间用来存储哪些点相连。

    算了这个图片是真丑。根据我的简单定义,很明显浪费空间太大了。但是思路是顺承的。

    (2)我们的思路一直就是记录下一个点与哪些点相连,这也就是记录下了所有的边。

    那么我们对每个点开一个数组,记录下那些点跟它有边相连即可。

    所以问题就是每个点要开多大呢?我们用什么来开呢?

    从这里就可以分开了,我们可以选择用vector,众所周知,vector是动态规划空间的。

    另外我们还可以用数组模拟链表即所谓的前向星。

    代码实现?

        4,关于二叉树的存储和遍历。

    (1),二叉树有三种遍历方法,主要的区分方法在于你把根的位置放哪。

    先序:根->左->右

    中序:左->中->右

    后序:左->右->中

    根据我的测试,除了先序你做的都不好。

    (2)二叉排序树的遍历

    对了你得明白二叉排序树的定义,二叉树的前提下加上中序遍历有序。也就是上面节点的值满足左<中<右。

    虽然你是写过一遍的人但我打赌你啥都不会。

    这块得好好学习一下。

     确实原理不懂。

  • 相关阅读:
    南京周边城市两日游方案
    电梯演说
    需求分析
    敏捷开发
    课堂练习 选择团队类型
    结对项目小DEMO
    分析图书管理系统的5W1H
    项目风险分析作业
    旅游方案选择
    图书管理系统需求规格
  • 原文地址:https://www.cnblogs.com/beiyueya/p/11626873.html
Copyright © 2011-2022 走看看