自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 python 求斐波那契数列第k项

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。输入格式:输入一行,包含一个正整数k(1<=k<=46)。输出格式:输出一行,包含一个正整数,表示菲波那契数列中第k个数。样例">输入样例:19输出样例:4181用递归会超时。k = int(input())if k ==1 or k == 2: print(1)else: .

2022-01-23 20:52:38 2472 1

原创 数据结构 快速排序

#include <iostream>#include <stdlib.h>using namespace std;typedef struct { int *data; int length;}SqList;SqList* InitList(int N){ SqList *L = (SqList*)malloc(sizeof(SqList)); L->data = (int*)malloc(sizeof(int)*(N+1).

2022-01-23 11:30:39 318

原创 数据结构 直接插入排序

#include <iostream>#include <stdlib.h>using namespace std;typedef struct { int *r; int length;}SqList;SqList* InitSqList(int N){ SqList *L = (SqList*)malloc(sizeof(SqList)); L->r = (int*)malloc(sizeof(int)*(N+1)); .

2022-01-23 11:29:16 331

原创 数据结构 堆排序

堆与堆排序 【对下面视频的总结】https://blog.csdn.net/Appleeatingboy/article/details/119607212?spm=1001.2014.3001.5501堆排序 【代码有问题?】https://www.bilibili.com/video/BV1Eb41147dK?spm_id_from=333.999.0.0#include <iostream>using namespace std;void Heapfi(int heap[.

2022-01-22 20:50:42 664

原创 7-2 二叉搜索树的删除操作

给出一棵二叉搜索树(没有相同元素), 请输出其删除部分元素之后的层序遍历序列。删除结点的策略如下:如果一个结点是叶子结点,则直接删除; 如果一个结点的左子树不为空, 则将该结点的值设置为其左子树上各结点中的最大值,并继续删除其左子树上拥有最大值的结点; 如果一个结点的左子树为空但右子树不为空,则将该结点的值设置为其右子树上各结点中的最小值,并继续删除其右子树上拥有最小值的结点。输入格式:每个输入文件包含一个测试用例。每个测试用例的第一行包含一个整数N(0<N<=100),表..

2022-01-21 20:21:07 1337 1

原创 7-1 建立二叉搜索树并查找父结点

按输入顺序建立二叉搜索树,并搜索某一结点,输出其父结点。输入格式:输入有三行: 第一行是n值,表示有n个结点; 第二行有n个整数,分别代表n个结点的数据值; 第三行是x,表示要搜索值为x的结点的父结点。输出格式:输出值为x的结点的父结点的值。 若值为x的结点不存在,则输出:It does not exist. 若值为x的结点是根结点,则输出:It doesn't have parent.输入样例:2203020输出样例:It doesn't have parent

2022-01-21 19:19:53 1819

原创 7-45 航空公司VIP客户查询 【哈希表 链地址法】

不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务。现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会员里程积分的功能。输入格式:输入首先给出两个正整数N(≤105)和K(≤500)。其中K是最低里程,即为照顾乘坐短程航班的会员,航空公司还会将航程低于K公里的航班也按K公里累积。随后N行,每行给出一条飞行记录。飞行记录的输入格式为:18位身份证号码(空格)飞行里程。其中身份证号码由17位数字加最后一位校验码组成,

2022-01-21 18:44:47 307

原创 7-4 二叉搜索树的最近公共祖先 【题目解析】

给定一棵二叉搜索树的先序遍历序列,要求你找出任意两结点的最近公共祖先结点(简称 LCA)。输入格式:输入的第一行给出两个正整数:待查询的结点对数 M(≤1 000)和二叉搜索树中结点个数 N(≤10 000)。随后一行给出 N 个不同的整数,为二叉搜索树的先序遍历序列。最后 M 行,每行给出一对整数键值 U 和 V。所有键值都在整型int范围内。输出格式:对每一对给定的 U 和 V,如果找到A是它们的最近公共祖先结点的键值,则在一行中输出LCA of U and V is A.。但...

2022-01-21 14:12:07 1598

原创 7-2 家庭房产

给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积其中编号是每个人独有的一个4位数的编号;父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1);k(0≤k≤5)是该人的子女的个数;孩子i是其子女的编号。输出格式:首先在第一行输出家庭个数(所有有亲属关系的人都属于同一个家庭

2022-01-20 18:15:16 687

原创 图 【并查集】 个人学习记录

【算法】并查集(Disjoint Set)[共3讲]https://www.bilibili.com/video/BV13t411v7Fs?p=1代码规范:#include <iostream>using namespace std;#define MAXN 20001int parent[MAXN];int Rank[MAXN];void init(int n){ for(int i=0;i<n;i++) { parent[i].

2022-01-20 18:09:28 42

原创 7-7 六度空间 PTA(图的广度优先遍历)

“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学家努力追求的目标。然而由于历史的原因,这样的研究具有太大的局限性和困难。随着当代人的联络主要依赖于电话、短信、微信以及因特网上即时通信

2022-01-17 12:54:17 221

原创 7-4 关键活动 (拓扑序列+关键路径)代码知识点详解

假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如C程序设计和数据结构两门课,必须先学习前者。但是需要注意的是,对一组子任务,并不是任意的任务调度都是一

2022-01-16 19:48:56 619

原创 7-3 最短工期 (拓扑排序+关键路径) 代码详解

一个项目由若干个任务组成,任务之间有先后依赖顺序。项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务。现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工时间。输入格式:首先第一行给出两个正整数:项目里程碑的数量 N(≤100)和任务总数 M。这里的里程碑从 0 到 N−1 编号。随后 M 行,每行给出一项任务的描述,格式为“任务起始里程碑 任务结束里程碑 工作时长”,三个数字均为非负整数,以空格分隔。输出格式:如果整个项目的安排是合理可行的,在

2022-01-16 19:10:41 1637

原创 7-2 公路村村通 迪杰斯特拉(dijkstra)算法

现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 31 4

2022-01-15 21:52:01 317

原创 7-2 公路村村通 普里姆(Prime)算法

现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 31 4

2022-01-15 19:12:29 205

原创 《数据结构》 图的创建与遍历 代码表示

测试数据:10 15 //共10个顶点,15条边0 1 08 0 0 //第一、二个数表示连接两个顶点的起始顶点。第三个数1表示单通行,0表示双向通行4 8 15 4 05 9 10 6 07 3 18 3 12 5 02 1 11 5 01 4 09 7 13 1 06 3 1完整代码:#include <iostream>#include <stdlib.h>#include <queue>using names

2022-01-15 13:44:38 568

原创 7-1 哈夫曼编码(实验) 最全代码解析

给定一段文字,如果我们统计出字母出现的频率,是可以根据哈夫曼算法给出一套编码,使得用此编码压缩原文可以得到最短的编码总长。然而哈夫曼编码并不是唯一的。例如对字符串"aaaxuaxz",容易得到字母 'a'、'x'、'u'、'z' 的出现频率对应为 4、2、1、1。我们可以设计编码 {'a'=0, 'x'=10, 'u'=110, 'z'=111},也可以用另一套 {'a'=1, 'x'=01, 'u'=001, 'z'=000},还可以用 {'a'=0, 'x'=11, 'u'=100, 'z'=101},

2022-01-14 11:13:29 4412 3

原创 数字形式转换 I (Python)

获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬0到9对应的中文字符分别是:零一二三四五六七八九‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬输入示例1‪

2022-01-12 18:04:49 1494

原创 7-4 列出叶结点

对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。输入格式:首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 "-"。编号间以 1 个空格分隔。输出格式:在一行中按规定顺序输出叶节点的编号。编号间以 1 个空格分隔,行首尾不得有多余空格。输入样例:81 -- -0 -2 7- -- -5 -4 6输出样例:

2022-01-12 17:12:32 556

原创 7-3 玩转二叉树

给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7输出样

2022-01-12 14:17:22 500

原创 7-2 树的遍历

给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 6 3 5 7 2代码段:本题是二叉树的层序遍历,建议

2022-01-12 14:00:19 254

原创 7-1 根据后序和中序遍历输出先序遍历

本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式:在一行中输出Preorder: 以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:Preorder: 4 1 3 2 6 5 7

2022-01-12 13:37:08 649

原创 7-2 银行业务队列简单模拟

设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。输出格式:按业务处理完成的顺序

2022-01-11 12:27:14 325

原创 7-1 列车厢调度

1 ====== <--移动方向 / 3 ===== \ 2 ====== -->移动方向 大家或许在某些数据结构教材上见到过“列车厢调度问题”(当然没见过也不要紧)。今天,我们就来实际操作一下列车厢的调度。对照上方的ASCII字符图,问题描述如下:有三条平行的列车轨道(1、2、3)以及1-3和2-3两段连接轨道。现有一列车厢停在1号轨道上,请利用两条连接轨道以及3号轨道,将车厢按照要求的顺序转移到...

2022-01-11 11:55:07 147

原创 7-1 稀疏矩阵加法 PTA

给定两个矩阵A和B,求其和矩阵C=A+B。输入格式:第一行包含两个数Row和Col,分别表示矩阵的行数和列数,A和B的维度是一致的。第二行只有一个数N1​,表示接下来要输入的A中的非零元素的个数。接下来是N1​行,每一行都是i j A[i,j] 这样的形式,表示的A中第i行第j列的元素A[i,j],为了与大多数编程语言保持一致,它们都是从零开始的,也就是说下标的有效范围是[0,Row−1]×[0,Col−1]。在N1​行之后,是一个数N2​,表示矩阵B中非零元素的数量,此后N2​行描述B

2022-01-07 13:51:03 982

原创 7-2 三元组顺序表表示的稀疏矩阵转置运算Ⅰ

三元组顺序表表示的稀疏矩阵转置。输入格式:输入第1行为矩阵行数m、列数n及非零元素个数t。 按行优先顺序依次输入t行,每行3个数,分别表示非零元素的行标、列标和值。输出格式:输出转置后的三元组顺序表结果,每行输出非零元素的行标、列标和值,行标、列标和值之间用空格分隔,共t行。输入样例1:3 4 30 1 -51 0 12 2 2输出样例1:0 1 11 0 -52 2 2完整代码:#include <iostream>#inclu..

2022-01-07 13:24:44 1445 1

原创 7-1 约瑟夫环 (含实验报告)

N个人围成一圈顺序编号,从1号开始按1、2、3......顺序报数,报p者退出圈外,其余的人再从1、2、3开始报数,报p的人再退出圈外,以此类推。 请按退出顺序输出每个退出人的原序号。输入格式:输入只有一行,包括一个整数N(1<=N<=3000)及一个整数p(1<=p<=5000)。输出格式:按退出顺序输出每个退出人的原序号,数据间以一个空格分隔,但行尾无空格。样例">输入样例:在这里给出一组输入。例如:7 3输出样例:3 6 2 7 5

2022-01-06 19:12:53 3544 1

原创 7-1 串的模式匹配(kmp算法) 知识点+练习

给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出。如果找不到,则输出“Not Found”。本题旨在测试各种不同的匹配算法在各种数据情况下的表现。各组测试数据特点如下:数据0:小规模字符串,测试基本正确性; 数据1:随机数据,String 长度为105,Pattern 长度为10; 数据2:随机数据,String 长度为105,Pattern 长度为102; 数据3...

2022-01-06 18:22:24 1368 1

原创 7-4 括号匹配 PTA

给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。输入格式:输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。输出格式:如果括号配对,输出yes,否则输出no。输入样例1:sin(10+20)输出样例1:yes输入样例2:{[}]输出样例2:no代码实现:#include <iostream>#.

2022-01-05 12:57:24 1425 1

原创 7-3 表达式转换 PTA

算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入样例:2+3*(7-4)+8/4输出样例:2 3 7 4 - * + 8 4 / .

2022-01-05 12:25:52 1045

原创 7-1 回文判断 PTA

回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。输入格式:输入待判断的字符序列,按回车键结束,字符序列长度<20。输出格式:若字符序列是回文,输出“YES”;否则,输出“NO”。输入样例:abdba输出样例:YES利用c++内的stack来实现回文判断:#include <iostream>#include <stack>.

2022-01-05 11:19:46 1880

原创 7-4 在有序链表中插入数据 PTA

给定一批严格递增排列的整型数据,给定一个x,若x不存在,则插入x,要求插入后保持有序。存在则无需任何操作。输入格式:输入有两行: 第一个数是n值,表示链表中有n个数据。后面有n个数,分别代表n个数据。 第二行是要插入的数。输出格式:输出插入后的链表数据,以空格分开。行末不能有多余的空格。输入样例1:在这里给出一组输入。例如:5 1 3 6 9 114输出样例1:在这里给出相应的输出。例如:1 3 4 6 9 11输入样例2:在这里给出一组输入。.

2022-01-04 16:38:49 5244

原创 7-3 两个有序链表序列的合并 PTA

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5 -12 4 6 8 10 -1输出样例:1 2 3 4 5 6 8 10#include <iostre

2022-01-04 14:36:44 1458

原创 7-2 求集合交集

求整数集合A与整数集合B的交集。输入格式:输入有三行:第一行是A和B的元素个数m和n(m,n <=100);第二行是集合A的m个元素;第三行是集合B的n个元素。输出格式:输出交集的所有元素(按照在A集合出现的顺序输出,最后一个输出后面没有空格)。 若交集为空,输出“NULL”。输入样例:在这里给出一组输入。例如:3 410 9 29 10 8 0输出样例:在这里给出相应的输出。例如:10 9#include <iostr.

2022-01-04 11:09:42 1619

原创 7-1 顺序表的建立及遍历 PTA

读入n值及n个整数,建立顺序表并遍历输出。输入格式:读入n及n个整数输出格式:输出n个整数,以空格分隔(最后一个数的后面没有空格)。样例">输入样例:在这里给出一组输入。例如:4-3 10 20 78输出样例:在这里给出相应的输出。例如:-3 10 20 78#include <iostream>#include <stdlib.h>using namespace std;#define MAXSIZE 20type

2022-01-04 10:52:38 3112

数据结构实验 Joseph问题-实验报告 【河北工业大学】

[1] 实验内容、[2] 实验目的、[3] 程序清单、[4] 调试步骤、[5] 运行结果、[6] 分析与思考

2022-01-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除