数据结构前三章是:
绪论
线性表
栈、队列和数组
一 绪论就是一些对于算法的五个条件了:
确定性 :也就是不能有二义性
有穷性:说明算法必须是可以执行完的
可行性,执行有限次可以实现的
输入和输出。
二 计算时间复杂度(时间复杂度和编程语言无关,和算法的设计是有关的)
一般和树有关的就是log2N了,总之就是计算循环执行的次数
我分为两个模板学习:第一个就是普通的复杂度计算,第二个就是递归函数的复杂度计算
写不出来具体的,总之就是算,达到临界条件之后是多少。我学了一种方法,将递归函数按照参数变化展开,在数数就行了。
递归的要注意,函数体内的语句有没有和循环次数挂钩,没有的话就简单了,直接循环体按循环体内的算。而且递归函数自身调用是一次。
线性表就是一个结点加结点的了,有顺序和链式存储,各有各的优缺点。顺序擅长查找,链式擅长增删。
四种链表我总是分不清楚
首先,头结点是可以存储数据的,但是一般用作标识来使用
单链表:最普通的那种
循环链表:到最后的一个结点又指向了第一个结点
单向循环链表:结点之间是双向箭头
双向循环链表,有两个指针域:双向链表的基础之上,又增加了头尾结点之间的双向箭头。
(怎么表示的,我的书本上有,我得记得看,除了代码,就是算他们四个的时间复杂度,书本上也有,后续有时间再补充)
我有一个盲点就是,静态链表,他是由数组构成的,仍需要分配一个较大的空间,但在作为线性表的插入和删除操作时不需要移动元素,仅需要修改指针。
别的我先不讲了,打个记号,周末再补笔记吧,挺多的
第三个就是栈,队列什么的了,栈就是先进后出,出栈顺序由卡特兰数个(我不会打那个符号)
对列就是先进先出,两个队列我可以模仿出栈的效果来,两个栈我也可以模仿出队列的效果(有空补充)
然后是我不懂的链式栈和链式队列,前者需一个头指针,后者需要两个指针,头尾指针。另外用什么数据结构实现链式栈和链式队列,也是一个考点(有空补充)
压缩矩阵考点,怎么存储,我的书上似乎有一些小毛病,按行和列存储顺序到底是什么样的,我再落实落实。
再一个就是栈和队列的应用,什么时候应该用栈什么时候用队列。
队列就是四个:
1,生活场景中按顺序的
2,图的广度遍历
3,树的层序遍历
4,操作系统的一些进程队列
栈就多了,时常说的压栈,一般用在压进去函数,临时数值什么的。
1,中缀转后缀(其中规则我后续补充)
2,后缀表达式的计算
3,括号匹配
4,栈的递归
5,栈的性质
记载最后,学习要注意复习,复习要注意总结,常学常新,我是最棒的!

762

被折叠的 条评论
为什么被折叠?



