博客作业2---线性表

一、PTA实验作业(5分)

题目1:7-1 最长连续递增子序列

1. 设计思路

创造顺序表并记录他的长度为maxsize
innt max[maxsize]//保留最大数的所有数
用一个数组保留最大
for(int i=0;i<L->length-1;i++){
遍历数组里面的元素当后面一个结构体的数据小于前面的更新最大数组的大小和长度
比较长度,当长越过原来的数组时就直接替换。
}
完成输出销毁

2.代码截图

3.PTA提交列表说明。

当n为1是没有输出最大数列后更改。

题目2:6-4 集合的基本运算

1.设计思路

//链表元素递增函数(重构链表)
保留链表的表头和第一个节点。
while(r){
//r为原先链表的第二个节点
遍历新链表当数据小于某一个数的后一个节点的数据的时候完成连接,
r=r->next
}
//r为s1链表的工作指针
//p为s2链表的工作指针

//链表并集(二路归并)
while(p&&r)
if(p->data>r->data)
申请空间保留r里面的数据
连接到链表中
r向后移动
else if(p->data<r->data)
申请空间保留p里面的数据
连接到链表中
p向后移动
else
申请空间保留r里面的数据
连接到链表中
r,p都移动
}
完成输出摧毁并集链
while(p){
将p中剩下的节点都用开辟新空间连接节点的方式放到链表去
}
while(r){
将r中剩下的节点都用开辟新空间连接节点的方式放到链表去
}

//链表交集(二路归并)
while(p&&r)
if(p->data>r->data)
r向后移动
else if(p->data<r->data)
p向后移动
else
申请新空间将节点数据保留节点的数据并且连接到链表中去
r,p都移动
}
完成输出摧毁并集链

//链表差集(二路归并)
while(p&&r)
if(p->data>r->data)
r向后移动
else if(p->data<r->data)
申请空间保留p里面的数据
连接到链表中
p向后移动
else
r,p都移动
}
完成输出摧毁并集链
while(p){
将p中剩下的节点都用开辟新空间连接节点的方式放到链表去
}

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

在复制,黏贴重复步骤时没有把指针名字更改造成错误

题目3:7-4(选做) 一元多项式求导

2.设计思路

//截取了核心部分求导的函数设计思路
for(遍历整条链表)
if(节点内指数数据为0)时删除这个节点;
else 将链表的节点的zhishu-1 系数变为指数乘以系数

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

答案是 0 0 的时候没操作好后来修改了

二、截图本周题目集的PTA提交列表及最后排名。

PTA排名

1.顺序表PTA排名

2.链表PTA排名

3.我的总分:295

三、本周学习总结

1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?(1分)

有时间就打打代码很少看书,觉得应该增加一些书本代码的阅读来改进自己的代码风格。

2.谈谈你对线性表的认识?

线性表、包括顺序表和链表

顺序表里面元素的地址是连续的,

链表里面节点的地址不是连续的,是通过指针连起来的。

链表有利于保存数据(它的增加删除等操作会比较容易)

而顺序表比较适合作为查找数据的目录就像图书馆里面的搜索器。

二者可以相互结合来操作用会比较好一点单一使用二者之一的应用范围我认为比较局限。

3.代码Git提交记录截图。

四、阅读代码

题目描述:

在一个周长为10000的圆上等距分布着n个雕塑。现在又有m个新雕塑加入(位置可以随意放),希望所有n+m个雕塑在圆周上均匀分布。这就需要移动其中一些原有的雕塑。要求n个雕塑移动的总距离尽量小。

#include<cstdio>
#include<cmath>  

int main()
{
    int n, m;
    while(scanf("%d%d", &n, &m) == 2)
    {
        double ans = 0.0, pos = 0.0;
        for(int i = 1; i < n; i++)
        {
            pos = (double)i / n * (n+m);            //计算每个需要移动的雕塑的坐标(成比例缩小,目的是通过与floor作差得到移动距离~)
            ans += fabs(pos-floor(pos+0.5)) / (n+m);//累加移动距离
        }
        printf("%.4lf\n", ans*10000);               //等比例扩大坐标
    }
    return 0;
}  

分析题目可以知道总是有一个雕塑位置是不动的然后以这个雕塑为定点缩小题目周长的思想把题目简化,最后再放大回来,值得学习的思想。

原文地址:https://www.cnblogs.com/m208231833/p/8634793.html

时间: 2024-11-09 09:24:28

博客作业2---线性表的相关文章

博客作业02---线性表

一.PTA实验作业 1,题目1:线性表元素的区间删除 2. 设计思路(伪代码或流程图) 定义变量i,count用作计数 while(i小于表长) if(min<datai<max) count加一 else 存入第a个数,a++ 循环一次i加一 顺序表长度减少count return length end for 3.代码截图(注意,截图,截图,截图.不要粘贴博客上.不用用···语法去渲染) 4.PTA提交列表说明. 因为粗心导致标点符号错误,开始忘记减去删除的元素的长度. 题目2: jmu-

C语言博客作业--一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 定义变量n,i,j,max等于0,a[]10用于存放输入的值,b[10]用于存放a[]中各个数有多少个; 输入n的值 i从0开始,每次加1,输入a[i]的值,直到i==n结束循环 i从0开始,判断i是否<n,,进入下一步,每次加一,直到条件不满足 j从0开始,判断j是否<n,,进入下一步,每次加一,直到条件不满足 如果a[i]==a[j],b[i]加一 i从0开始,判断i是否 输出a[j

文件服务相关博客作业

nfs和sameba博客作业 博客实践作业: (1) nfs server导出/data/目录: (2) nfs client挂载/data/至本地的/mydata目录:本地的mysqld或mariadb服务的数据目录设置为/mydata, 要求服务能正常启动,且可正常 存储数据 (3) 客户端(lamp)部署wordpress,并让其正常访问:要确保能正常发文章,上传图片: (4) 客户端2(lamp),挂载nfs server导出的文件系统至/var/www/html:验正其wordpres

https的博客作业

博客作业:分别使用httpd-2.2和httpd-2.4实现 1.建立httpd服务,要求: (1) 提供两个基于名称的虚拟主机www1, www2:有单独的错误日志和访问日志: (2) 通过www1的/server-status提供状态信息,且仅允许tom用户访问: (3) www2不允许192.168.0.0/24网络中任意主机访问: 2.为上面的第2个虚拟主机提供https服务: 前提准备: 172.16.1.1测试httpd-2.4,这是centos7系统 172.16.1.2测试htt

博客作业1--抽象数据类型

一.作业题目 实验题目 试仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算如下所示: 1.构造有理数R,元素x1,x2分别被赋以分子.分母值 2.销毁有理数R 3.用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母. 4.将有理数R的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母 5.有理数R1,R2相加,结果存入有理数R3 6.有理数R1,R2相减,结果存入有理数

C语言第十次博客作业--结构体

#一.PTA实验作业(5分) ##题目1:6-3 结构体数组中查找指定编号人员 ###1. 本题PTA提交列表(要提交列表,不是结果) ###2. 设计思路 struct student { char num[10]; int year,month,day ; };该结构体表示人员的编号,出生年月日. 定义一个环境变量 for i=0 to i<8 若找到指定编号,则return *(std+i) ###3.代码截图(注意,截图,截图,截图.不要粘贴博客上.不用用···语法去渲染) ###4.本

C语言博客作业—一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 Begin 输入整数个数N 定义数组a[N] 输入数组a for(i 0 to N-1){//进行N次判断 for(j 0 to N-1) if(a[i]和a[j]相等) count加一 i等于0//第一次判断 使max=count; n=i;//n放下标,max放次数 i不等于0且count大于max 使max=count; n=i;//重新赋值 count为0//每次循环count为0

个人博客作业Week7(心得体会)

Alpha阶段结束了,内心可以说是五味杂陈.不是说我们的产品拿不上台面那般差劲,复杂的心绪主要来源于和别的队的比较,别的队才刚刚发布没多久访问量和注册量就破百了,并且还发起了找bug送红包的活动.可能是觉得付出了相同的努力,却没办法换回相同的效果,看来还是得审视自己的问题. 本周的个人作业是阅读关于软件开发本质和开发方法的博客/文章,结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得.借这个机会找一下我们的不足吧. 阅读材料目录:

个人博客作业1

发表在你的个人博客上,也可以同时转发到你的团队博客上来增加你们团队博客的人气.具体要求如下: 1)在开始实现程序之前,使用下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间. PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 8 Development 开发 · Analysis · 需求分析 (包括学习新技术) 0 · Design Spec · 生成设计文档 0.5