zoukankan      html  css  js  c++  java
  • week02 线性表

     一:作业内容

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

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

         选择的题:顺序表6-3(删除重复元素);

                           单链表6-2(单链表逆置);

                           有序表7-3(两个有序序列的中位数);

    题目一:

         1,题目名称: 6-3 jmu-ds- 顺序表删除重复元素(25 分)

            设计一个算法,从顺序表中删除重复的元素,并使剩余元素间的相对次序保存不变。

        2伪代码:

         定义变量i,j,作为判断循环的下标,k作为新形成的链表的下端

              for  i=0  to  length(链表的长度)--外循环

              k=0    (从零开始重新对链表每个元素赋值)

             for  j=i-1  to  0(内循环,判断i之内的数据是否有和data[k]相等的值)        

             k--(如果有相同的值,则k要减一,让下一个值覆盖它;

       3,设计思路

        从第一个元素开始对链表重新赋值,若判断到第i个数据和前面某个数据相同,此时data[k]保留了这个与之前有相同的数据,则让k--

    这样下一次循环新赋进来的值覆盖了之前相同的值,而元素的物理位置不变,从而实现重复元素的删除

      4,代码截图:

    5,提交列表

    错因分析:第一个是格式问题,忘记最后不能空格;

                      第二个是在第一个改好的基础上,没有考虑空表特殊情况的输出;

                      第三个是不小心少打了个符号,导致编译错误;

    题目二  

    1,题目名称:6-2 jmu-ds-单链表逆置(25 分)

    本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表为带头结点链表。链表结点定义如下

    2,伪代码:

         再定义一个链表L2,将L1中的数据给L2赋值,使用头插法;

    3,设计思路 :

        使用头插重新将原链表中的数据插入新链表中,最后将原链表的头指针指向新链表就好;

    4,代码截图:

    5,提交列表:

     

    错误原因:没有考虑链表为空时的特殊情况;

    题目三

    1,题目名称:

        7-3 两个有序序列的中位数(25 分)

        已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0​​,A1​​,,AN1​​的中位数指A(N1)/2​​的值,

    即第(N+1)/2⌋个数(A0​​为第1个数)。

    2,伪代码:

        定义三个数组s1,s2,s3;

        从i=0  to  n(数组的长度)

        if(s1[i]<s2[i])则将 s1[i]赋值给s3[j++];

    3,设计思路

    新建一个链表将原链表中一次比较后更小的值一次赋进去;

    4,代码截图

    5,提交列表

    错误原因:第一下用链表做,用C++语言,忘了加头文件;

                      第二下用字符串做,但对一些字符串函数的用法忘记,导致做错

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

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

    1,顺序表PTA排名

     2,链表PTA排名

     

    3,我的总分    2分

    三、本周学习总结

    1,这周对数据结构的安排时间是挑大段的时间去写代码,时间安排还好,但打代码效率低,有一些

    不懂的没有即使问老师或同学,导致一些题目欠了好几天才完成;

    2,线性表就使计算机中数据元素的能够线性存储; 实现线性存储有两种不同的方式:顺序表和链表,

     两者最大的区别在于存储时数据元素的物理位置是否相邻;

    3,代码Git提交记录截图

  • 相关阅读:
    nova-conductor与AMQP(二)
    nova-conductor与AMQP(一)
    nova-api中ExtensionManager的构造
    openstack身份认证与API请求流程
    nova-api源码分析(APP中用到的开源库)
    nova-api源码分析(WSGI server的创建及启动)
    novaclient源码分析
    机器学习-----线性回归浅谈(Linear Regression)
    分布式文件系统--GFS
    java 小结2 多态问题和容器介绍
  • 原文地址:https://www.cnblogs.com/huyaoco/p/8646334.html
Copyright © 2011-2022 走看看