数据结构
408系列参考王道2021系列书籍
文章目录
前言
今天正式放假,虽然已经咸鱼了三周了。考研初试结束,把我记在我的笔记本上的东西搬上来分享一下,里面有一些个人的总结,方便以后自己翻阅,也希望对大家理解有帮助
一、绪论
408的每一门的绪论都特别重要,相当于一个入门的总结,
把该学科的来源、应用都论述一遍。
-
程序=数据结构+算法
-
数据结构三要素:*逻辑结构*(集合、线性结构、树形结构、图结构)、*物理结构*(顺序存储、链式存储、索引结构、散列存储)、*数据的运算*
这个地方挺有意思的,可以在后面看到二分查找的物理结构是顺序表,但是逻辑结构是二叉查找树。不过也挺容易理解的,逻辑结构就是想象中的样子,物理结构就是在计算机中如何存储。
-
时间复杂度T(n)、空间复杂度S(n)
考试的类型一般都是循环,自己很容易推出来的。就是一个近视值,当趋于无穷大的时候取最高项即可。
二、线性表
1.顺序表
顺序表就是空间上连续的一个链表,也就是一维数组。此处需要注意有序表和顺序表的区别
2.链式表
链式表就是一开始入门C语言的学的指针,当时并不清楚学习链表干嘛,后来随着学习的深入慢慢喜欢上了链表,灵活,省空间
- 头插法和尾插法(可以用于链表逆置)
- 双向链表、循环链表、静态链表(用数组表示)
3.小结
本章内容难点基本上每年必考,算法题都是数组和链表,今年那道题你以为考的是图的连通,其实还是矩阵的遍历(不得不说今年的算法题看题目理解了十五分钟,最后还是没写对)。线性表已经固定了功能了,增删查改。双指针法用于找到链表的中间。不过考法太灵活了,多刷一些编程题估计会好点。可惜我算法挺差了,就不在这丢脸了。
栈和队列
1.栈—先进后出
栈是受限操作的线性表,我每次都是当作一维数组
- 出栈序列个数 1