• 博客作业2---线性表


    一、PTA实验作业(5分)

    1.题目1: jmu-ds- 顺序表删除重复元素

    2. 设计思路(伪代码或流程图)

    定义循环变量i,j,k 
    for i=0 to L->length-1
    当k<=j并且前后数据不相同时执行循环k++
    当遇到前后数据相同时跳出循环,将不重复的数据放在前面,如果前面都没有重复的就不移动,
    end for
    将顺序表的长度改为前面没有重复的数字个数
    
    

    3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

    4.PTA提交列表说明。

    初时没有考虑到空表,后来进行条件限定,

    1.题目2:集合的基本运算(单链表)

    2. 设计思路(伪代码或流程图)

    1. 对链表进行排序 
    构造一个只含数据节点的链表 
    q保存p节点后继节点的指针q=p->next
    从链表头开始比较pre指向插入p的前驱节点
    当链表满足有序,且不为空时将pre往后移
    遇到乱序时,将小的节点后继节点指向大的节点,pre后继节点改为小的节点,p节点后移p=q,
    
    2. 链表的合并 
    创建hc并分配空间 
    扫描ha和hb两个链表节点
    当ha的节点数据小于hb的节点数据时将ha的节点数据插入带hc中并ha后移一个节点
    当ha的节点数据大于hb的节点数据时将hb的节点数据插入带hc中并hb后移一个节点
    当ha的节点数据等于hb的节点数据时将hb的节点数据插入带hc中并ha和hb一起后移一个节点
    扫描完毕后判断ha,hb是否已经扫描到了最后一个节点
    没有的话将没有扫描的剩余的链表数据导入到hc中
    
    3.链表的交集
    扫描链表ha和hb,遇到ha,hb的数据节点相同的就插入到hc中
    由于数据是按递增排序的
    若ha的数据小于hb将ha后移
    若ha的数据大于hb将hb后移
    
    4.链表的差集
    由于数据是递增储存的
    若ha的数据小于hb的数据,将ha数据插入hc中并将ha后移
    若ha的数据大于hb的数据,将hb后移
    若两数据节点数据相等,则都后移一位
    
    

    3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)




    4.PTA提交列表说明。

    一次性过没有一点毛病老铁

    1.题目3 两个有序序列的中位数

    2. 设计思路(伪代码或流程图)

    用第二题的方法将两链表合并后中位数的节点就为链表总节点除2 
    定义i作为循环变量
    在展示函数中扫描链表并将i++
    当i等于中位数所在节点序号时进行输出
    
    

    3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)




    4.PTA提交列表说明。

    由于没有将typedef char ElemType; 改为typedef int ElemType; 导致在最大N和最小N时答案错误

    二、截图本周题目集的PTA最后排名(3分)

    1.顺序表PTA排名

    2.链表PTA排名

    3.我的总分: 215

    三、本周学习总结(2分)

    1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?(1分)

    没课的时候在图书馆花点时间看数据结构书 , 还可以,比较满意

    2.谈谈你对线性表的认识?(1分)

    线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。
    小节内容: 顺序表 :元素的个数就是顺序表的长度,查找元素直接用下标来寻找时间复杂度为O(1)
    访问节点和增加节点时间复杂度为O(1),O(n) , 元素的插入和元素的删除通过移动顺序表实现
    链表 : 删除节点需要每个节点挨个删除,非顺序储存,查找需要扫描链表,插入元素分为头插法和尾插法,头插法可以将数据逆序,元素删除遵循先接后删 ,插入遵循先连后断

    3.代码Git提交记录截图

    四、阅读代码(选做,加1分)

    To be continue ... ....

  • 相关阅读:
    C++栈(stack)、队列(queue)、链表(list)的常用函数
    C++中cin>>a原理
    C++中vector和堆的常用使用方法&例题:数据流中的中位数
    使用centos8搭建僵尸毁灭工程(PZ)服务器
    【从C#走进Python】四、装饰器
    【从C#走进Python】三、变量声明
    【从C#走进Python】二、迭代器
    【从C#走进Python】一、上下文管理器
    【C#基础】拥抱Lambda(2):表达式树与LINQ
    【机器学习笔记】Python机器学习基本语法
  • 原文地址:https://www.cnblogs.com/FOXES/p/8646023.html
Copyright © 2020-2023  润新知