zoukankan      html  css  js  c++  java
  • 博客作业2---线性表

    一、PTA实验作业

    1.题目1:6-2 线性表元素的区间删除

    2. 设计思路

    定义i,j两个循环变量
    for i=0 to i<=L->last 遍历循序表
    if(L->Data[i]>=maxD||L->Data[i]<=minD)
     则重构数组,L->Data[j]=L->Data[i]
      j++
    end for
    L->Last=j-1
    返回L
    

    3.代码截图

    4.PTA提交列表说明

    • 1.函数结尾漏掉了对L->last的赋值。解决方法:补上L->Last=j-1。
    • 2.对L->last的概念没有很清晰,所以在遍历循序表时,上下限没有设置好。解决方法:在循环中的上限改为i<=L->last。

    1.题目2:6-3 jmu-ds-链表倒数第m个数

    2. 设计思路

    定义整型变量j=1,num,结构体指针p=L->next,q=L->next
    if(m==0)
     return -1
    while(j<=m)
     让q指针移动m次
    end
    while(q)
    两个指针再同时移动。
    end
    return p->data就是链表倒数第m个数。
    

    3.代码截图

    4.PTA提交列表说明

    • 1.对m=0的情况没有判断。解决方法:加if(m==0) return -1

    1.题目3:7-2 一元多项式的乘法与加法运算

    2. 设计思路

    void PolynomeCreate
    构造数组多项式a[ex] = co;ex指数,co为系数 
    
    void Multiply
    定义product[2*MAX]={0};先让所有多项式系数为0 
    for( int i=MAX ; i>=0 ; i-- )
      if( b[i] ){
        for( int u=MAX ; u>=0 ; u-- )
    	if(a[u])
    	product[i+u] += a[u]*b[i];在指数相乘的情况时,再同指数的数系数相加。
       end for
    end for
    for i=2*max-1 to 0
    输出
    end for
    在循环中利用flag来判断不同情况的输出。
    
    void Addition
    for i=max to 0
      将同指数的多项式系数相加。
    end for 
    

    3.代码截图


    4.PTA提交列表说明

    • 1.用链表的方式在处理多项式乘法时不好处理,所以后来改成数组,比较巧妙的把系数和指数用数组表示。

    二、截图本周题目集的PTA最后排名

    1.顺序表PTA排名

    2.链表PTA排名

    3.我的总分:245

    三、本周学习总结

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

    • 一边做题目,一边学习各种函数的表达。不是很满意,感觉学习的内容不够牢固且课本没有全面认真的看过。下次敲代码之前,做好预习工作。

    2.谈谈你对线性表的认识?

    • 线性表、包括顺序表和链表。顺序表里面元素的地址是连续的,链表里面节点的地址不是连续的,是通过指针连起来的。链表有利于保存数据,它的增加删除等操作会比较容易,而顺序表在查找指定位置的数据时更为方便。两种方法各有各的优势,要根据不同的题目再进行选择。

    3.代码Git提交记录截图

  • 相关阅读:
    安装VisualStudio时失败,错误信息安装包失败或证书不在有效期内
    解决方案看起来是受源代码管理,但无法找到它的绑定信息。由于无法自动恢复这些缺少的信息,缺少绑定的项目将被视为不受源代码管理。
    ASP.NET+MVC+EntityFramework快速实现增删改查
    C#服务端Web Api
    Android DrawerLayout侧滑菜单
    Redis的简单使用
    windows10安装sqlmap与简单配置

    并发编程
    网络基础知识
  • 原文地址:https://www.cnblogs.com/oracler0103/p/8643711.html
Copyright © 2011-2022 走看看