• 数据结构期末复习第五章数组和广义表


     数据结构期末复习第五章 数组和广义表

         二维数组A[m][n]按行优先 寻址计算方法,每个数组元素占据d 个地址单元。
         设数组的基址为LOC(a11) :LOC(aij)=LOC(a11)+((i-1)*n+j-1)*d
         设数组的基址为LOC(a00) :LOC(aij)=LOC(a00)+( i*n+j )*d
        二维数组A[m][n]按列优先 寻址计算方法,每个数组元素占据d 个地址单元。
         设数组的基址为LOC(a11) :LOC(aij)=LOC(a11)+((j-1)*m+i-1)*d
         设数组的基址为LOC(a00) :LOC(aij)=LOC(a00)+( j*m+i)*d

     1.  二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时的元素( B  )的起始地址相同。设每个字符占一个字节。
    A. A[8,5]                              B. A[3,10]
    C. A[5,8]                              D. A[0,9]

    解析:元素A[8,5]的起始地址与当A按列先存储时的A[i,j]元素的起始地址相同,

    8×10+5—1=(j一1)×9+i,将四个备选答案代入,可得正确答案

    我的理解:

    本题中:

    二维数组A[9,10]按行优先寻址计算方法,每个元素六个字符,每个数组元素占据4个地址单元,

    设数组的基址为LOC(0,1):LOCA(8,5)=LOC(a01)+((8*10)+(5-1))*6*1

    二维数组A[9,10]按列优先寻址计算方法,每个元素六个字符,每个数组元素占据4个地址单元,

    设数组的基址为LOC(0,1):LOCA(i,j)=LOC(a01)+((j-1)*9+i)*6*1

    元素A[8,5]的起始地址与当A按列先存储时的A[i,j]元素的起始地址相同,

    即:LOC(8,5)=LOC(i,j)

    ((8*10)+(5-1))*6*1=((j-1)*9+i)*6*1

         84 *6*1=((j-1)*9+i) *6*1

         84=(j-1)*9+i

    将四个备选答案代入,可得正确答案B
    2.  二维数组N的每个元素占4个存储单元,行下标i的范围从0到4,列下标j的范围从0到5,N按行存储时元素N[3][5]的起始地址与N按列存储时元素(  B )的起始地址相同。
    A. N[2][4]                        B. N[3][4]
    C. N[3][5]                        D. N[4][4]

    分析:

    行下标i的范围从0到4,列下标j的范围从0到5说明数组为二维数组A[5][6]

    元素N[3,5]的起始地址与当N按列先存储时元素的起始地址相同,

    即3*6+5=j*5+i,将四个备选答案代入,可得正确答案B

    具体分析方法同上。
    3.  设n阶方阵是一个上三角矩阵,则需存储的元素个数为( D )
    A .n                              B .n*n
    C .n*n/2                          D .n(n+1)/2

    解析:

    1 2 3 4 5 6 7 8 ... n

    1 1 1 1 1 1 1 1 ... 1  个数为n

    0 1 1 1 1 1 1 1 ... 1  个数为n-1

    0 0 1 1 1 1 1 1 ... 1  个数为n-2

    0 0 0 1 1 1 1 1 ... 1  个数为n-3

         ...                  ...

    0 0 0 0 0 0 0 0 ... 1  个数为1

    需要存储的元素个数为:
    n+(n-1)+...+2+1 = n(n+1)/2

    4.  设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85(即该元素下标ij=85)的地址为( B  )。
    A. 13             B. 33        C. 18              D. 40

    解析:

    这里数组下标从1开始,只存储其下三角形元素,在a8,5的前面有7行,第1行有1个元素,第2行有2个元素,…,第7行有7个元素,这7行共有(1+7)×7/2=2 8个元素,在第8行中,a8,5的前面有4个元素,所以,a8,5前有28+4=32个元素,其地址为33。

    --------------------------------

    1 2 3 4 5 6 7 9 9 3

    2 3 4 5 6 7 8 9 3 4

    3 4 5 6 7 8 9 3 4 2

    4 5 6 7 8 9 3 4 2 6

    5 6 7 8 9 3 4 2 6 8

    6 7 8 9 3 4 2 6 8 3

    7 8 9 3 4 2 6 8 3 4

    8 9 3 4 2 6 8 3 4 2

    9 3 4 2 6 8 3 4 2 5

    3 4 2 6 8 3 4 2 5 6

    -----------------------------------------
    5.  若对n阶对称矩阵A[1..n,1..n]以行序为主序方式下将其下三角的元素(包括主对角线上的所有元素)依次存放于一维数组B[1..n(n+1)/2]中,则在B中确定aij (i<j)的位置k的关系为( B  )。
    A .i*(i-1)/2+j               B .j*(j-1)/2+i     
    C .i*(i+1)/2+j               D .j*(j+1)/2+i
    解析:

    对称矩阵A中的下三角的元素存放于B数组中,

    若求aij(i>j)的位置k的关系,答案为A,即i(i一1)/2+j
    但是,本题求aij (i<j)这就需要将备选答案A中i(i一1)/2+j的i与j互换

    因此正确答案为Bj(j一1)/2+i

  • 相关阅读:
    hbase 2.0.2 分布式安装配置/jar包替换
    hive character '' not supported here
    request.getSession().getServletContext().getRealPath()的一些坑
    hive 自定义函数
    hive 导出数据的几种方式
    hive 分区表与数据产生关联的三种方式
    hive 日志配置/表头配置
    hive 3.1.0 安装配置
    zookeeper 客户端操作
    linux 循环读取文件的每一行
  • 原文地址:https://www.cnblogs.com/xingyunblog/p/4229812.html
Copyright © 2020-2023  润新知