zoukankan      html  css  js  c++  java
  • DS博客作业02—线性表

    1.本章学习总结

    1.1 思维导图

    1.2学习体会

    学习了线性表的相关内容,接触到了抽象数据类型这个概念。对于我来说线性表的内容有点抽象,就像绳子打结一样,纠结。在预习的时候主要是看书本上的例题和注释,PTA上的题目有一些都是书上原样写下来的。
    链表和顺序表相比我觉得更容易理解一点,因为感觉它更形象,就是双链表和循环链表有点不太明白。特别的就是对程序的时间复杂度还停留在一个循环一个n,两个嵌套循环n平方的阶段。。

    2.PTA实验作业

    2.1.题目1:题目名称

    6-7 jmu-ds-单链表逆置 (15 分)

    2.1.1设计思路(伪代码)

    思路:遍历链表,让原链表的每一个节点元素插入到新链表里面
    代码:
    定义两个节点p和q;
    给p申请空间;
    并且让p的下一个节点置为空
    while(遍历链表)
    申请循环节点
    L=L的next
    循环赋值L的data给q的data
    把p的next节点接在q的后面
    让q又能和p循环
    最后让L=p的头

    2.1.2代码截图

    2.1.3本题PTA提交列表说明


    一开始想着这个思路就去打了,不过发现发现测试点过不去,后面问了下室友发现了问题改了几次踩过了

    2.2.题目2:题目名称

    6-8 jmu-ds-链表倒数第m个数 (20 分)

    2.2.1设计思路(伪代码)

    思路:先找到链表的长度,最后用一个循环找到长度减m+1就是倒数第m个数
    伪代码:
    定义一个节点p,和长度变量len,让p始终为L的头
    while遍历链表得到链表长度len
    if(m>len||m<=0)
    {
    return error排除错误 }
    for(int i=0;i<len-m+1;i++)
    L=L->next;
    return 找到的第m个数据

    2.2.2代码截图

    2.2.3本题PTA提交列表说明


    个人觉得这个还是听好做的特别是如果是数组的话就感觉还行,换链表的话就出现了问题有错误或者m的值没有考虑到,在dev上检查了几次还好找到了

    2.3.题目3:题目名称

    6-10 jmu-ds-有序链表的插入删除 (15 分)

    2.3.1设计思路(伪代码)

    思路:因为是有序表,所以只需要遍历并且同时把e与各个元素比较找到那个插入的位置,同时记录下当时的位置,把数据插入就好了;
    需要一个是否删除成功的标志flag,同样遍历链表,比较当与输入e相同的数据时把那个节点的前一个与后一个接起来达到删除的目的
    伪代码:
    定义节点p和pre,和标志变量flag,让p始终为L的头
    while遍历链表
    iif(ep->next->data)
    flag变化
    p->next接到pre后
    pre->next接到p->next后
    break;
    }
    p=p->next;
    if(l链表为空)无返回
    if(flag
    0)
    cout找不到

    2.3.2代码截图

    2.3.3本题PTA提交列表说明


    这个题目感觉是前面两个小题和起来协调一下函数就还好,不过实际操作嘛emmm不是那么好做,不过发现两个函数其实很像,就是在最关键的那一句代码换一下,再在结尾的节点头换一下就好了

    3、阅读代码

    3.1 题目

    6-7 jmu-ds-单链表逆置 (15 分)

    3.2 解题思路

    思路:利用before和p实现两个节点之间的逆转,原先是before下一个指向p,修改成p下一个指向before,有点像上学期的两个元素互换位置用个index那种做法

    3.3 代码截图

    3.4 学习体会

    我在解这个题的时候想法和这个很像,不过这个就很形象(像一对人在排队,教官说向后转那种感觉),我那个就感觉有点昏昏的。。

  • 相关阅读:
    UML类图
    SCIM 输入法
    linux shell 快捷键
    linux find
    Extern "C"
    C++4个基本函数
    运算符号重载:前置与后置单目运算++
    Oracle数据库的安全策略
    help on IlegalStateException 关于 HttpServletRequest.getParameterMap()
    再谈时间函数
  • 原文地址:https://www.cnblogs.com/asings/p/10628459.html
Copyright © 2011-2022 走看看