4周 郭张炀 20212301
栈:它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
就是最头可以插删东西,中间是封闭的
队列:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
就是头可以删,尾可以插
二叉树;二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分
此外还有红黑二叉树,堆等一堆东西,算法效率很高,但是我用bug很多。
图:节点可以连接一堆东西,没听过,觉得复杂度会很高
这些东西我了解原理,以前也会,但是是基于指针来应用,不知道python咋用
参数
形参和实参
很容易搞混,但是如果严格按照逻辑来走,一般不会出啥问题
面向对象
我觉得就是类class
但是我一般只做一些算法的题,这方面接触的少
定义了一个对象,之后又定义了一系列方法来描述对象
总之我们设计程序时,都是在描述一个对象,如设计一个图书馆的管理系统,我们就要先定义一个class library 之后在里面再接着定义别的函数,从而实现数字图书馆。
代码的翻译过程:
高级语言所完成的程序————>编译器————>机器语言编写的程序
解释器:
可以看做理解编写程序所使用的语言的模拟器或虚拟机。
范型
命令式范型
声明式范型
没看懂
高级语言程序设计的功能性
布尔表达式:
一般在if while 后面进行逻辑判断
数据类型
整形int,浮点float,长整数long,布尔型bool,字符char,字符串,string,字典dictionary,列表list
声明
C++里一般就是int x声明有x这个整形变量
输入输出
在python里
input read open 都可以输入
print write可以输出
面向对象语言的功能性:
封装 信息隐蔽,只提供接口,内部是黑箱
对象
类
实例化:创建类
__init__
继承:获得其他类的属性子类继承父类有时也叫超类
多态:我理解就是同一个接口,多个输出,在不同的类中,方法一样,但是输出不同