zoukankan      html  css  js  c++  java
  • 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步,后使两个指针同时运行
  • 相关阅读:
    【JAVA进阶】——myEclipse连接mysql启动数据库服务
    启动Tomcat时的常见问题及解决办法
    联表查询的更新
    webstorm 破解方式 ——亲测有效!
    在Coding代码托管平台用Git托管项目
    Vue-cli脚手架工具
    Vue指令大全
    SEO技巧--代码优化
    Node版本管理工具(nvm)的安装
    盘点水平垂直的几种方式
  • 原文地址:https://www.cnblogs.com/cosmosss/p/10630046.html
Copyright © 2011-2022 走看看