数据结构PTA
为LGD学员完成数据结构PTA课后作业设计1
悲伤的鸭肠
LGDer
喜欢就点个赞吧ㄟ(≧◇≦)ㄏ
展开
-
PTA 7-15 希尔排序
本题目要求读入N个整数,采用希尔排序法进行排序,采用增量序列{5,3,1},输出完成增量5和增量3后的5子排序和3子排序结果。输入不超过100的正整数N和N个整数(空格分隔)。输出两行,第一行为5子排序结果,第二为3子排序结果。数据间用一个空格分隔。为简便起见,最后一个元素后也有一个空格。原创 2024-07-13 07:57:24 · 459 阅读 · 0 评论 -
PTA 7-14 畅通工程之局部最小花费问题
某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。原创 2024-07-13 07:53:12 · 188 阅读 · 0 评论 -
PTA 7-13 军事单位光缆铺设-Prim算法
在多个军事单位之间铺设通信光缆,实现任意两个单位间都能进行通信互联。现已得到拟铺设光缆的各条路线费用,请编写程序计算需铺设哪几条线路,使造价最低且能满足互联互通。原创 2024-07-13 07:51:02 · 309 阅读 · 0 评论 -
PTA 7-6 构造散列表
设散列表a[18],散列函数是hask(k)=k%17,用开放地址法解决冲突hi=(h0+di)%m。冲突时,使用增量序列di=5i。计算输入序列(值>=0)对应的散列地址值。(输入个数不会超过15个)原创 2024-07-01 10:17:33 · 298 阅读 · 0 评论 -
PTA 7-9 构造哈夫曼树-有序输入
构造哈夫曼树,然后输出它树的中序序列。从小到大的顺序给出词频(不超过10个),根据词频构造哈夫曼树。为确保构建的哈夫曼树唯一,本题做如下限定:(1)选择根结点权值最小的两棵二叉树时,选取权值较小者作为左子树。(2)若多棵二叉树根结点权值相等,按先后次序分左右,先出现的作为左子树,后出现的作为右子树。如1 2 3,1与2合并后结点值也为3,3与3又会合并成一个结点6,则原来的3为其左子树,新合成的3为其右子树。原创 2024-06-17 19:25:56 · 261 阅读 · 0 评论 -
PTA 7-7 后序和中序构造二叉树
本题目要求用后序序列和中序序列构造一棵二叉树(树中结点个数不超过10个),并输出其先序序列。原创 2024-06-03 11:46:04 · 278 阅读 · 0 评论 -
PTA 7-6 先序和中序构造二叉树
本题目要求用先序序列和中序序列构造一棵二叉树(树中结点个数不超过10个),并输出其后序序列。原创 2024-06-03 10:56:41 · 289 阅读 · 2 评论 -
PTA R6-1 寻找链表元素的前驱结点
其中h和x是用户传入的参数,x为查找的元素。返回查找元素结点的地址。typedef struct node//结构体定义int data;//存储数据//指向下一个结点的指针//定义别名。转载 2024-06-03 08:14:03 · 496 阅读 · 0 评论 -
PTA 6-3 入侵者围剿第二关3情报解密
带头结点,head是头指针,last是尾指针,s是ptr类型的数组。为了对链表方便的取正中央位置,加了一个辅助数组(以空间换时间)。每遍历一个结点,把当前结点的地址存到数组s中,s的元素个数就是结点个数,s的元素值就是链表结点的地址。原创 2024-05-26 20:59:52 · 244 阅读 · 0 评论 -
PTA 7-5 开源情报之URL查重简化版-散列表查找
开源情报是指通过公开可用的数据和信息获取情报。随着信息技术的发展,互联网已成为各类情报组织的主要工具之一。在互联网上通过URL访问网站,开源情报系统通过海量的URL搜集信息,这些URL存在大量的重复,通过散列表可以快速的实现,目前实现中常用布隆过滤器的判重方式。本题中,为了简化编程,假设URL已经通过函数转换成了整数,并且采用简单的散列表实现。设散列表a[18],散列函数是hash(k)=k%17,用开放地址法解决冲突hi=(h0+di)%m。原创 2024-05-20 19:57:53 · 530 阅读 · 0 评论 -
PTA 7-4 开源情报之URL查重简化版-散列表构造
开源情报是指通过公开可用的数据和信息获取情报。随着信息技术的发展,互联网已成为各类情报组织的主要工具之一。在互联网上通过URL访问网站,开源情报系统通过海量的URL搜集信息,这些URL存在大量的重复,通过散列表可以快速的实现,目前实现中常用布隆过滤器的判重方式。本题中,为了简化编程,假设URL已经通过函数转换成了整数,并且采用简单的散列表实现。设散列表a[18],散列函数是hash(k)=k%17,用开放地址法解决冲突hi=(h0+di)%m。冲突时采用平方探测法,使用增量序列di=i2。原创 2024-05-20 09:35:02 · 255 阅读 · 2 评论 -
PTA 6-2 入侵者围剿第二关2情报解密
第一个函数是://创建一个有序新链表,值从两个有序链表ha,hb中复制第二个函数是://生成新结点s,新结点的值从p复制,然后将结点串接到链表尾部第三个函数是://两个链表有一个先结束,还没有结束的链表要整体复制到新链表中add功能:两个有序链表ha,hb进行合并运算,构成一个新的链表返回,原链表ha,hb保留。add需要调用createnode和addremaining函数。思路:p指向ha第一个元素,q指向hb第一个元素,循环条件是p和q都不为空,原创 2024-05-13 08:30:29 · 279 阅读 · 0 评论 -
PTA 6-1 入侵者围剿第二关1情报解密
在这里描述函数接口。例如://注意是带头结点的链表head是头指针,last是尾指针,insertNode的返回值是最新的尾指针,x是新结点的data值。printList不要打印头结点,只打印真正的元素列表。原创 2024-05-13 08:11:42 · 194 阅读 · 0 评论 -
PTA 6-13 表尾插入法构造链表
函数接口: ptr creat( );//构造链表 void output(ptr p);//输出链表元素其中p是用户传入的参数。creat函数返回链表的头指针,输入在creat函数中输入,以0表示输入结束。output函数输出链表元素,以一个空格隔开。原创 2024-04-22 08:04:51 · 313 阅读 · 0 评论 -
PTA 6-11 操作指针删除三个已串接结点中的第二个结点
返回值为第一个结点的地址。typedef struct node//结构体定义int data;//存储数据//指向下一个结点的指针snode,*ptr;//定义别名。原创 2024-04-12 21:05:09 · 264 阅读 · 0 评论 -
PTA 6-10 操作指针串接两个结点
返回值为第一个结点的地址。x1,x2为两个data需要用到的值。只需要实现Connet函数。typedef struct node//结构体定义int data;//存储数据//指向下一个结点的指针snode,*ptr;//定义别名。原创 2024-04-11 20:02:41 · 240 阅读 · 0 评论 -
PTA 6-8 用指针操作数组输入输出元素(指针做形参)
从键盘输入n(n原创 2024-04-09 20:56:29 · 433 阅读 · 0 评论 -
PTA 6-4 快速求最大最小值(分治法)
其中max和min函数分别用于求出最大成绩和最差成绩。原创 2024-04-08 21:23:09 · 717 阅读 · 0 评论 -
PTA 6-9 结构体指针形式输出
其中 p为结构体指针变量,要求在函数中输出p指向的元素到第一个元素的所有。提示:output(x+n-1);实参传递的是数组一个元素的地址,p接受这个地址后,p从这个地址开始循环到第一个元素通过地址输出元素值。原创 2024-04-08 20:13:27 · 305 阅读 · 0 评论 -
PTA 6-25 二叉树的遍历
*构造3个结点的二叉树。输入3个整数值, 输入的第一个值为根结点,第二个值为根结点的左儿子,第三个值为根结点的右儿子*///先序遍历//中序遍历//后序遍历其中p是用户传入的参数。原创 2024-04-06 21:23:47 · 533 阅读 · 0 评论 -
PTA 6-24 稀疏矩阵求和
/求a+b其中t1和t2表示稀疏矩阵a的长度和稀疏矩阵b的长度,函数返回a+b的长度。原创 2024-04-06 17:39:01 · 383 阅读 · 0 评论 -
PTA 6-12 表头插入法构造链表
函数接口: ptr creat( );//构造链表 void output(ptr p);//输出链表元素其中p是用户传入的参数。creat函数返回链表的头指针,输入在creat函数中输入,以0表示输入结束。output函数输出链表元素,以一个空格隔开。原创 2024-04-02 19:51:33 · 425 阅读 · 2 评论 -
PTA 7-23 冒泡排序
本题目要求读入N个整数,采用冒泡排序(上升法,即每轮得到一个最小值)进行排序,输出的排序结果只是前三趟。输入不超过100的正整数N和N个整数(空格分隔)。输出前三趟冒泡排序结果,空格分隔。为简便起见,最后一个元素后也有一个空格。原创 2024-04-01 20:36:58 · 745 阅读 · 2 评论 -
PTA 6-1 顺序表的插入
其中a是有序顺序表,*n是数组中元素的个数。x是待插入的元素,将x插入后保持顺序表中的元素仍然有序。原创 2024-03-18 07:59:23 · 807 阅读 · 0 评论 -
PTA 7-2 入侵者围剿第1关之-2对情报数据进行排序
2-为了便于进行数据破解,情报小组又对数据进行了重新排序,请实现排序算法,使得顺序表中作战序列按照时间顺序排列。第一行输入整数个数n(1≤n≤1000),再依次输入n个整数。本题只需要实现功能2,功能3留待后续继续实现。原创 2024-03-23 09:36:46 · 401 阅读 · 0 评论 -
PTA 6-2 顺序表的删除
其中a是顺序表,*n是数组中元素的个数。x是待删除的元素。返回值为1时表示删除成功,0表示表中无x元素。原创 2024-03-18 08:21:43 · 219 阅读 · 1 评论 -
PTA 7-1 入侵者围剿第1关-1存储敌军作战序列和删除干扰数据
第一行输入整数个数n(1≤n≤1000),再依次输入n个整数。本题只需要实现功能1,功能2、3留待后续继续实现。输出删除所有每逢第3个数据后的序列值。原创 2024-03-23 09:32:15 · 350 阅读 · 0 评论 -
PTA 7-3 入侵者围剿第1关-3最大子段和
情报小组对作战序列进行了进一步研究,发现整个序列中真正有效的作战序列是个最大子段和问题,也就是序列中的最大子段和才是敌方的真正作战序列。原创 2024-03-23 09:41:07 · 371 阅读 · 0 评论 -
PTA 6-3 构造有序顺序表
其中a是顺序表,n需构造的元素个数(无序数据)。process函数将此n个无序数据有序存放在数组a中。原创 2024-03-25 20:35:50 · 238 阅读 · 0 评论 -
PTA 6-7 两位数合并
其中a和b是需要合并的两位数;c指向合并后的值。原创 2024-03-30 08:23:16 · 411 阅读 · 0 评论 -
PTA 7-2 求解右最值问题
本题给定N(不大于20)个元素,求其解右最值问题。所谓“右最值”是指一个序列中某个元素比它的后面所有的元素值都要大的元素,则该元素称为最右值元素。如序列10,9,5,13,2,7,1,8,4,6,3,其最右值元素有13,8,6,3。原创 2024-04-01 19:53:39 · 261 阅读 · 0 评论