
数据结构
文章平均质量分 78
一只可爱的小猴子
即使再小的帆也能远航,无论什么时候都要保持自信
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构第16周 :( 希尔排序+ 堆排序 + 快速排序 )
【问题描述】输入一组数据,以0作为输入的结束,分别采用冒泡排序、选择排序、快速排序的方法,对其进行从小到大的排序,给出排序后的结果。【问题描述】请用堆排序的方法对一组数据进行排序,并给出建堆以及每一趟堆排序的结果。【输入形式】原始数据,以0作为输入的结束;【问题描述】给出一组数据,请用希尔排序将其按照从小到大的顺序排列好。【输出形式】建大根堆的结果,以及每一趟堆排序的结果。【输入形式】一组数据,以0作为输入的结束。【输入形式】一组数据,以0作为输入的结束。【输出形式】每一趟增量排序后的结果。原创 2023-02-23 17:31:42 · 1307 阅读 · 0 评论 -
数据结构第15周 :( 求第k大的数 + 查找3个数组的最小共同元素 + 查找一个循环顺序数组的最小元素 + Crazy Search)
分析各种排序或查找算法的优缺点,分析解决具体问题的时间复杂度,进而找出更高效的算法。n与k的值不同,不同算法的效率也会有影响,如n=10, k=9时,可以找第2小的数。【问题描述】以循环排列的一组顺序的数据,存储在一维数组中,查找最小元素并输出。【输入形式】 第一行n k,第二行为n个数,都以空格分开。【输入形式】三个数组,均以0代表输入结束。【问题描述】查找3个数组的最小共同元素。【问题描述】 求n个数中第k大的数。【输入形式】一组数据,以0结束输入。【输出形式】 第k大的数。【输出形式】最小元素。原创 2023-02-23 17:28:27 · 981 阅读 · 0 评论 -
数据结构第14周 :( 二叉排序树的判定 + 二叉排序树 + 二叉查找树的后序遍历 + 八数码问题(哈希查找) + 世界上有2片相同的雪花吗)
在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。要求解的问题是:给出一种初始布局(初始状态)和目标布局,找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。【问题描述】输入一个整数数组,判断该数组是不是某二叉查找树的后序遍历的结果。【提示】若直接根据给定的中序是否有序来进行判断,此种判断方法不得分。【提示】后序遍历的最后一个结点一定是根结点,那么前面的数据就可以划分为比根小的、比根大的。若待删除的结点包含左右子树,则以其左子树的最右结点代替它。请根据输入的数据创建一棵二叉排序树。原创 2023-02-23 12:14:24 · 1863 阅读 · 0 评论 -
数据结构第13周 :( 迪杰斯特拉最短路径 + 弗洛伊德求最短路径 + 欧拉回路 + Invitation Cards)
对于第i行的第j个整数,如果大于0,则表示第i个顶点有指向第j个顶点的有向边,且权值为对应的整数值;当i和j相等的时候,保证对应的整数为0。在本题中,需要按照题目描述中的算法完成迪杰斯特拉算法,并在计算最短路径的过程中将每个顶点是否可达记录下来,直到求出每个可达顶点的最短路径之后,算法才能够结束。在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。原创 2023-02-23 12:09:04 · 1673 阅读 · 0 评论 -
数据结构第12周 :( 有向无环图的拓扑排序 + 拓扑排序和关键路径 + 确定比赛名次 + 割点 )
【问题描述】若在带权的有向图中,以顶点表示事件,以有向边表示活动,边上的权值表示活动的开销(如该活动持续的时间),则此带权的有向图称为AOE网。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。以后的n行中每行有n个用空格隔开的整数0或1,对于第i行的第j个整数,如果为1,则表示第i个顶点有指向第j个顶点的有向边,0表示没有i指向j的有向边。给出一个符合要求的排名。原创 2023-02-23 12:02:58 · 2142 阅读 · 0 评论 -
数据结构第11周 :(图的遍历及连通性 + 犯罪团伙 + 图形窗口问题 + 最小生成树的权值之和 + Jungle Roads )
警察抓到了 n 个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。已知含有n个顶点的带权连通无向图,采用邻接矩阵存储,邻接矩阵以三元组的形式给出,只给出不包括主对角线元素在内的下三角形部分的元素,且不包括不相邻的顶点对。窗口的边界上的点也属于该窗口。当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。原创 2023-02-04 10:27:09 · 2509 阅读 · 0 评论 -
数据结构综合项目:( 包裹的旅行综合项目)
包裹的旅行综合项目:从解决实际问题出发,以“包裹的旅行”项目进行研究,通过“购物体验”“订单管理”“物流运输”“智取包裹”四个环节,依次剖析数据的类型以及队列、树、图等数据结构。分析商家对订单有哪些管理操作,根据队列的特点,讨论卖家对订单的处理,如何排单、如何安排发货等,实现订单管理功能的具体编码。设计网站购物的物品的具体信息,分析对象并抽象出合适的数据类型,定义存储结构。例如商品名称、单价、数量等,订单中包含的数据等。通过对取包裹路线的分析,抽象出点线面的关系,并建立图的模型,计算出取包裹的最快路线。原创 2023-02-04 10:26:31 · 340 阅读 · 0 评论 -
数据结构第十周 :(带权路径长度 + 哈夫曼编码)
【输入形式】输入的第一行包含一个正整数n,表示共有n个字符需要编码。【问题描述】读入n个字符所对应的权值,自底向上构造一棵哈夫曼树,自顶向下生成每一个字符对应的哈夫曼编码,并依次输出。【问题描述】 输入一串正整数,正整数之间用空格键分开,请建立一棵哈夫曼树,以输入的数字作为叶子节点,求这棵哈夫曼树的带权路径长度。【输出形式】前n行,每行一个字符串,表示对应字符的哈夫曼编码。然后是某字符串的哈夫曼编码,某01序列的译码。【输入形式】 首先输入正整数的个数n,然后是对应的n个正整数,正整数个数不超过10个。原创 2023-02-04 10:25:45 · 1117 阅读 · 0 评论 -
数据结构第九周 :(数组存储的完全二叉树的先序遍历 + 二叉树的创建及求解二叉树的宽度 + 层次遍历二叉树 + 二叉树的深度及结点最远距离 + 中序线索二叉树)
【输入形式】 广义表表示的二叉树,结点元素类型为整型,且都大于0,例如:1( 2( 3 ( 4, 5 ) ), 6( 7, 8( 9, 10 ) ) )【问题描述】课后作业习题25:n个结点的完全二叉树顺序存储在一维数组a中,设计一个算法,实现对此二叉树的先序遍历。【问题描述】 考研真题:给定一颗二叉树,要求从下至上按层遍历二叉树,每层的访问顺序是从左到右,每一层单独输出一行。【样例输入】 1(2(3(4,5)),6(7,8(9,10))),字符串内没有空格。【输入形式】二叉树拓展的前序遍历序列。原创 2023-02-04 10:25:15 · 1707 阅读 · 0 评论 -
数据结构第八周 :( 数组循环右移K位 + 二叉树的创建及遍历 + 二叉树根据中序和后序求前序遍历 + 二叉树结点的共同祖先问题 + 二叉树左右子树交换操作 )
编写程序,将二叉树的每个结点的左、右子树进行交换,请注意不是只交换结点的data值,而是左、右孩子指针指向的交换,最后输出交换后的二叉树的后序遍历序列。【问题描述】假设二叉树采用二叉链表方式存储,root指向根结点,p所指结点和q所指结点为二叉树中的两个不同结点,且互不成为根到该结点的路径上的点,编程求解距离它们最近的共同祖先。【输出形式】结点数据值为 x 和结点数据值为 y 的最近的共同祖先,若没有共同祖先则输出NULL,请注意一个结点本身不能成为另一个结点的共同祖先。【输出形式】叶子结点的数目;原创 2023-02-04 10:23:52 · 1022 阅读 · 0 评论 -
数据结构第七周 :(稀疏矩阵快速转置 + 简单文本编辑器 + 三元组的矩阵加法 + 九宫格数独游戏 + 数组主元素 + 螺旋数字矩阵 + 蛇形矩阵)
玩家需要根据9X9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。接下来有r行,每行有c个整数,用空格隔开,表示这个稀疏矩阵的各个元素。第一排为分别为A、B元素的个数,以下各排分别输入对应的三元组,头m组为A中的元素,接下来为B的元素,同一个矩阵的元素按照行递增排列,第一行规定为1,同一行的元素按照列递增排列,第一列规定为1。【问题描述】这是一道2013年考研真题,已知一个整数序列A长度为N,其中若存在a,且a的个数大于N/2,则称a为A的主元素。原创 2023-02-04 10:23:01 · 1710 阅读 · 1 评论 -
数据结构第六周 :(公共钥匙盒 + 等值子串 + KMP模式匹配 + 大整数相乘 + 最长公共子串 + 匹配串 + 最长回文子串 + 年号字串)
每次取钥匙的时候,老师们都会找到自己所需要的钥匙将其取走,而不会移动其他钥匙。每次还钥匙的时候,还钥匙的老师会找到最左边的空的挂钩,将钥匙挂在这个挂钩上。有K位老师要上课,给出每位老师所需要的钥匙、开始上课的时间和上课的时长,假设下课时间就是还钥匙时间,请问最终钥匙盒里面钥匙的顺序是怎样的?每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。对于60%的评测用例,1 ≤ N, K ≤ 50,1 ≤ w ≤ N,1 ≤ s ≤ 300,1 ≤ c ≤ 50;原创 2023-01-29 00:02:20 · 1641 阅读 · 2 评论 -
数据结构第五周 :(进制转换问题 + 迷宫自动行走问题 + 杨辉三角形 + 队列元素逆置 + 银行排队 + 整数划分问题 + 卡特兰数)
每天刚开始时银行会开m个窗口来为我们total个客户办理业务,当有客户需要办理业务时,先选择可以办理业务的窗口,如果有多个窗口可以办理业务就选择空闲时间最长的窗口,如果有多个窗口空闲的时间一样长,则选择序号小的窗口办理业务。现在售票厅没钱,只有50元钱的人可以不用找钱顺利买票,而拿着100元整钱的人只有在前面有50元的情况下才能买票,因为只有这样,才能找零50元。【问题描述】有一个 10 x 10 的迷宫,起点是‘S’,终点是‘E’,墙是‘#’,道路是空格。【问题描述】杨辉三角形的打印,请用循环队列实现。原创 2023-01-29 00:01:32 · 1851 阅读 · 0 评论 -
数据结构第四周 :(双向循环链表排序 + 字符串镜像 + 表达式求值 + 线性表之小组综合题)
【问题描述】试写一个算法,识别依次读入的一个以“@”为结束符的字符序列是否为形如 “序列1&序列2” 模式的字符序列。其中序列1和序列2都不含字符 “&”,且序列2是序列1的逆序列。例如,“ a+b&b+a ”是属该模式的字符序列,而 “1+3&3-1”则不是。【问题描述】实现不带头结点的双向循环链表的创建,然后实现该双向循环链表上数据的排序。【注意】分别运用C和C++语言如何处理表达式中带小数的数据,输出数据请保留2位小数。【问题描述】栈的应用,给定一个以“#”作为结束符的算式,求出算式的结果。原创 2023-01-29 00:00:51 · 1590 阅读 · 0 评论 -
数据结构第三周 :(单链表排序 + 多项式相加 + 静态链表)
实际上静态链表与一般含有指针的链表没有太大的差别,只是静态链表的结点存放的空间不是在使用时临时分配的,而是在一开始就分配了固定的一些,一般是用数组。输入保证操作都合法。形如typedef int num一样,数组或者指针可以放在定义的类型名后面,例如将具有8个字符的姓氏定义为ElemType可以这样定义:typedef char ElemType[8]。【输入形式】第一行第一个数据n代表多项式的总项数,后面的2*n个数据,每一对代表对应的某一项的系数和指数,第二行类似,第三行的数据x要查询第几项。原创 2023-01-29 00:00:07 · 1197 阅读 · 1 评论 -
数据结构第二周 :(顺序表求差集 +左奇右偶调整顺序表 + 合并有序单链表)
【问题描述】用课堂中讲解的方法调整顺序表的数据,使得左边为奇数,右边为偶数,要求时间复杂度为O(n)。【问题描述】两个不带头结点的有序单链表LA和LB的合并,请合并到LA表中再输出,LB表的空间全部释放。【样例输入】25 34 57 50 16 48 9 62 0。【样例输出】25 9 57 50 16 48 34 62。【问题描述】两个顺序表集合的差集。【注意】0代表输入的结束。【注意】0代表输入结束。原创 2023-01-28 23:59:02 · 2644 阅读 · 0 评论