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


    1.本周学习总结

    1.1思维导图

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

    • 链表的创建和使用很奇怪,看似没有差别但是无法正常运行,有的时候需要头插法,有时需要尾插法。操作量大且复杂。

    2.PTA实验作业

    2.1.题目1:6-1 jmu-ds-区间删除数据

    2.1.1设计思路(伪代码)

    定义变量j,遍历链表
     L->length=j,  //以赋值的方式删除元素
    cout<<L->data[i];
    if(i!=L->length-1) cout<<" "//空格与元素分别输出
    

    2.1.2代码截图

    2.1.3本题PTA提交列表说明。

    • 本题主要是链表的基本知识,但是需要用C++的语法,模仿书本上的方式导致了错误
    • 在查询资料后解决了问题

    2.2题目2: 6-2-有序表插入数据

    2.2.1设计思路(伪代码)

    定义i,j
        for    i=0  to  n-1  //遍历顺序表
           if    L->data[i]>x   //寻找插入的位置
        for   j=n    to    i //将L的第i项后的后移一位 
        L->data[j]=L->data[j-1]
        L->data[i]=x    //将x插入到i的位置 
    

    2.2.2代码截图


    2.2.3本题PTA提交列表说明。

    • 本题寻找插入元素的位置很难,先是两端的极限位置,然后是循环寻找数据大小,用赋值的方式删除元素。

    2.3 题目3: 6-3顺序表删除重复元素

    2.2.1设计思路(伪代码)

    定义j,m 分别进行循环,控制循环顺序
    for(i=0;i<L->length-m;i++) 外层从第一个数开始循环
        {
            for(j=i+1;j<=L->length-m;j++) 内层从第二个数开始循环,之后依次从外层循环的后一个数开始循环
            {
                if(L->data[i]==L->data[j]) 出现相同数据
                {
                    L->data[j]=L->data[j+1]; 删除次数据,向后移动一位
                    m++;
                }
            }  end for
        } end for 
        L->length-=m; 顺序表长度减少
    

    2.2.2代码截图


    2.2.3本题PTA提交列表说明。

    • 本题需要两层循环,一开始没有设置两层循环导致无法找到需要删除的元素。
    • 当最后一项删除时,题目的循环条件要到最后一个元素。

    3、阅读代码

    3.1 题目

    删除单链表倒数第K个节点 
    

    3.2 解题思路

    • 要删除倒数第K个节点,首先我们需要知道该链表有几个节点,然后再使指向头结点的指针走size-k-1步,删除该指针所指向的节点即可。

    3.3 代码截图

    3.4 学习体会

    • 本题的约束条件较多
    • 设置两个指向头结点的指针,可以先后出发,寻找倒数第K个节点
    • 让其中一个指针先走K步,后使两个指针同时运行
  • 相关阅读:
    Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)
    前端Web框架的实现过程
    HTML、CSS 和 JS框架之Bootstrap
    前端之JQuery
    前端基础之JavaScript_2
    进程池、线程池、回调函数、协程
    前端基础之JavaScript_1
    前端基础之CSS_2
    前端基础之CSS_1
    前端基础之HTML
  • 原文地址:https://www.cnblogs.com/cosmosss/p/10630046.html
Copyright © 2020-2023  润新知