数据结构—个人学习笔记

本文是关于数据结构的学习笔记,介绍了数据结构的研究内容,包括逻辑结构和存储结构。逻辑结构包括线性结构和非线性结构,如线性表、栈、队列和树形结构。存储结构则分为顺序存储和链式存储,讨论了数据运算如插入、删除、查找和排序。此外,还涉及抽象数据类型的概念和算法分析,包括时间复杂度和空间复杂度的渐进表示法。
摘要由CSDN通过智能技术生成

系列目录

数据结构第一章绪论
数据结构第二章线性表

1.1 数据结构的研究内容

在这里插入图片描述数据结构的研究内容为:
研究非数值计算的程序设计问题中计算机的操作对象以及它们之间关系和操作

1.2 基本概念及术语

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

数据结构的两个层次

逻辑结构:
数据元素间抽象化的相互关系,与数据的存储无关,独立于及玄机,它是从具体问题抽象出来的数学模型。
存储结构(物理结构):
数据元素及其关系在计算机存储器中的存储方式。

逻辑结构

划分方法一
(1)线性结构——
有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个后继。
例如:线性表、栈、队列、串
(2)非线性结构——
一个结点可能有多个直接前趋和直接后继。
例如:树、图
划分方法二
1.集合
元素之间除属于同一集合外,无其他关系。
2.线性结构
一个对一个。
3.树形结构
一个对多个。
4.图形结构
多个对多个。

存储结构

分为两类:
顺序存储结构——借助元素在存储器中的相对位置来表示数据元素间的逻辑关系
链式存储结构——借助只是元素存储地址的指针表示数据元素间的逻辑关系
在这里插入图片描述在这里插入图片描述

数据的运算

对于一中数据结构,常见的运算(运算不同数据结构不同):
.插入
.删除
.修改
.查找
.排序
在这里插入图片描述

数据类型

定义:在一种程序设计语言中,变量所具有的数据种类
数据类型是一组性质相同的值的集合,以及定义于这个集合上的一组运算的总称

抽象数据类型

  1. 更高层次的数据抽象
  2. 由用户定义,可以表示应用问题的数据模型
  3. 有基本的数据类型组成,并包括一组相关的操作
    在这里插入图片描述在这里插入图片描述

1.3 抽象数据类型的表示与实现

抽象数据类型可以通过固有的数据类型(如整型、实型、字符型等)来表示和实现
上机时要用具体语言实现,如C或C++等
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

1.4 算法和算法分析

算法定义:
一个又穷的指令集,这些指令为解决某一特定任务规定了一个运算序列
算法的描述:

  • 自然语言
  • 流程图
  • 程序设计语言
  • 伪码
    -算法的特性:
  • 输入: 有0个或多个输出
  • 输出: 有一个或多个输出
  • 确定性:每步定义都是确切、无歧义的
  • 有穷性:算法应在执行有穷步后结束
  • 有效性:每一条运算应足够基本
    算法的评价:
  • 正确性
  • 可读性
  • 健壮性
  • 高效性(时间代价和空间代价

算法的效率的度量
算法效率:用更具该算法编制的程序在计算机上执行所消耗的时间来度量
两种方法:事后统计、事前分析估计
在这里插入图片描述在这里插入图片描述

时间复杂度的渐进表示法

在这里插入图片描述在这里插入图片描述基本语句重复执行的次数:
算法中重复执行次数和算法的执行时间成正比的语句
对算法运行时间贡献最大
问题规模:
n越大算法的执行时间越长

  • 排序:n为记录数
  • 矩阵:n为矩阵的阶数
  • 多项式:n为多项式的项数
  • 集合:n为元素个数
  • 树:n为树的结点个数
  • 图:n为图的顶点数或边数
    在这里插入图片描述

渐进空间复杂度

在这里插入图片描述

1.5 小结

在这里插入图片描述

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值