数据结构原理与分析知识点

知识点

  1. 在数据结构中,从逻辑上可以把数据结构分为线性结构非线性结构
  2. 算法分析:时间复杂性空间复杂性
  3. 算法---解决问题的有限运算序列
  4. 栈的操作原则是后进先出
  5. 在长度为n的顺序表的第 i(1≤i≤n +1)个位置上插入一个元素,元素的移动次数为n-i+1
  6. 在向顺序栈中压入元素时先移动栈顶指针,后压入元素
  7. N是一个5*8的二维数组,当N按行方式存储时,表示该数组的第10个元素是N[1][1]
  8. 稀疏矩阵一般的压缩存储方法有两种:三元组十字链表
  9. 将一颗有100个结点的完全二叉树从根开始,每一层从左到右依次对结点进行编号,根节点的编号为10,则编号为49的结点的左孩子编号为98.---------在完全二叉树中,对于任意一个结点的编号为n,其左孩子的编号为2n。
  10. 深度为4的二叉树至多可以有的结点数为15.-----------深度为d时,最多有2^d - 1个结点
  11. 采用邻接表存储的图的深度优化遍历算法类似于二叉树的前序遍历
  12. 记录关键字比较的次数与记录的初始排列次序无关的方法是快速排序
  13. 算法必须满足的准则输入、输出、有穷性、确定性、可行性
  14. 图的应用算法:克鲁斯卡尔算法、迪杰斯特拉算法、拓扑排序算法
  15. 图顺序存储结构的优点存储密度大
  16. 在选用求解一个问题的算法时,除了先考虑算法是“正确的”之外,还要考虑执行的算法所需要的时间;执行算法所需要的存储空间以及算法应易于理解、易于编程、易于调试
  17. 在顺序表中插入或删除一个元素,需要平均表长的一半个元素,具体移动的元素个数与插入或删除元素的位置有关
  18. 从循环队列中删除一个元素时,其操作是先取出队头元素,后移动对头指针
  19. 广义表((a),a)的表头是(a),表尾是(a)
  20. 数据是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如:数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。
  21. 数据结构是指带有结构的数据元素的集合
  22. 栈是限定在表的一端进行插入和删除运算的线性表
  23. 存储密度是指数据元素本身所占用的存储量和整个节点结构所占用的存储量之比
  24. 存储结构由两种基本的存储方式实现:顺序存储结构、链式存储结构
  25. 顺序存储结构:借元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借用程序设计语言的数组类型来描述。

    链式存储结构:顺序存储结构是要求所有的元素依次存放在一片连续的存储空间中,当链式存储结构,不需要占用一整块存储空间,但是为了表示结点之间的关系,需要给每个结点附加指针的字段,用于存放后继元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述

  26. 数据结构存储的方式:顺序存储、链式存储、散列存储和索引存储

  27. 链式存储结构中,每一个数据的存储结点里可以有多个指向邻接存储结点的指针,用以反映数据间的逻辑关系

  28. 当线性表的数据元素个数基本稳定、很少进行插入和删除操作,但却要求以最快耳朵速度存取表中的元素时,我们应该对表采用顺序存储结构

  29. 如果两个数据结点之间有逻辑上的某种关系,那么就称这俩个结点是邻接

  30. 二叉树是个有限元素的集合,该集合或者为空、或者由一个称为根 的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空 时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。

  31. 递归是若一个对象部分地包含它自己,或用它自己给自己定义,刚 称之个对象是递归的;若一个过程直接地或间接地调用自己,则称这个过程是递归的过程。
  32. 希尔排序是插入排序的一种,又叫缩小增量排序,先按增量进行分组,组内插入排序,缩短增量,再进行分组和组内插入排序,直到增量为1时,进行最后一次排序止
  33. 数据元素是数据的基本单位,在计算机中通常作为一个整体进行考 虑和处理。在有些情况下,数据元素也称为元素、结点、记录等。数据元素用于完整地描述一个对象,如一个学记录,树中棋盘一个格局(状态)、图中的一个顶点等
  34. “基本操作”是指算法中那种所需时间与操作数的具体取值 无关的操作
填空:
  1. 中缀表达式(a+b)-(c/(d+e))对应的后缀表达式是 ab+cde+/- 。
  2. 在常见的数据处理中, 查找是最基本的处理
  3. 在长度为 n 的顺序表中,删除第 i 个元素( 1 i n )时,需要往前移动 n - i 个元素。
  4. 在链栈插入一个结点时,操作顺序应该是先插入结点,再修改栈顶指针
  5. 设有两个串S1和S2,求S2在S1中首次出现的位置的操作称为模式匹配
  6. 有串:“Ф”,那么它的长度是 1。
  7. 把一颗深度为3的左单支二叉树改造册成完全的二叉树,要增添4个空结点
  8. 在任何一颗二叉树的各种遍历序列中,叶结点的相对次序是不发生变化
  9. 权值为1、2、6、8的四个结点,所构造的哈夫曼的带权路径长度是29
  10. 在一颗二叉树中,第5层上的结点数最多是16个
  11. 将一颗树Tr转换成相应的二叉树Bt,那么对TR的先序遍历是对Bt的先序遍历
  12. 现有一颗度为3的树,它有两个度为3的结点,一个度为2的结点,两个度为1的结点。那么其度为0的结点的个数应该是6个
  13. 一个无向连通网图的最小生成树有一颗或多颗
  14. 采用顺序查找法查找长度为n的线性表,其平均查找长度为(n+1)/2
  15. 在下列各种查找方法中,只有散列查找查找法的平均查找长度与表长n无关
  16. 在最坏的情况下,查找成功时二叉查找树的平均查找长度与线性表的平均查找长度相同
  17. 在散列中采用线性探测法解决冲突时,产生的一系列后继散列地址可以大于或者小于但不等于原散列地址
  18. 当两个元素出现逆序时就交换它们的位置,这种排序方法是 交换排序
  19. 通常要求同一个逻辑结构中的所有数据元素具有相同的特性,这意味着不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
  20. 将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是n

简答

1.递归程序设计的特点?

(1)具备递归出口。递归出口定义了递归的终止条件,当程序的执行使它得到满足时,递归执行过程便终止。有些问题的递归程序可能存在几个递归出口。

(2)在不满足递归出口的情况下,根据所求解问题的性质,将原问题分解成若干子问题,子问题大的求解通过以一定的方式修改参数进行函数自身调用加以实现,然后将子问题的解组合成原问题的解。递归调用时,参数的修改最终必须保证递归出口得以满足。

2.为什么在回溯法、分治法、减治法的算法实现中都要用到栈?

在用回溯法,分治法和减治法解决问题时,算法设计中一般需要用栈结构。这是因为:回溯法在问题求解过程中,为了实现回溯,需要依次记忆求解的每一步,以便必要时可以按照求解过程中的逆次序“回退”。显然要用栈来记忆其求解步骤。用分治法和减治法求解问题时,通常分解后的子问题往往是原问题的较小模式。此时对子问题的解法与原问题的解法是相同的,因此可以用递归的方法来求解,这也就需要用到栈。当然,有时也可以用非递归方法来实现,这种情况下,需要算法设计者建立栈来求解问题。

3.分治法与减治法的思路有什么相同之处?又有什么不同?

分治法和减治法的共同之处是,它们都是在“分而治之” 思想的指导下发展起 来的,基本思路就是把一个规模较大的问题划分为若干个规模较小的子问题,通 过对子问题的求解,得到原问题的解。
但分治法和减治法又各自适用于不同的情况,因此它们的求解过程有所不同。用分治法求解的问题,所划分的子问题是互相独立的,且原问题的解需要由各子问 题的解合并而成。因此,需要对各子问题分别求解,并合并子问题的解,才能得到原问题的解。可以用减治法求解的问题,虽然也要对原问题进行划分,但因为 原问题的或者解只在其中一个子问题中,或者是只与其中的一个子问题的解之间有着某种对应关系,因此只要对相关的一个子问题进行求解,就可以得到原问题
的解。当然它也就不存在合并解的过程。可以说,减治法是一种退化了的分治法。

4.一个带权无向图的最小生成树是否一定唯一?在什么情况下构造 出的最小生成树可以不唯一?

一个带权无向图额最小生成树不一定是唯一的。从Kruskal算法构造最小生成树的过程可以看出,当从图中选择当前权值最小的边时,如果存在多条这样的边,并且这些边与已经选取的边构成回路,此时这些边就不可能同时在一颗最小生成树中,对这些 边的不同选择结果可能会产生不同的最小生成树

5.时间复杂度与样本个数n有关,是指最深层的执行语句耗费时间,而递归算法与非递归算法在最深层的语句执行上是没有区别的,循环的次数也没有太大的差异。仅仅是确这循环是否继续的方式不同,递归用栈隐含循环次数,非递归用循环变量来显示循环资数而已

6.栈中的元素具有什么性质? 什么情况适合使用栈结构?

栈是只允许在表的一端进行插入与删除操作的特殊的线性表,表中允许做插入和删除操作的一端称之为栈顶,相应地,另一端称为栈底。正是因为有这样的限制,使得栈中的数据元素具有“后进先出”的特性。即最先进栈的元素一定是最后出栈的元素。

栈的特性决定了栈具有记忆“逆序”的功能,因为栈中元素出栈的顺序就是入栈顺序的逆序。因此,凡是需要记忆“逆序”的情况,在计算机中处理时都可以使用栈结构来实现。比如,要按照与进入使相反的顺序返回,可以把进入步骤的顺序入账,然后按出栈的步骤依次恢复。还有象程序的调用与返回,终端的调用与返回等要求按正、逆顺序处理的问题,计算机处理时都是利用栈来解决的。

7.利用中序线索是否能够实现二叉树的前序遍历?若不能,请说明理由;若能,请给出实现的基本思路。
利用中序线索可以实现前序遍历。实现的基本思路是:
从根节点开始前序遍历二叉树。
如果当前遍历的结点有左孩子,则其左孩子就说它的前序后件;
否则,如果当前遍历的结点有右孩子,则其有孩子就是他的前序后件;
不然,一定是叶子结点,此时只要沿中序后件线索查找,直至找到一个右孩子的结点,该右孩子即为当前所遍历结点的前序后件。
一直到查找完全部结点(最后一个结点的前序后件为空),则得到一个前序遍历序列
8.对有序表进行折半查找形成的折半查找树和二叉搜索树有何异同之处?
相同点:折半查找树和二叉搜索树都满足二叉搜索树的特性
不同点:折半查找树是平衡的二叉搜索树,而一般的二叉搜索树不一定平衡;折半查找树是用来描述对有序表进行折半查找的过程,并不实际存在,而二叉搜索树是实际存在的动态搜索结构。
9.对于逆序的有序序列,采用哪种基本排序方法排序的时间复杂度最低?
选择排序。因为选择排序中数据元素的移动次数与待排序序列的有序程度无关, 即是否完全逆序不会影响数据元素交换的次数;而对于冒泡排序和插入排序来说, 对完全逆序序列排序是效率最低的情况。
10.一个按递减排好序的数组是不是一个堆?为什么?
是一个堆。数组中元素可以看作完全二叉树中的元素,此时完全二叉树中所有分 支结点的元素值都大于其左、右孩子的结点值,因此它是一个最大堆

11.简述队列的上溢现象一般有几种解决方法。

一般要解决队列的上溢现象可有以下几种方法:

(1)可建立一个足够大的存储空间以避免溢出,但这样做往往会造成空间使用率低,浪费存储空间。
(2)要避免出现“假溢出”现象可用以下方法解决:第一种:采用移动元素的方法。每当有一个新元素入队,就将队列中已有的元素向队头移动一个位置,假定空余空间足够。第二种:每当删去一个队头元素,则可依次移动队列中的元素总是使front指针指向队列中的第一个位置。第三种:采用循环队列方式。将队头、队尾作是一个首尾相接的循环队列,即用循环数组实现,此时队首仍在队尾之上,作插入和删除运算时仍遵循“先进先出”的原则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

APP应用开发sdk版本过低可能性原因问题排查及解决方案

同学们,在移动 app 开发中,提示sdk版本过低缺找不到原因的情况都知道的吧哈哈哈,这个我觉得我有必要全面的分析和排查,让同学们看完这个文章都得以解决。这是我的初衷奈何地主家里也没有余粮呀(我也不能完全总结出来&a…

《动手学深度学习 Pytorch版》 8.7 通过时间反向传播

8.7.1 循环神经网络的梯度分析 本节主要探讨梯度相关问题,因此对模型及其表达式进行了简化,进行如下表示: h t f ( x t , h t − 1 , w h ) o t g ( h t , w o ) \begin{align} h_t&f(x_t,h_{t-1},w_h)\\ o_t&g(h_t,w_o) \end{ali…

用 Python 这样去创建词云不是更美嘛?

什么是词云?在网络上我们经常可以看到一张图片,上面有一大堆大小不一的文字,这便是词云。词云一般是根据输入的大量词语生成的,如果某个词语出现的次数越多,那么相应的大小就会越大。 Python 中有一个专门用来生成词云…

spring-cloud-starter-gateway踩坑

1.bean of type org.springframework.http.codec.ServerCodecConfigurer that could not be found. 需要将项目中用到的spring-boot-starter-web依赖给去掉 去掉以下的 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

智慧公厕:打造未来城市公共设施的智慧选择

随着信息技术的不断发展&#xff0c;城市公共设施需要实现个性化、高效化和智能化&#xff0c;其中包括公共厕所。智慧公厕是一种结合物联网、互联网、人工智能、云计算、大数据和传感感知等技术的新型公厕&#xff0c;旨在提高公共厕所管理效率、跨区域跨系统的联网管理、自动…

C# .Net6 指定WSDL, 生成Webservice,调用该接口服务

C# .Net6 指定WSDL, 调用该接口服务。 IDE&#xff1a; Microsoft Visual Studio Community 2022 (64 位)平台&#xff1a;.Net6协议&#xff1a;Soap协议 Xml格式 功能 需要开发一个前置机程序&#xff0c; 用于和硬件程序交互&#xff0c;已知条件是&#xff1a;嵌入式同事…

【C++入门 一 】学习C++背景、开启C++奇妙之旅

目录 1.什么是C2. C的发展史3. C的重要性3.1 语言的使用广泛度3.2 在工作领域1. 操作系统以及大型系统软件开发2. 服务器端开发3. 游戏开发4. 嵌入式和物联网领域5. 数字图像处理6. 人工智能7. 分布式应用 3.3 在校招领域3.3.1 岗位需求3.3.2 笔试题 4. 如何学习C4.1 别人怎么学…

WAL 模式(PostgreSQL 14 Internals翻译版)

性能 当服务器正常运行时&#xff0c;WAL文件不断被写入磁盘。但是&#xff0c;这些写操作是顺序的:几乎没有随机访问&#xff0c;因此即使是HDD也可以处理这个任务。由于这种类型的加载与典型的数据文件访问非常不同&#xff0c;因此有必要为WAL文件设置一个单独的物理存储&a…

数据结构之堆

目录 前言 堆的概念与结构 堆的实现 堆的初始化 堆的销毁 堆的显示 堆的插入 堆的向上调整算法 堆的删除 堆的向下调整算法 堆的判空 获取堆顶元素 堆的数据个数 堆的创建 前言 二叉树的顺序结构存储即使用数组存储&#xff0c;而数组存储适用于完全二叉树&#xf…

XSS攻击(2), XSS分类, 测试方法, 防御方法, 绕过方法

XSS攻击, XSS分类, 测试方法, 防御方法 对于所有类型的XSS渗透测试&#xff0c;确保您有适当的权限进行测试&#xff0c;以避免非法或不受欢迎的行为。 此外&#xff0c;渗透测试工具和框架&#xff0c;如Burp Suite或OWASP ZAP&#xff0c;可以帮助自动化一些测试任务并识别潜…

【具身智能综述1】A Survey of Embodied AI: From Simulators to Research Tasks

论文标题&#xff1a;A Survey of Embodied AI: From Simulators to Research Tasks 论文作者&#xff1a;Jiafei Duan, Samson Yu, Hui Li Tan, Hongyuan Zhu, Cheston Tan 论文原文&#xff1a;https://arxiv.org/abs/2103.04918 论文出处&#xff1a;IEEE Transactions on E…

柯桥银泰附近有学德语的地方吗,留学德语培训

01 die Garantiefr jemandem/etwas 给某人或某事的保障 Das System bietet die Garantie fr die Bauer. 02 der Gebrauch von etwas 使用某物 Wir haben den Gebrauch vom Computer gelerbt. 我们学会了使用电脑。 03 Die Geduld mit jemandem/etwas 对..的耐心 Der Lehre…

智慧河湖方案:AI赋能水利水务,构建河湖智能可视化监管大数据平台

一、方案背景 我国江河湖泊众多&#xff0c;水系发达。伴随着经济社会快速发展&#xff0c;水生态水环境问题成为群众最关注的民生议题之一。一些河流开发利用已接近甚至超出水环境承载能力&#xff0c;一些地区废污水排放量居高不下&#xff0c;一些地方侵占河道、围垦湖泊等…

如何在不恢复出厂设置的情况下解锁 Android 手机密码?

如何在不恢复出厂设置的情况下解锁 Android 手机密码&#xff1f; 当您忘记 Android 手机的密码时&#xff0c;可能会有压力&#xff0c;尤其是当您不想恢复出厂设置并删除所有数据时。但是&#xff0c;有一些方法可以在不诉诸如此激烈的步骤的情况下解锁手机。我们将在这篇文…

C#获取指定软件安装路径

作用 每个电脑安装的路径不一致会导致无法动态获取指定软件的安装路径&#xff0c;通过注册表来获取安装路径 代码 RegistryKey registryKeyPro Registry.LocalMachine.OpenSubKey("SOFTWARE\\****"); string installDir (string)(registryKeyPro.GetValue(&quo…

数据仓库扫盲系列(1):数据仓库诞生原因、基本特点、和数据库的区别

数据仓库的诞生原因 随着互联网的普及&#xff0c;信息技术已经深入到各行各业&#xff0c;并逐步融入到企业的日常运营中。然而&#xff0c;当前企业在信息化建设过程中遇到了一些困境与挑战。 1、历史数据积存。 过去企业的业务系统往往是在较长时间内建设的&#xff0c;很…

华为OD 打印任务排序(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…

电动汽车打气泵芯片方案

汽车轮胎打气泵方案采用高集成的SOC芯片设计&#xff0c;8位RISC架构的高性能单片机&#xff0c;集成了24Bit高精度ADC和LCD显示模块&#xff0c;内部集成8k*16Bits的MTP程序存储器&#xff1b;具有RISC CPU、模拟器功能、专用微控制等功能特点。丰富的芯片资源在汽车轮胎打气泵…

JavaSE编程题目练习(三)

博客昵称&#xff1a;架构师Cool 最喜欢的座右铭&#xff1a;一以贯之的努力&#xff0c;不得懈怠的人生。 作者简介&#xff1a;一名Coder&#xff0c;欢迎关注小弟&#xff01; 博主小留言&#xff1a;哈喽&#xff01;各位CSDN的uu们&#xff0c;我是你的小弟Cool&#xff0…

2023.10.20期中考核复现(misc)

杂项题就是2023陇剑杯的题目&#xff0c;可能还是不感兴趣吧&#xff0c;自从打完蓝帽杯之后除了web以外什么都没看 flow analysis 1 题目&#xff1a;What is the backdoor file name that comes with the server?( Including file suffix) 服务器附带的后门文件名是什么&am…