![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 86
猪脚王
想不开的时候,就挤时间多看书。有时候就觉得,越想解决什么问题的时候,就越能在书本里找到想要的答案。
展开
-
数据结构与算法Python版MOOC笔记及练习【七】
数据项保存在像列表这样的集合中,我们会称这些数据项具有线性或者顺序关系。在Python List中,这些数据项的存储位置称为下标,这些下标都是由序的整数。通过下标,我们就可以按照顺序来访问和查找数据项,这种技术称为“顺序查找”。1.要对查找算法进行分析,首先要确定其中的基本计算步骤。2.回顾第二章算法分析的要点,这种基本计算步骤必须要足够简单,并且在算法中反复执行。3.在查找算法中,这种基本计算步骤就是进行数据项的比对。(当前数据项等于还是不等于要查找的数据项,比对的次数决定了算法复杂度)在顺序查找原创 2022-06-06 20:35:27 · 762 阅读 · 0 评论 -
数据结构与算法Python版MOOC笔记及练习【六】
文章目录什么是分治策略什么是优化问题什么是贪心策略什么是分治策略分治策略是一种典型解决问题的策略,将问题分为若干更小规模的部分,通过解决每一个小规模部分问题,并将结果汇总得到原问题的解。什么是优化问题计算机科学中许多算法都是为了找到某些问题的最优解。什么是贪心策略在对问题求解时,总是做出在当前看来是最好的选择。...原创 2022-06-01 21:04:34 · 568 阅读 · 0 评论 -
数据结构与算法Python版MOOC笔记及练习【五】
文章目录一、什么是递归递归三定律递归应用递归调用的实现递归可视化课程练习一、什么是递归递归是一种解决问题的方法,其将问题分解为规模更小的相同问题,在算法流程中调用自身,直到问题规模小到可以用非常简单直接的方式来解决。递归三定律1、递归算法必须有一个基本结束条件(最小规模问题的直接解决)2、递归算法必须能改变状态向基本结束条件演进(减少问题规模)3、递归算法必须调用自身(解决减小了规模的相同问题)递归应用将整数转换为任意进制递归调用的实现当一个函数被调用的时候,系统会把调用时的现场数据压原创 2022-05-26 22:16:45 · 304 阅读 · 0 评论 -
数据结构与算法Python版MOOC笔记及练习【四】
文章目录什么是队列什么是队列队列是一种有次序的数据集合,其特征是新数据的添加总发生在尾端,而现存数据项的移除总发生在首端,即“先进先出”。队列仅有一个入口和一个出口,不允许数据项直接插入队中,也不允许从中间移除数据项。...原创 2022-05-25 16:10:20 · 342 阅读 · 0 评论 -
数据结构与算法Python版MOOC笔记及练习【三】
在前缀和后缀表达式中,操作符的次序完全决定了运算的次序,不再有混淆。因此在很多情况下,表达式的计算机表示都避免用复杂的中缀表达式。(A+(B*C))显示表达了计算次序,每一对括号都包含了一组完整的操作符和操作数。...原创 2022-05-14 21:37:56 · 564 阅读 · 0 评论 -
数据结构与算法Python版MOOC笔记及练习【二】
文章目录一、区分程序和算法一、区分程序和算法算法是对问题解决得分布描述,而程序是采用某种编程语言实现的算法。同一个算法通过不同的编程语言能产生很多程序。同一个算法采用不同的编程语言编写,放在不同的机器上运行,得到得运行时间不一样。...原创 2022-05-14 11:43:04 · 320 阅读 · 0 评论 -
数据结构与算法Python版MOOC笔记及练习【一】
课程初识这是一门关于python编程基础的进阶课,可以学到把数据组织起来,进行有效的处理,已解决问题。学习背景1、人类在各个领域生产生活,无时无刻不在生产者巨量的数据,整个世界就是数据和算法。2、尚未解决的问题,人们试图通过数学建模,采用数学工具来解决,或者试图转换表述、明晰问题来部分解决。但有些问题天然无法明确表述(主观、价值观、意识形态、哲学问题等)。学习目标编程是通过一种程序设计语言,将抽象的算法实现为计算机可以执行的代码的过程。课程练习1单选(2分)以下关于基于有穷观点的能行方原创 2022-05-12 14:01:23 · 660 阅读 · 0 评论 -
武汉大学数据结构MOOC第14周测验
1单选(2分)外排序和内排序的主要区别是( )。A.内排序所需内存小,而外排序所需内存大B.内排序不涉及内、外存数据交换,而外排序涉及内、外存数据交换C.内排序的数据量小,而外排序的数据量大D.内排序速度快,而外排序速度慢正确答案:B课本考据:1、在排序过程中,若整个表都放在内存中处理,排序时不涉及数据的内、外存交换,则称为内排序;2、在排序过程中,若要进行数据的内、外存交换,则称为外排序。2单选(2分)以下关于外排序的叙述中正确的是( )。A.外排序把外存文件调入内存,再利用内排序原创 2022-04-28 19:27:18 · 1483 阅读 · 0 评论 -
武汉大学数据结构MOOC第13周测验
1单选(2分)以下关于排序的叙述中正确的是( )。A.在顺序表上实现的排序方法在链表上也同样适合B.排序方法都是在顺序表上实现的,在链表上无法实现排序方法C.对同一个顺序表使用不同的排序方法进行排序,得到的排序结果可能不同D.稳定的排序方法优于不稳定的排序方法,因为稳定的排序方法效率较高正确答案:C解析: C、稳定的排序方法的效率不一定都比不稳定的排序方法高。有些排序方法既可以上顺序表上实现,也可以在链表上实现,但不是所有的排序方法都如此。由于排序方法具有不同的稳定性,所以对同一个顺序表(原创 2022-04-26 21:39:49 · 1929 阅读 · 0 评论 -
武汉大学数据结构MOOC第12周测验
原创 2022-04-13 21:56:02 · 2184 阅读 · 0 评论 -
武汉大学数据结构MOOC第11周测验
1单选(2分)一个无向连通图的生成树是含有该连通图的全部顶点的( )。A.极大连通子图B.极大子图C.极小连通子图D.极小子图正确答案:C2单选(2分)任何一个非空带权无向连通图( )最小生成树。A.可能不存在B.一定有多棵C.有一棵或多棵D.只有一棵正确答案:C3单选(2分)用Prim算法求一个连通的带权图的最小代价生成树,在算法执行的某时刻,已选取的顶点集合U={1,2,3}已选取的边的集合TE={(1,2),(2,3)}要选取下一条权值最小的边,应当从( )组中选取。A.原创 2022-03-30 21:17:53 · 2794 阅读 · 0 评论 -
武汉大学数据结构MOOC第9周测验
1单选(2分)一颗二叉树的括号表示为“1(2(4,5(6,7)),3)”)。设N代表二叉树的根,L代表根节点的左子树,R代表根节点的右子树。若遍历后的节点序列为3,1,7,5,6,2,4,则其遍历方式是( )。A.RLNB.RNLC.NRLD.LRN正确答案:B2单选(2分)若二叉树(每个节点值为单个字符)的中序遍历序列是abcdef,且c为根节点,则( )。A.节点c有两个孩子B.以上都不对C.二叉树有两个度为0的节点D.二叉树的高度为5正确答案:A解析: A、从中序序列看出原创 2022-03-16 20:28:19 · 1479 阅读 · 0 评论 -
武汉大学数据结构MOOC第10周测验
1单选(2分)在一个具有n个顶点的无向连通图中至少有( )条边。得分/总分A.n/20.00/2.00B.n+1C.n-1D.n正确答案:C你错选为A解析: C、树图是边数最少的连通图,其边数=n-1。2单选(2分)设G是一个含有6个顶点的无向图,该图至多有( )条边。得分/总分A.6B.152.00/2.00C.7D.5正确答案:B你选对了解析: B、边数最多时为完全无向图,有n(n-1)/2=15条边。3单选(2分)在一个具有n原创 2022-03-23 22:27:47 · 2841 阅读 · 0 评论 -
武汉大学数据结构MOOC第8周测验
1单选(2分)树最适合用来表示( )。A.元素之间无联系的数据B.元素之间具有层次关系的数据C.有序数据元素D.无序数据元素正确答案:B2单选(2分)现有一“遗传”关系,设x是y的父亲,则x可以把他的属性遗传给y。表示该遗传关系最适合的数据结构为( )。A.线性表B.数组C.树D.图正确答案:C3单选(2分)一棵节点个数为n、高度为h的m(m≥3)次树中,其分支数是( )。A.n+hB.h-1C.n-1D.nh正确答案:C4单选(2分)若一棵3次树中有2个度为3的节点原创 2022-03-13 16:57:04 · 2194 阅读 · 0 评论 -
武汉大学数据结构MOOC第7周测验
1单选(2分)有一个三维数组A[-2…2][-4…5][2…6],其中元素个数是( )。A.144B.60C.396D.250正确答案:D解析: D、A的第1维长度为5,第2维长度为10,第3维长度为5,元素个数=5×10×5=250。2单选(2分)设C/C++二维数组a[m][n],每个数组元素占用k个存储单元,第一个数组元素的存储地址是LOC(a[0][0]),求按行优先顺序存放的数组元素a[i][j](0≤i≤m-1,0≤j≤n-1)的存储地址为( )。A.LOC(a[0][0])原创 2022-03-08 22:22:37 · 3307 阅读 · 11 评论 -
武汉大学数据结构MOOC第6周测验
1单选(2分)一个正确的递归算法通常包含( )。A.递归出口B.递归体C.递归出口和递归体D.以上都不包含正确答案:C解析: C、正确的递归算法应包含递归出口和递归体两部分,缺一不可。2单选(2分)递归函数f(x,y)定义如下:f(x,y)=f(x-1,y)+f(x,y-1) 当x>0且y>0f(x,y)=x+y 否则则f(2,1)的值是( )。A.1B.2C.3D.4正确答案:D解析: D、f(2,1)=f(1原创 2020-11-15 22:01:35 · 1794 阅读 · 0 评论 -
武汉大学数据结构MOOC第5周测验
1单选(2分)下面关于串的叙述中,正确的是( )。A.串是一种特殊的线性表B.串中元素只能是字母C.空串就是空白串D.串的长度必须大于零正确答案:A解析: A、串是一种特殊的线性表,其元素为单个字符,长度可以为0。2单选(2分)两个字符串相等的条件是( )。A.串的长度相等B.含有相同的字符集C.都是非空串D.两个串的长度相等且对应位置的字符相同正确答案:D3单选(2分)若串str=“Software”,其子串的个数是( )。A.8B.9C.36D.37正确答案:D解原创 2020-11-15 11:22:12 · 4448 阅读 · 0 评论 -
武汉大学数据结构MOOC第4周测验
1单选(2分)栈的“先进后出”特性是指( )。A.最后进栈的元素总是最先出栈B.同时进行进栈和出栈操作时,总是进栈优先C.每当有出栈操作时,总要先进行一次进栈操作D.每次出栈的元素总是最先进栈的元素正确答案:A2单选(2分)给定一个足够大的空栈,有4个元素的进栈次序为A、B、C、D,则以C、D开头的出栈序列的个数为( )。A.1B.2C.3D.4正确答案:A解析: A、若出栈序列为CD…,则A、B、C进栈,C出栈,D进栈,D出栈,此后只有B出栈和A出栈一种情况,所以这样的出栈序列只有原创 2020-11-12 12:02:58 · 6427 阅读 · 1 评论 -
武汉大学数据结构MOOC第3周测验
1单选(2分)与单链表相比,双链表的优点之一是( )。A.插入、删除操作更简单B.可以进行随机访问C.可以省略表头指针或表尾指针D.访问前后相邻节点更方便正确答案:D解析: D、在双链表中可以访问任一节点的前后相邻节点,而单链表中只能访问任一节点的下一个节点。2单选(2分)带头节点的双链表L为空表时应满足( )。A.L == NULLB.L->prior == L->nextC.L->prior == NULLD.L->nex t == NULL正确答案:D原创 2020-11-10 17:07:57 · 5485 阅读 · 0 评论 -
武汉大学数据结构MOOC第2周测验
1单选(2分)线性表是( )。A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空正确答案:A解析: A、线性表是具有n(n≥0)个数据元素的有限序列。课本考据:线性表是具有相同特征的数据元素的一个有限序列。当 n=0时,表示线性表是一个空表,即不包含任何元素。2单选(2分)线性表的基本运算ListInsert(&L,i,e)表示在线性表L中第i个位置上插入一个元素e,若L的长度为n,则i的合法取值是( )。A.1≤i≤n原创 2020-11-05 21:13:24 · 8094 阅读 · 0 评论 -
武汉大学数据结构MOOC第1周测验
1单选(2分)计算机所处理的数据一般具备某种内在联系,这是指( )。A.数据和数据之间存在某种关系B.元素和元素之间存在某种关系C.元素内部具有某种结构D.数据项和数据项之间存在某种关系正确答案:B解析: B、在数据结构中讨论的关系指的是元素和元素之间的关系。课本考据:数据是描述客观事物的数和字符的集合,人们通常以数据元素作为数据的基本单位。其中数据元素也成为元素、结点、顶点或者记录。2单选(2分)在数据结构中,与所使用的计算机无关的是数据的( )结构。A.逻辑B.存储C.逻辑和存储原创 2020-10-30 11:29:27 · 4820 阅读 · 0 评论