数据结构与算法复习笔记
时间: 2023-09-28 10:08:45 浏览: 158
好的,下面是数据结构与算法的复习笔记:
一、数据结构
1. 数组:数组是一种线性数据结构,可以用于存储同一类型的元素。
2. 栈:栈是一种先进后出(Last In First Out)的数据结构,只能在栈顶进行插入和删除操作。
3. 队列:队列是一种先进先出(First In First Out)的数据结构,只能在队尾进行插入操作,在队头进行删除操作。
4. 链表:链表是一种动态数据结构,可以随时插入或删除元素。单向链表只能从头部开始遍历,而双向链表可以从头部或者尾部开始遍历。
5. 树:树是一种非线性数据结构,它由节点和边组成。每个节点有一个父节点和若干个子节点。
6. 堆:堆是一种特殊的树,它分为大根堆和小根堆。大根堆中父节点的值大于等于子节点的值,小根堆中父节点的值小于等于子节点的值。
7. 图:图是由节点和边组成的非线性数据结构,节点之间的连线称为边。图分为有向图和无向图。
二、算法
1. 排序:排序是将一组数据按照某个特定的顺序进行排列的过程。常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。
2. 查找:查找是在一组数据中找到特定元素的过程。常见的查找算法包括线性查找、二分查找、哈希查找等。
3. 字符串匹配:字符串匹配是在一个文本串中查找一个模式串的过程。常见的字符串匹配算法包括暴力匹配、KMP算法、Boyer-Moore算法、Rabin-Karp算法等。
4. 贪心算法:贪心算法是一种在每一步选择中都采取当前状态下最优解的策略。贪心算法常用于求解最小生成树、最短路径等问题。
5. 动态规划:动态规划是一种通过划分问题为子问题并解决子问题来求解原问题的方法。动态规划常用于求解最长公共子序列、背包问题等。
以上是数据结构和算法的复习笔记,希望对你有所帮助!
阅读全文