数据结构知识点总结:线性表、栈、队列、树、图和查找算法
版权申诉
32 浏览量
更新于2024-08-28
收藏 144KB DOC 举报
数据结构知识点总结
数据结构是计算机科学中的一门基础学科,研究如何组织和存储数据,以便更好地使用和处理数据。了解数据结构是编写高效程序的关键。
**基本概念**
1. 数据元素:数据的基本单位。
2. 数据项:数据不可分割的最小单位。
3. 数据结构的逻辑结构:抽象的,与实现无关。
4. 数据结构的物理结构:存储结构,包括顺序映像(顺序存储结构)和非顺序映像(链式存储结构)。
5. 算法特性:正确性、有穷性、确定性、可行性、输入和输出。
**算法设计的要求**
1. 正确性:算法应能满足设定的功能和要求。
2. 可读性:思路清晰、层次分明、易读易懂。
3. 健壮性:输入非法数据时应能作适当的反应和处理。
4. 高效性(时间复杂度):解决问题时间越短,算法的效率就越高。
5. 低存储量(空间复杂度):完成同一功能,占用存储空间应尽可能少。
**线性表**
1. 线性表List:最常用且最简单的数据结构。
2. 线性表是n个数据元素的有限序列。
3. 线性结构的特点:①“第一个”②“最后一个”③前驱④后继。
4. 顺序表——线性表的顺序存储结构
特点
a)逻辑上相邻的元素在物理位置上相邻。
b)随机访问。
5. 线性表的链式存储结构
类型定义:简而言之,“数据+指针”。
不带头结点的空表判定为L==null
带头结点的空表判定为L->next==null
循环单链表为空的判定条件为L.next==L
线性链表的最后一个结点的指针为NULL
头结点的数据域为空,指针域为空。
**栈和队列**
栈和队列是两种特殊的线性表。栈是一种后进先出的数据结构,队列是一种先进先出的数据结构。
**树和二叉树**
树是一种非线性数据结构,二叉树是一种特殊的树。树的每个结点最多有两个孩子结点,左孩子和右孩子。
**图**
图是一种非线性数据结构,由结点和边组成。图可以用来描述复杂的关系。
**查找算法**
查找算法是查找数据结构中某个特定元素的算法。常见的查找算法有顺序查找、折半查找和哈希查找。
**排序算法**
排序算法是将数据结构中的元素排序的算法。常见的排序算法有冒泡排序、选择排序、插入排序和快速排序。
本文档提供了数据结构的基本概念、算法设计的要求、线性表、栈和队列、树和二叉树、图、查找算法和排序算法等知识点,为学习数据结构提供了系统的参考。
2022-11-30 上传
2021-09-22 上传
2021-09-28 上传
2021-10-08 上传
2022-06-10 上传
2022-06-03 上传
2021-09-26 上传
2022-06-28 上传
2021-10-03 上传
goodluck123abc
- 粉丝: 0
- 资源: 4万+
最新资源
- 背包问题 贪心算法
- IBM DB2通用数据库SQL入门
- ARM指令集及汇编 学习ARM必不可少的
- Lecture Halls 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。)
- ARM开发工程师入门宝典
- 交通灯系统硬件软件设计(有图有程序)
- MAX SUM 给定由n整数(可能为负数)组成的序列 {a1,a2,…,an},求该序列形如ai+ai+1,…,+aj的子段和的最大值。当所有的整数均为负数时定义其最大子段和为0。
- Number Triangles 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。
- st5dfsfdsdfsdfsfds
- 最长公共子序列 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。例如,若X={A,B,C,B,D,B,A},Y={B,D,C,A,B,A},则序列{B,C,A}是X和Y的一个公共子序列,但它不是X和Y的一个最长公共子序列。序列{B,C,B,A}也是X和Y的一个公共子序列,它的长度为4,而且它是X和Y的一个最长公共子序列,因为X和Y没有长度大于4的公共子序列。 最长公共
- 《Keil Software –Cx51 编译器用户手册 中文完整版》(403页)
- Pebble Merging 在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。
- 云计算:优势与挑战并存
- Minimal m Sums 给定n 个整数组成的序列,现在要求将序列分割为m 段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小?
- Lotus 公式秘籍---经验总结
- 数据结构C++二分搜索树