10.30总结

  1. 与数据的存储结构无关的术语是栈。
  2. 数据项是数据的最小单位。数据元素是数据的基本单位。
  3. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的存储结构
    答:错.
    说明:逻辑结构可用不同的存储结构实现,“它依赖于计算机的存储结构”完全说不通.
    4:算法的运行时间涉及到加,减,乘,除,转移,存取等基本运算.要想准确的计算总运行时间是不可行的.
    答:对.
    说明:软硬件环境都是千差万别的.也没必要去准确计算.算法分析只是为了比较不同算法的优劣.
    5:在顺序存储结构中,有时也存储数据结构中元素之间的关系.(这个我觉得静态链表在存储结构上是顺序存储可是其中不也存储了节点之间的关系的么?)
    答:错.
    说明:“顺序存储结构”必须体现元素之间的关系,不是“有时”.“链式存储结构”并不是“顺序存储结构”,后者称“顺序表”或“邻接表”有些书用“链表是顺序存取”说法,但并不是指“链表是顺序存储结构”.
    6.一个数据结构在计算机中映像称为存储结构。
    7.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储方式最节省时间。
    8.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用仅有尾指针的单循环链表存储方式最节省运算时间。
    9.线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是(n-1)/2。插入是n/2。
    10.从一个具有n个节点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较(N+1)/2个结点。
    11.判定一个循环队列QU(最多元素为m0)为空的条件 QU.rear= =QU.front。
    12.判定一个循环队列QU(最多元素为m0)为满的条件 QU.front= =(QU.rear+1)%m0。
    13.一个循环队列QU(最多元素为m0)队列满时,队列中有m0-1个元素。
    14.表达式3 2^(4+22-63)-5求值过程中当扫描到6时,对象栈和算符栈为(3,2,8;(^-),其中^为乘幂。 注:输出的是经过计算后的值,按运算符的高低运算顺序来计算。
    15.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少? 2和4 注:删除一个元素对头指针front加一,对尾指针rear不变;插入两个元素,对头指针front不变,对尾指针rear加二。
    16.从一个带头结点的栈顶指针为HS的链式栈中插入一个S所指的结点时,执行 S->next=HS->next; HS->next=S。
    17.从一个带头结点的栈顶指针为HS的链式栈中删除一个结点时,并用x保存被删除结点的值,则执行 x= HS->next->data; HS->next= HS->next->next。
    18.数组A中,每个元素的长度是3个字节,行下标k的范围从1到8,列下标j的范围从1到10,从首地址SA开始连续存放在存储器中,该数组按行存放时,元素A[8][5]的起始地址为(710+4)3=222
    因为按照列逐个数到A[8][5]有7*10+4个元素,(且在第八行是从 A[8][8]到A[8][7],A[8][6],倒存放在存储器中)
  4. 对称矩阵:
    矩阵元素的值与下标的关系: a(i,j) = a(j,i)
    我们只需为每一对称元素分配一个储存单元,这样可以将 n*n 个
    元素储存在一个 n(n+1)/2 的储存空间里。
    假设用以为数组储存上三角或下三角元素。则一维数组的下标 k
    与 n 阶对称阵的元素 a(i,j) 的下标对应关系为:
        如果 i >= j 时,以下三角储存, k = i*(i+1)/2 + j
        如果 i < j  时,以上三角储存, k = j*(j+1)/2 + i
    
    三角矩阵:
    分为上三角矩阵和下三角矩阵,其中在上三角矩阵中,下三角元素
    全部为一个常数c,下三角矩阵中,上三角元素全部为一个常数c。
    以上三角矩阵为例,上三角矩阵的压缩规则是只储存上三角元素,
    不储存下三角元素,或只用一个储存单元储存下三角非零元素
    用一维数组储存上三角矩阵,采取使用一个储存单元储存下三角元
    素的方法,一维数组的长度为 n*(n+1)/2 + 1 一维数组的下标 k与
     n 阶上三角矩阵的元素 a(i,j) 的下标对应关系为:
        如果 i <= j, k = i*(2n-i+1)/2 + j -i
        如果 i > j , k = n*(n+1)/2 
    下三角矩阵使用一维数组储存后相应的对应关系为:
        如果 i >= j, k = i*(i+1)/2 + j
        如果 i <  j, k = n*(n+1)/2 
    
    例题:有一个10阶对称矩阵A,采用压缩存储方式存储,(按行为主序,并且A[0][0]=1),则A[8][5]的地址为42。