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步,后使两个指针同时运行
  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/cosmosss/p/10630046.html
Copyright © 2011-2022 走看看