数据结构课程chap05数组和广义表.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程chap05数组和广义表

行向量 下标 i 页向量 下标 i 列向量 下标 j 行向量 下标 j 列向量 下标 k 练习 三维数组a[4][5][6](下标从0开始计),每个元素的长度是2,则a[2][3][4]的地址是____________。(设a[0][0][0]的地址是1000,数据以行为主方式存储) 练习 二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到4,列下标j的范围从0到5,M按行存储时元素M[3][5]的起始地址与M按列存储时元素( )的起始地址相同。 A. M[2][4] B. M[4][4] C. M[3][4] D. M[3][5] 练习 有一个二维数组A[1:6,0:7] 每个数组元素用相邻的6个字节存储,存储器按字节编址,那么这个数组的体积是(①)个字节。假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A的最后一个元素的第一个字节的地址是(②)。若按行存储,则A[2,4]的第一个字节的地址是(③)。若按列存储,则A[5,7]的第一个字节的地址是(④)。就一般情况而言,当(⑤)时,按行存储的A[I,J]地址与按列存储的A[J,I]地址相等。 ①-④: A.12 B. 66 C. 72 D. 96 E. 114 F. 120 G. 156 H. 234 I. 276 J. 282 K. 283 L. 288 ⑤: A.行与列的上界相同 B. 行与列的下界相同 C. 行与列的上、下界都相同 D. 行的元素个数与列的元素个数相同 练习 一n×n的三角矩阵A=[aij]如下: 将三角矩阵中元素aij(i≤j)按行序为主序的顺序存储在一维数组B[1..n(n+1)/2]中,则aij在B中的位置是( )。 (i-1)(2n+i)/2+i-j+1 B. (i-1)(2n-i+2)/2+j-i+1 C. (i-1)(2n-i)/2+j-i D. (i-1)(2n-i+2)/2+j-i 三元组快速转置 讨论 有没有发现以上讨论的矩阵运算有没有一个“适于采用顺序结构”的共同特点? 如果矩阵运算的结果将增加或减少已知矩阵中的非零元的个数,则显然不宜采用顺序存储结构,而应以链式映象作为三元组线性表的存储结构。 练习 练习 设有一个n×n的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中( )处。 A.(i+3)*i/2 B.(i+1)*i/2 C.(2n-i+1)*i/2 D.(2n-i-1)*i/2 练习 广义表((a),a)的表头和表尾分别是____、______ 。 四皇后问题: ?? 在4*4的棋盘上放置4个皇后,如果在同一行,同一列,同一对角线上都不存在两个皇后, ?? 那么这个棋盘格局就是四皇后一个解。 要求: 找出四皇后的一组解即可,打印出放置满足四皇后条件的棋子位置); * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  由于三元组顺序表以行序为主序存放矩阵的非零元,则为取得第i行的非零元,必须从第一个元素起进行搜索查询。 而从上页讨论的矩阵转置算法可见,在算法过程中计算得到的 rpos[M.cols+1] 中的值实际上起到了一个“指示矩阵中每一行的第一个非零元在三元组表中的序号”的作用,因此如果在建立稀疏矩阵的三元组顺序表的同时将这个信息固定在存储结构中,将便于随机存取稀疏矩阵中任意一行的非零元。 可将 rpos 中的值视作指向每一行第一个非零元的指针,故称这种表示方法为行逻辑链接的顺序表。 * 可将 rpos 中的值视作指向每一行第一个非零元的指针,故称这种表示方法为行逻辑链接的顺序表。 * * * * * * * * * * * * * * * * * * * * * * * * * 2. 实现递归函数,目前必须利用“栈”。一个递归函数必定能改写为利用栈实现的非递归函数;反之,一个用栈实现的非递归函数可以改写为递归函数。需要注意的是递归函数递归层次的深度决定所需存储量的大小。 3. 分析递归算法的工具是递归树,从递归树上可以得到递归函数的各种相关信息。例如:递归树的深度即为递归函数的递归

文档评论(0)

wumanduo11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档