一、PTA实验作业

本周要求挑3道题目写设计思路、调试过程。设计思路用伪代码描述。题目选做要求:

  • 顺序表选择一题(6-2,6-3,7-1选一题),代码必须用顺序结构抽象数据类型封装
  • 单链表选择一题(6-1不能选)
  • 有序表选择一题

1.题目1:题目名称

顺序表:6-3 jmu-ds- 顺序表删除重复元素(25 分)

单链表:6-3 jmu-ds-链表倒数第m个数(20 分)

有序表:7-1 两个有序链表序列的合并(20 分)

2. 设计思路(伪代码或流程图)

顺序表:6-3 jmu-ds- 顺序表删除重复元素(25 分)

##根据题目给出条件

#创建顺序表

 CreateSqList(L,a,n)

定义变量i用以计数//整形变量

for i<-0 to n by 1

a[i]->L

end for//结束for循环

n->L的长度

end

#输出顺序表

DispSqList(L)

定义变量i用以计数//整形变量

for i<-0 to L->length by 1

输出L->data[i]

end for//结束for循环

if i<L->length-1

则 输出’空格”

end

#删除重复元素

DelSameNode(L)

定义变量i,j,k用以计数//整形变量

for i<-0 to L->length by 1  //for1

for j<-i+1 to L->length by 1  //for2

if L->data[i]等于L->data[j]

则  for k<-j to L->length-1 by 1  //for3

L->data[k]<-L->data[k+1]

end for//结束for3循环

L->length--

end if

end for//结束for2

end for//结束for1

if L->length等于2 //if1

则 if L->data[0]等于L->data[1]//if2

L->length--

end if //结束if2

end if //结束if1

end

单链表:6-3 jmu-ds-链表倒数第m个数(20 分)

##根据题目给出条件

#找倒数第m个数

Find(L,m )

定义变量j和i用以计数//整形变量
定义指针*q和*s
q<-L->next
s<-L
i<-0
while q不等于NULL
do  q<-q->next
i++
end //结束while
if i<m或m<=0
输入不合法返回 -1
end if
for j<-0 to i-m+1 by 1
s<- s->next
end for
返回 s->data
end

有序表:7-1 两个有序链表序列的合并(20 分)

type Linklist

Dim data As INTEGER//声明data为整形变量

设置指针 *next //指向后继节点

end Linklist

Linklist* creatlist(*L)//声明创建链表的函数

#主函数

定义指针*q,*p,*t,*x,*s1,*s2,*s3

为s1,s2,s3,q分配存储空间

置s1,s2,s3,q指针域为NULL

p<-s1;
t<-s2;
x<-s3;
s1<-creatlist(p)
s2<-creatlist(t)

p<-s1->next
t<-s2->next

while  p和t

do

if p->data<t->data  //1
x->next<-p
p<-p->next 
else

if p->data>t->data //2

x->next<-t;
t<-t->next;
else 

x->next <- p;
p <- p->next
x <- x->next
x->next <- t
t <- t->next //t
指向下一个节点
end if //2
end if //1
x <- x->next //
x指向下一个节点
end while

if p等于NULL并且t不等于NULL
x->next <- t;

if p不等于NULL并且t等于NULL
x->next<-p;
s3<-s3->next;
if s3不等于NULL
输出s3->data
s3=<-s3->next;
while s3不等于NULL
输出s3->data

end while
s3<-s3->next;

else

输出 NULL
end

#创建链表函数creatlist( *L)

定义指针*s,*r;
给r分配存储空间
r->next<-NULL;
s<-L;
输入r->data
while  r->data不等于-1
s->next<-r;
s<-s->next;
给r分配存储空间
r->next<-NULL
输入r->data
end while
 返回链表L

end

3.代码截图

顺序表:6-3 jmu-ds- 顺序表删除重复元素

单链表:6-3 jmu-ds-链表倒数第m个数

有序表:7-1 两个有序链表序列的合并

4.PTA提交列表说明。

顺序表:6-3 jmu-ds- 顺序表删除重复元素(25 分)

原因:弄错了变量名

原因:算法错误

更正:把双重for循环改为三重for循环

更正:第十八行处应该为L->length-1因为末尾不能有空格

单链表:6-3 jmu-ds-链表倒数第m个数(20 分)

原因:未认真选题写了多个函数

更正:删去多余函数

原因:21行j未从零开始

更正:j=0,遍历应从头节点开始

有序表:7-1 两个有序链表序列的合并(20 分)

原因:弄错了变量名

原因:声明函数名与代码中函数名不匹配;

更正:改成声明过的函数名


二、截图本周题目集的PTA最后排名

本次2个题目集总分:295分

1.顺序表PTA排名

2.链表PTA排名

3.我的总分:

pta总分:245分

总分:2.5分

三、本周学习总结

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

安排内容:

(1)学习时间安排:周末空闲时间,有时睡前时间;

(2)编程时间安排:晚自习后到断网时间、偶尔没课的时候;

(3)不懂问题是哪种方式交流?:与同学互相交流,进行讨论,并思考和对比自己的思路与他人的不同、翻查手头资料,找到自己的错误点,

并思考、利用网络、

改变:

学习时间的安排太过分散,时常因各种计划而改变。

并且我发现自己对基础知识的掌握不够熟练,应该先将书本知识好好掌握,再予以扩展。

还需要像挤出海绵里的水一样挤出时间,多学多练。

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

主观认识:线性表是一种最简单、最常用的数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。

具体小结:顺序表:便于随机存储,缺点是不便于插入删除等操作,因为插入删除一个元素需要移动其后的所有元素,但是链表不存在这个问题,链表只要改变指针就行,时间复杂度小链表于顺序表:便于插入删除等操作,但是随机存储没有顺序表方便。

3.代码Git提交记录截图

在码云的项目中,依次选择统计-Commits历史-设置时间段,进行搜索并截图,如下图所示,需要出现学号、项目提交说明。请在码云中将你的昵称改为“学号-姓名”。

PTA实验作业-01的更多相关文章

  1. 一、PTA实验作业

    一.PTA实验作业 1.题目1: 6-2 线性表元素的区间删除 2. 设计思路 定义i,j; 判断L,minD,maxD; while(i<l->Last) { 判断所有满足条件的数,de ...

  2. 一·PTA实验作业

    本周要求挑选3道题目写设计思路,调试过程.设计思路用伪代码描述.题目选做要求: 顺序表选择一题(6-2,6-3,7-1选一题) 单链表选择一题(6-1不能选) 有序表选择一题 一.题目 6-3 jmu ...

  3. C博客作业01——分支,顺序结构

    C博客作业01--分支,顺序结构 0.展示PTA总分 1本章学习内容 1.1学习内容总结 1)格式化输出函数printf(),scanf(). 它是什么? 对于初学者而言,一开始了解接触它们,只是被硬 ...

  4. C语言第一次实验报告————PTA实验1.2.3内容

    一.PTA实验作业 题目1.温度转换 本题要求编写程序,计算华氏温度100°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代 ...

  5. C博客作业01——分支、顺序结构

    1.本章学习总结 1.1思维导图 本章学习体会及代码量学习体会 1.2.1学习体会 在暑假的时候就有加入新生学习群,对C语言有一定的基础,所以这周的学习相对轻松,但一些细节方面的知识并不是很了解.在这 ...

  6. c语言博客作业01—分支、顺序结构

    1.本章学习总结  1.1 思维导图  1.2本章学习体会及代码量学习体会  1.2.1学习体会 这周 对c语言的学习 明显与其他同学相比较有些滞后,觉得很大原因是暑假没有看教学视频,课前没有预习课本 ...

  7. PTA实验报告(循环 数组 函数)

    一.循环PTA实验作业 题目一.7-2 求平方根序列前N项和 1.本题PTA提交列表 2.设计思路 本题调用了sqrt数学函数计算平方根,其次只用了一层循环,计算平方根之后使用循环累加计算总和sum. ...

  8. pta指针作业

    #PTA实验作业 6-1 本题pta提交列表 设计思路 本题是一道简单的指针程序题,两个数已经分别被指针定义,只要把用其指针把二者加在一起和减去即可 调试过程 本题无调试过程 代码截图 6-2  1. ...

  9. c博客作业01——顺序 分支结构

    本章学习总结 1.1 学习内容总结 ·学习switch分支的使用,switch后加括号(),括号内填一个变量或字符 如 switch (a) { case 2: case 3: default: } ...

随机推荐

  1. Django 事务

    Django事务 事务是通过将一组相关操作组合为一个,要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠.事务具有4个特性:原子性.一致性.隔离性.持久性. 默认情况下,在Djang ...

  2. 怎样将lua移植到arm平台的linux内核

    将脚本移植到内核是一件非常酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核.仅仅可惜仅仅支持x86.不支持arm,在网上搜索了下,没有找到 ...

  3. linux c编程:系统数据文件和信息

    linux系统相关的文件信息包含在/etc/passwd文件和/etc/group中.每次登录linux系统以及每次执行ls -l命令时都要使用口令文件.这些字段都包含在<pwd.h>中定 ...

  4. centos7下只需两个命令升级php版本

    我的php5.4 升级到5.6 sudo yum clean allsudo yum install -y php56w Resolving Dependencies --> Running t ...

  5. 【模式识别】CART和GML AdaBoost MATLAB TOOLBOX

    GML AdaBoost Matlab Toolbox是一款很优秀的AdaBoost工具箱,内部实现了Real AdaBoost, Gentle AdaBoost和Modest AdaBoost三种方 ...

  6. SM30维护视图创建【转】

           在SAP中,经常需要自定义数据库表.而且可能需要人工维护数据库表中的数据,可以通过SM30进行维护数据:但是SM30事务的权限太大,不适宜将SM30直接分配:因此,可以通过给维护表分配事 ...

  7. 数据库存储I/O类型分析与配置

    存储设备作为数据的容器,为应用提供数据存取服务,而存储系统将数据展现给不同的应用后,应用程序对数据访问不尽相同.简要来说,就是读和写,更加细分的话是以不同的传输单元(I/O大小)进行顺序和随机类型的读 ...

  8. ecmobile实现支付宝支付和百度云推送遇到的问题及解决方案(android)

    1.首先检测支付账户是否开通快捷支付服务,如果开通后,那么公钥是否上传(支付宝问题一定要找支付宝客服解决,找其他人没有用,支付宝客服可以帮你分析底层原因) 2.修改app配置文件:alipay_cal ...

  9. 深入理解利用new创建对象的执行过程以Person p=new Person("张三",20);为例

    代码如下: class Person { private String name="haha"; private int age; private static String co ...

  10. 常用JQuery设置HTML元素内容

    主要内容: 一.获取内容及属性 二.设置内容及属性 三.添加元素 四.删除元素 五.css()方法 六.寻找祖先及后代 一.获取内容及属性 二.设置内容及属性 相对于获取内容及属性的方式,只需在函数内 ...