数据结构前言(1)
1、前言
数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作。数据结构在计算机科学和软件工程领域具有广泛而多样的用途。(7月26日)
2、数据结构
- 数组、队列、链表、栈、哈希表、二叉树、Trie树、图
算法:
- 递归、排序、二分查找、搜索、哈希算法、贫心算法、分治算法、回溯算法、动态规划、字符串匹配算法
3、数组
数组里的数据是按顺序排列的,每一个元素都有一个下标,标明它在数组中的位置。
4、链表
链表中的数据呈线性排列,每个数据都有一个指针,指向下一个数据的内存地址。
-
如果添加元素,比如需要将数据C插到AB之间,只需要将A的指针指到C,将C的指针指到B即可。
-
如果要将C从AB之间删除,只需要将原来A指到C的指针,改为从A指到B即可。
-
链表优点添加和删除都很容易,但是不好查找。
5、二叉树
二叉搜索树中的每个节点都包含以下属性:
- key:存储在节点中的值。
- left:指向左索引的指针。
- right:指向正确孩子的指针。
- p:指向父节点的指针。
6、哈希表/散链表
哈希表是以键值对的方式来存储数据的
7、栈&堆
堆栈是一种LIFO(后进先出-最后放置的元素可以首先访问)结构,
堆栈的应用
- 用于表达式评估(例如:用于解析和评估数学表达式的调车场算法)。
- 用于在递归编程中实现函数调用。
8、学习数据结构和算法要分三步走
第一步先夯实基础,学习每个算法的基本思想,解题思路和应用场景
第二步对学习的算法知识进行归纳总结,提升对算法的熟练度,做到融会贯通
第三步则是提升思考高度,将各类算法之间的区别和联系搞清楚,做到举一反