码迷,mamicode.com
首页 > 其他好文 > 详细

博客作业2---线性表

时间:2018-03-26 00:44:55      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:循环   之间   end   技术   类型   排列   基本操作   alt   不用   

一、PTA实验作业

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

给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。
例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)

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

/*查找最长连续递增子序列函数 */
  定义整型变量i,j表示循环变量,k用来作找到后新数组下标
  定义整型变量 MaxLength=1; //MaxLength为1, 表示长度只有头部
  定义整型 a[maxsize]存放最长连续递增子序列
  for i=0 to L->length
    a[i]=1;   //表示长度只有头部 
     for i=0 to L->length-1
        for i=0 to L->length-1
            如果 前一个元素 > 后一个元素
            a[i]++
            否则 break      
    找到后:  
    for i=0 to L->length
        如果 a[i] > MaxLength,k=i
    如果 长度为1,直接输出此数
    如果 长度为0,return
    输出最后结果 
  end for

2.代码截图

技术分享图片
技术分享图片

3.PTA提交列表说明

技术分享图片

  • 编译错误。把PTA中的C改成C++后提交;
  • 部分正确。没有考虑只有一个数时的情况,需要再加上if(MaxLength==1)时,直接输出这个数;

题目2:6-2 jmu-ds-单链表逆置

本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表为带头结点链表。
(单链表基本操作根据老师发的变化。)

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

/*逆置函数void ReverseList(List &L)调用 */
    如果链表L 为空表||只有有一个元素 
           输出 NULL,不逆置
    定义指针p,q ListNode *p,*q移动
    令p指向L的第二个数据
    while(p)
        q 保存下p的值 ,p移动 
        p的next指向前一个元素
        L->next的值不断变化,循环
    end for 

2.代码截图

技术分享图片
技术分享图片

3.PTA提交列表说明

技术分享图片

  • 需要考虑空表或仅仅只有有个元素时,不需要逆置;
  • 答案错误。输入1 2 3 4 5逆置后输出4 3 2 1,修改第一个输出所指结点输出;
  • 部分正确。猜想是逆置函数出错,注释掉其他函数,再读代码,查找出错地方,修改:在建模输入值时循环条件出错,将for(i=1;i<n;i++)改为for(i=1;i<=n;i++);
  • 格式错误。输出函数,最后一个无空格;

题目3:7-3 两个有序序列的中位数

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

先类似7-1将给出的两个链表S1,S2合并,用链表S3装好
/*查找中位数int Find(LinkList S3, int m,int n)调用*/ 
    m为中位数下标 
    定义整型变量j=0 表示S3下标
    定义整型变量length=2*n表示合并后S3长度 
    定义 LinkList p=S3方便进行移动
    如果 p为空 return 0
    当 j<=m 时
         j递增
         p移动
    直到j==m找到
    返回找到的下标所指的值
    end for

2.代码截图

技术分享图片
技术分享图片
技术分享图片

3.PTA提交列表说明

技术分享图片

  • 编译错误。忘记把PTA中的C改成C++后提交;
  • 段错误。之前把合并后的S3先输出来,函数没注释掉,不用输出,直接输出中位数的值;
  • 答案错误。中位数查出错误,函数出错,检查发现length长度在合并后没有及时改变,应该变成2n;

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

1.顺序表PTA排名

技术分享图片

2.链表PTA排名

技术分享图片

3.我的总分:215

三、本周学习总结

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

  • 课前完成老师布置的预习作业,然后平时上数据结构课程,课后完成相应的PTA练习题;
  • 不太满意。除了老师安排的固定学习外可以自己课下多看数据结构书,看看代码和解题思路;
  • 编程上不懂的地方先上网自己尝试弄懂,如果不行,请教同学;

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

主观认识:线性表是一种数据结构,能表示出前后相同元素之间的关系,让元素有规律的排列或组合;
本章小结:
(1)线性表的定义。线性表是具有相同特性的数据元素的一个有限序列;
(2)线性表的抽象数据类型描述。 
ADT List {
  数据对象:D={ | ∈ ElemSet, i=1,2,...,n, n≥0 }
数据关系:R1={

3.代码Git提交记录截图

技术分享图片

博客作业2---线性表

标签:循环   之间   end   技术   类型   排列   基本操作   alt   不用   

原文地址:https://www.cnblogs.com/78tian/p/8643544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!