DAY1 数据结构前三章学习笔记

数据结构前三章是:

绪论

线性表

栈、队列和数组

一  绪论就是一些对于算法的五个条件了:

确定性 :也就是不能有二义性

有穷性:说明算法必须是可以执行完的

可行性,执行有限次可以实现的

输入和输出。

二  计算时间复杂度(时间复杂度和编程语言无关,和算法的设计是有关的)

一般和树有关的就是log2N了,总之就是计算循环执行的次数

我分为两个模板学习:第一个就是普通的复杂度计算,第二个就是递归函数的复杂度计算

写不出来具体的,总之就是算,达到临界条件之后是多少。我学了一种方法,将递归函数按照参数变化展开,在数数就行了。

递归的要注意,函数体内的语句有没有和循环次数挂钩,没有的话就简单了,直接循环体按循环体内的算。而且递归函数自身调用是一次。

线性表就是一个结点加结点的了,有顺序和链式存储,各有各的优缺点。顺序擅长查找,链式擅长增删。

四种链表我总是分不清楚

首先,头结点是可以存储数据的,但是一般用作标识来使用

单链表:最普通的那种

循环链表:到最后的一个结点又指向了第一个结点

单向循环链表:结点之间是双向箭头

双向循环链表,有两个指针域:双向链表的基础之上,又增加了头尾结点之间的双向箭头。

(怎么表示的,我的书本上有,我得记得看,除了代码,就是算他们四个的时间复杂度,书本上也有,后续有时间再补充)

我有一个盲点就是,静态链表,他是由数组构成的,仍需要分配一个较大的空间,但在作为线性表的插入和删除操作时不需要移动元素,仅需要修改指针。

别的我先不讲了,打个记号,周末再补笔记吧,挺多的

第三个就是栈,队列什么的了,栈就是先进后出,出栈顺序由卡特兰数个(我不会打那个符号)

对列就是先进先出,两个队列我可以模仿出栈的效果来,两个栈我也可以模仿出队列的效果(有空补充)

然后是我不懂的链式栈和链式队列,前者需一个头指针,后者需要两个指针,头尾指针。另外用什么数据结构实现链式栈和链式队列,也是一个考点(有空补充)

压缩矩阵考点,怎么存储,我的书上似乎有一些小毛病,按行和列存储顺序到底是什么样的,我再落实落实。

再一个就是栈和队列的应用,什么时候应该用栈什么时候用队列。

队列就是四个:

1,生活场景中按顺序的

2,图的广度遍历

3,树的层序遍历

4,操作系统的一些进程队列

栈就多了,时常说的压栈,一般用在压进去函数,临时数值什么的。

1,中缀转后缀(其中规则我后续补充)

2,后缀表达式的计算

3,括号匹配

4,栈的递归

5,栈的性质


记载最后,学习要注意复习,复习要注意总结,常学常新,我是最棒的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值