浙大数据结构Week3
课程地址:https://www.icourse163.org/course/ZJU-93001笔记中图片均来自此mooc中讲义。
第三周的内容是讲树,现在来回顾下。
Part1:回顾1.树的定义光看定义还挺抽象,但是看下示意图还是比较好理解的,注意这里互不相交这个特点很关键,可以据此来判断一个结构是否为树,例如一下三个例子均不是树。再来看一些常用术语,这里只列几个最常用的。
节点的度:节点的子树个数
树的度:树的所有节点中最大的度数
叶节点:度为0的节点
根节点:没有父节点的节点
父节点:有子树的节点是其子树的根节点的父节点
子节点:若A是B的父节点,那么B是A的子节点
兄弟节点:具有同一父节点的各个节点彼此是兄弟节点
现在有了抽象数据结构,那么在计算机中如何表示呢?课程中老师给了一种通用方法,适用于任何树,称为儿子兄弟表示法,即每个节点由三个元素构成,分别为节点的值,指向兄弟节点的指针,指向子节点的指针。树的集合称为森林,可以看出森林也可以使用儿子兄弟表示法表出,只要将每个根节点指向下一颗数即可。
2.二叉树现在来看一种特殊的树,二叉树。二叉树的特点为每个节点有0到2个子节点, ...
斯坦福CS106A作业1
一直想学这门课,网易公开课的版本确实不错,但是代码看不清,非常难受,所以自己搬运了youtube上2016年的课程,非常清晰,字幕是youtube自动翻译的,可能有些不准,但内容和网易公开课版本基本一致,这里给下链接。视频地址:https://pan.baidu.com/s/12oEpv022SiKlJGwZiQNO0g密码:62nu参考书籍:https://pan.baidu.com/s/1PYRjvvq6fkV_NdTR7FOa2g密码:h092
课程主页:https://www.baidu.com/link?url=Ti8c7qJ4ibyIfgMgucbK5qTnnzGf3xWVsRdzORr1_fF-vGRVoHQ7Q7RlITXwHgPE&wd=&eqid=a77bcc030001438d000000045aba5907最新版的课程其实和网易公开课上的资料基本一致,选择哪个都可以,个人感觉把这些部分都完成应该会有不错的效果。
再来简述一下这门课程,这门是编程的入门课,0基础都可以学,介绍java的,老师讲课很有意思,难度不大,感觉这门课的精华是作业,所以在这里 ...
浙大数据结构Week2
课程地址:https://www.icourse163.org/course/ZJU-93001笔记中图片均来自此mooc中讲义。
之前忙于研究生复试,所以停滞了一周的课程。这次回顾下第二周的课程,这周主要讲了三个部分,线性表,堆栈,队列。
Part1:回顾1.线性表这里引用老师的介绍。线性表比较常用,比如python中的list的就是线性表,由于python自带,所以这里没有自己实现一遍。
2.堆栈(Stack)堆栈是一种特殊的线性表,只在栈顶插入删除数据,插入操作称为入栈(Push),删除操作称为出栈(Pop)。栈的最大特点为后入先出Last In First Out(LIFO)。栈在生活中也是比较常见的,例如碗,我们一般会将新的碗放在最上面,用碗的时候也会拿最上面的碗,还有一个例子是夏天冰箱里的饮料,我们一般会拿最外层的,放饮料的时候也会放在最外层。下面是老师的介绍。
第一周的部分使用c语言实现的,但是我指针后面部分都不大会,正在恶补,故这里使用python实现。# -*- coding: utf-8 -*-
"""
Created on Sat Mar 24 11:11:38 ...
浙大C语言Week1 and Week2
Week1这一周相对基础,只列两点
解释与编译的区别解释:一条一条运行编译:翻译完成之后运行这里老师说解释执行未必比编译执行慢,因为现在计算机的运算速度已经非常快了。
现在一般说哪个语言比较适合做什么不是说这个语言本身,而是这个语言有很强大的库函数。比如python的pandas,numpy库非常适合做科学计算,所以人们常说python适合做数据分析。
Week2这周的知识列三个要点
读取double类型数据的时候使用scanf(“%lf”,&a)
运算优先级
前缀后缀运算
浙大数据结构Week1
课程地址:https://www.icourse163.org/course/ZJU-93001笔记中图片均来自此mooc中讲义。
这周开始了浙大陈越老师的数据结构课程,听了一周,感觉讲的很清晰,现在总结一下。
Part1:回顾1. 什么是数据结构简单来说,就是数据对象在计算机中的组织方式,分为逻辑机构和物理存储结构,而数据对象必定和一些操作相关,这些操作就是算法。这里老师还提到抽象数据类型的概念,就是定义一个数据对象集和其操作集,而不管其具体的实现。举个例子,大家都知道矩阵,也知道它的运算,那么矩阵可以看成一个抽象数据类型,在计算机中具体由python还是C来定义这些细节就不是抽象数据类型关心的了。抽象的好处在与处理问题的时候只需要关注问题本身,而不用关注底层的实现。
2. 什么是算法算法的其实就是解决问题的方法,设计算法的时候要考虑时间复杂度和空间复杂度。时间复杂度一般就是考虑最坏情况以及渐进表示,因为最坏情况方便计算,而且算法只需要考虑当数据量大的情形,所以只需要考虑渐进表示。
3. 应用实例这部分也是这周的作业,虽然不算很难,但是本菜鸡还是折腾了很久。本周的例子是最大子列,PT ...
为什么要做这个博客
本科四年玩的比较多,基本没学到什么,临近毕业时才发现自己对AI,机器学习等领域比较感兴趣,故从网上找了一些优秀的mooc和公开课来学习。想借助这个博客记录自己学习的过程,顺便对学习的内容加以总结。学习的内容主要是两方面,一个是机器学习,还有一部分是CS的基础课程,基本上算从零起步,计划是未来两年半之内学习完,希望自己能坚持下来。下面帖一下课程汇总,是我在简书上发的帖子:
CS课程:https://www.jianshu.com/p/8f2646a825e8
机器学习:https://www.jianshu.com/p/dc9020fd03b1