数据结构与算法复习篇

第一章 基础概念

1.数据是描述客观事物的符号,是计算机可以操作的对象,是被计算机识别,并输入计算机处理的符号。数据不仅仅包括整型、实数型等数值类型,还包括字符及声音、图像、视频等非数类型。

2.数据就是符号,而且这些符号具备两个前提:可以被输入到计算机中,能被计算机程序处理

3.基本概念及术语

  • ①数据元素:是组成数据的、有一定意义的基本单位,在计算中通常作为整体处理,也被称为记录。
  • ②数据项:一个数据元素可以有若干个数据项组成。
  • ③数据对象:是相同的数据元素的集合,是数据的子集。(是一组实例或值)

例如:string={a,b,c}

数据对象中一个具体的值就是数据对象的一个实例。组成:不可再分的原子,另一个数据对象的实例作为成员,称为数据元素。

④数据结构:是相互之间存在一种或者多种特定关系的数据元素的集合。

4.数据结构

逻辑结构:集合、图、线性、树

物理结构:

顺序存储结构(面向问题):是把数据元素存放在地址连续的存储单元,其数据间的逻辑关系和物理关系是一致的。

链式存储结构(面向计算机):是把数据元素存放在任意的存储单元,这组存储单元可以是连续的,也可以是不连续的。

第二章 线性表数据结构

1.线性表有唯一的首元素,唯一的最后元素,首元素有唯一的后继元素,最后一个元素有唯一的前驱元素,中间的每一个元素有唯一的前驱元素和唯一的后继元素。

2.单向链表特点:①每个链表有一个头指针,通过头指针可以找到第一个节点;②每个节点都可以通过指针域找到它的后继,最后一个节点的指针域为NULL,表示没有后继③链表不支持随机访问,只能通过前一个元素的指针域得知后一个元素的地址,因此只能从头指针开始顺序访问各节点。

3.①头指针:指向第一个节点的指针,若有头节点,则指向头节点。

  ②头节点:为操作方便设置;有头节点,操作统一,头节点不必有。(链表的附加节点)

第三章  栈     

1.栈是一种特殊的线性表,其插入和删除操作都在表的同一端进行。

2.栈的定义:stack是一种特殊的线性表,其插入(也成为入栈压栈)和删除(也称出栈或者弹栈)操作都是在线性表的同一端进行的。这一端称为栈顶(top),另一端称为栈底(bottom)

栈是一个后进先出表

现实生活中的栈:打印机的打印纸托盘,下一张要打印的纸是托盘最上面的纸,也就是刚放入的纸;取盘子时,当盘子快用完时,新的盘子被放在原来那摞盘子的上面,被先取走,盘子是后进先出的。

栈能解决的问题:括号匹配,汉诺塔,列车车厢重排,开关盒布线,迷宫老鼠

3.数组线性表描述栈:右端定义为栈顶;用链表的左端作为栈顶。

第四章 队列

1.队列是一个线性表,其插入和删除操作分别在表的不同端进行。插入元素的那一端称为队尾(back或者rear),删除元素的那一端称为队首(front)

错题:

  1. 设计一个好的算法应该满足 正确性、可读性、健壮性、高效性
  2. 一个算法必须满足 有限性、确定性、可行性、输入(有0个或多个)和输出(有一个或多个)等五个重要特性
  3. 算法的时间复杂度与问题规模有关。
  4. 非空线性表的结构特征:①除终端结点外,每个结点只有一个后续结点②除了开始结点外,每个结点只有一个前驱结点③只有唯一的开始结点和唯一的终端结点④
  5. 数据结构是介于数学、硬件、软件之间的一门核心课程。
  6. 链表的存储密度小于1.
  7. 最大堆:根节点的值大于其左右儿子的值,但是左右儿子的值没有排序,所以大根堆不能看成是一棵二叉搜索树
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。它包含了逻辑结构、存储结构(物理结构)和数据的运算。数据结构的学习目的是通过程序代码将现实世界的问题信息化,并且用计算机高效地处理这些信息从而创造价值。 算法是通过解决问题所采取的一系列步骤或指令。在算法中,通过分析基本运算的频度来评估算法的时间复杂度。时间复杂度是算法问题规模n的函数,通常用最深层循环内的基本运算频度f(n)来表示。算法的时间复杂度主要分析T(n)的数量级,其中T(n)是算法中所有语句频度的总和。 因此,复习数据结构与算法主要包括理解数据结构的概念和特性,掌握常见的数据结构和它们的操作,以及了解如何使用算法解决问题并评估算法的时间复杂度。这样可以帮助我们更好地理解和解决实际问题,并提升程序的效率和性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【2023数据结构与算法复习指导】](https://blog.csdn.net/chijijixiaozhang/article/details/125186559)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Momo_159357

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值