数据结构复习

本文深入探讨数据结构,包括逻辑结构(集合、线性、树形、复杂结构)和存储结构(顺序、链接、散列、索引)。介绍了线性表、链表、稀疏矩阵的表示方法以及分配地址的策略。讲解了算法设计方法如贪心、分治、动态规划、回溯和分支限界法。同时,概述了字符串、栈、队列、二叉树和树的相关概念及应用,并讨论了高级字典结构如字符树和二叉排序树。
摘要由CSDN通过智能技术生成

一、绪论

1. 从问题到程序

需求模型 - 数学模型 - 实现模型

2. 数据结构

逻辑结构:定义了数学模型中基本元素和元素之间的相互关系。可以用二元组B = <K, R>表示,K为结点的有穷集合,R为K上的一个关系。

存储结构:给出了数学模型的具体表现方式,包括结点的表示和关系的表示。

3. 按逻辑结构分类

集合结构:R为空,即K内无任何关系。

线性结构:K中每个节点最多有一个前驱和一个后继。如线性表、串、栈、队列。

树形结构:K中每个节点最多有一个前驱和多个后继。如树。

复杂结构:对前驱后继个数不做限制。如图、网络。

集合结构 包含于 线性结构 包含于 树形结构 包含于 复杂结构。

4. 按存储结构分类

顺序表示:线性结构,适合批量操作,当结点等长时,适合随机存取。

链接表示:适合插入、删除等操作。

散列表示:名字表、字典,适合随机存取,不适合批量操作

索引表示:特殊的散列,散列是通过散列函数,索引是建立辅助的索引结构。将不等长的数据结构转化为等长的数据结构。

5. 算法的设计

贪心法:找局部最优解,推广到全局最优解。

分治法:把一个规模较大的问题拆分成两个或多个规模较小且与原问题相似的子问题。自顶向下。

动态规划法:分解的子问题较多,重用已有的计算结果。自底向上。

回溯法:深度搜索。迷宫问题,八皇后问题。

分支限界法:广度优先。在人工智能中使用广泛。

6. 算法的特性

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值