• DS博客作业02--线性表


    1.本周学习总结

    1.1思维导图

    1.2.谈谈你对线性表的认识及学习体会

     通过这段时间的学习,我了解到线性表是最基本、最简单、也是最常用的一种数据结构。线性表是数据结构的一种,一个线性表是多个具有相同特性的数据元素的有限序列。
    线性表中数据元素之间的关系是一对一的关系,我明白了使用合适的存储结构和数据结构对程序的巨大作用,算法的重要性也不言而喻。一开始还看不出线性表和数组的区别,
    觉得线性表可有可无,通过几个实例深刻体会到它的便利。
    

    2.PTA实验作业

    2.1.有序表插入数据

    2.1.1设计思路

    要求实现3个函数,在递增的顺序表中插入一个新整数,并保持该顺序表的有序性。
    
     定义i,j
        for    i=0  to  n-1  //遍历顺序表
           if    L->data[i]>x   //寻找插入的位置
        break;
        end for
        for   j=n    to    i //将L的第i项后的后移一位 
        L->data[j]=L->data[j-1]
        L->data[i]=x    //将x插入到i的位置 
    

    2.1.2代码截图


    2.1.3本题PTA提交列表说明

    一开始觉得这题和之前数组的一题很像只不过用了线性表,于是照着之前的思路去做,却总是要么最后一位插入错误,或者第一位插入错误,最后函数重新整理了一下,就通过了,通过后想到了更加简洁的方法,就多试了几次。
    

    2.2.顺序表操作集

    2.2.1代码截图

    2.2.2本题PTA提交列表说明

    一开始对return 的使用不理解 导致编译错误
    然后Insert函数没有讨论特殊情况导致部分正确
    参考了网上的代码
    最后完全正确
    

    2.3链表倒数第m个数

    2.3.1 代码截图

    2.3.2本题PTA提交列表说明

    一开始不小心使用了C语法 导致编译错误
    然后发现当位置无效时PTA无法通过
    检查后发现是开始的结点没有置空

    3、阅读代码

    3.1 题目

    从顺序表中,删除其值在s与t之间(包含s和t,要求s<t)的所有元素,如果s或t不合理或者顺序表为空则显示出错信息并推出运行。
    

    3.2 解题思路

    从头到尾扫描顺序表,我们用i表示扫描的元素的个数,用k记录满足判断条件的元素的个数;
    
    则对于扫描到的每一个元素data[i],进行判断:
    
    如果data[i]满足判断条件,说明该元素是应该被删除的元素,k的值加1(删除该元素的操作是通过后面的元素向前覆盖的过程完成的),
    
    如果data[i]不满足判断条件,说明该元素不应该被删除,则需要将该元素向前移动k个元素,进而实现覆盖前面的应该被删除的元素。
    

    3.3 代码截图

    3.4 学习体会

    此代码出自CSDN上的优秀博客
    data【】中i k两个变量使得代码变得思路非常直观
    同时定义的数组是代码赋值更加的方便
    
  • 相关阅读:
    【转】主从同步出现一下错误:Slave_IO_Running: Connecting
    解决Mysql的主从数据库没有同步的两种方法
    xargs命令详解,xargs与管道的区别
    常用的排序算法的时间复杂度和空间复杂度
    IP 地址分类(A、B、C、D、E类)
    SNMP 协议介绍 转载
    TCP首部的TimeStamp时间戳选项 转载
    TCP SACK 介绍 转载
    HTTP header 介绍 转载
    CRT小键盘输入乱码
  • 原文地址:https://www.cnblogs.com/tmacly/p/10629243.html
Copyright © 2020-2023  润新知