数据结构之数组结构

数组结构

  1. 线性表
  2. 数组
  3. 矩阵
    1. 矩阵相加

    2. 矩阵相乘

    3. 矩阵转置

    4. 稀疏矩阵

    5. 上三角矩阵

      • 以行为主
        k = n ∗ ( i − 1 ) − i ( i − 1 ) / 2 + j k = n * (i-1) - i(i-1)/2 + j k=ni1i(i1)/2+j

      • 以列为主

      k = j ( j − 1 ) / 2 + i k=j(j-1)/2 + i k=j(j1)/2+i

      • 右上三角矩阵
      • 左上三角矩阵
    6. 下三角矩阵

      • 以行为主
        k = i ( i − 1 ) / 2 + j k = i(i-1)/2 + j k=i(i1)/2+j

      • 以列为主
        k = n ∗ ( j − 1 ) + i − j ( j − 1 ) / 2 k = n * (j-1) + i - j(j -1) /2 k=n(j1)+ij(j1)/2

      • 右下三角矩阵

      • 左下三角矩阵

    7. 带状矩阵

  4. 数组与多项式
    设计一个python程序,进行多项式的计算:A(x) = 3x^4 + 7x^3 + 6x +2和B(x) = x^4 +5x^3 + 2x^2 + 9的加法运算
    

    一个多项式如果使用数组结构存储在计算机中,有一下两种方法表示:

    • 使用一个n+2长度的一组数组来存放,数组的第一个位置存储最大指数n项的系数,其他位置按照指数n递减,按序存储对应项的系数:P=(n,an,an-1,…,a1,a0),存储在A(1:n+2)中,例如:

      P(x) = 2x^5 + 3x^4 + 5x^2 + 4x + 1可以转换为A数组来表示,例如A=[5,2,3,0,5,4,1]。

    • 只存储多项式中的非零项。如果有m项非零项,就使用2m+1的数组来存储每一个非零项的指数和系数,数组的第一个元素为此多项式非零项的个数。

      P(x) = 2x^5 + 3x^4 + 5x^2 + 4x + 1可以表示为A(1:2m+1)数组,例如:

      A=[5,2,5,3,4,5,2,4,1,1,0]

    • 采用第一种多项式的方法进行上述题目的运算

      """
      A(x) = 3x^4 + 7x^3 + 6x + 2 和 B(x) = x^4 + 5x^3 + 2x^2 + 9的加法运算
      """
      
      ITEMS = 6
      """
      poly:表示多项式的数组
      items:数组的长度
      """
      def PrintPoly(Poly,items):
        #最高指数
        MaxExp = Poly[0]
        for i in range(1,Poly[0] + 2):
          MaxExp =MaxExp - 1
          if Poly[i] != 0:
            if(MaxExp + 1) != 0:
              print(' %dx^%d ' %(Poly[i],MaxExp + 1),end='')
            else:
              print(' %d' %Poly[i],end='')
            if MaxExp >= 0:
              print('+',end='')
        print()
      
      """
      Poly1:多项式1
      Poly2:多项式2
      """
      def PolySum(Poly1,Poly2):
          result = [None] * ITEMS
          result[0] = Poly1[0]
          for i in range(1,Poly1[0] + 2):
            result[i] = Poly1[i] + Poly2[i]
          PrintPoly(result,ITEMS)
      
      PolyA = [4,3,7,0,6,2]
      PolyB = [4,1,5,2,0,9]
      print("多项式A=>",end='')
      PrintPoly(PolyA,ITEMS)
      print("多项式B=>",end='')
      PrintPoly(PolyB,ITEMS)
      print("A+B=>",end='')
      PolySum(PolyA,PolyB)
      

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧码文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值