数据结构知识点总结:线性表、栈、队列、树、图和查找算法
版权申诉
93 浏览量
更新于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 上传
2023-05-24 上传
2023-09-14 上传
2024-01-27 上传
2024-07-02 上传
2023-09-06 上传
使用java来获取com.spire.doc库中不同的版本来获取一个表格中的段落的子对象类型为com.spire.doc.documents.StructureDocumentTagInline的内容
2023-04-22 上传
2023-07-13 上传
goodluck123abc
- 粉丝: 0
- 资源: 4万+
最新资源
- ExtJS 2.0 入门教程与开发指南
- 基于TMS320F2812的能量回馈调速系统设计
- SIP协议详解:RFC3261与即时消息RFC3428
- DM642与CMOS图像传感器接口设计与实现
- Windows Embedded CE6.0安装与开发环境搭建指南
- Eclipse插件开发入门与实践指南
- IEEE 802.16-2004标准详解:固定无线宽带WiMax技术
- AIX平台上的数据库性能优化实战
- ESXi 4.1全面配置教程:从网络到安全与实用工具详解
- VMware ESXi Installable与vCenter Server 4.1 安装步骤详解
- TI MSP430超低功耗单片机选型与应用指南
- DOS环境下的DEBUG调试工具详细指南
- VMware vCenter Converter 4.2 安装与管理实战指南
- HP QTP与QC结合构建业务组件自动化测试框架
- JsEclipse安装配置全攻略
- Daubechies小波构造及MATLAB实现