假设线性表中元素为(a1,a2,…,ai-1,ai,ai+1,…,an),设第一个元素a1的内存地址为LOC(a1),而每个元素在计算机内占t个存储单元,则第i个元素ai的首地址为______。
A: LOC(ai)=(i-1)×t(其中1≤i≤n)
B: LOC(ai)=LOC(a1)+i×t(其中1≤i≤n)
C: LOC((ai)=LOC(a1)+(i-1)×t(其中1≤i≤n)
D: LOC(ai)=LOC(a1)+(i+1)×t(其中1≤i≤n)
A: LOC(ai)=(i-1)×t(其中1≤i≤n)
B: LOC(ai)=LOC(a1)+i×t(其中1≤i≤n)
C: LOC((ai)=LOC(a1)+(i-1)×t(其中1≤i≤n)
D: LOC(ai)=LOC(a1)+(i+1)×t(其中1≤i≤n)
举一反三
- 假设顺序存储的线性表每个元素需占用L个存储单元,并以第一个单元的存储地址LOC(a1)作为数据元素的存储位置,则第i个数据元素ai的存储位置为(<br/>)。 A: i×L B: LOC(a1)+i C: LOC(a1)+(i-1)×L D: LOC(a1)+i×L
- 若一维数组的首个元素是a0,每个元素占d个字节,则其随机存取公式是( )? A: Loc(ai) = Loc(a0) + (i+1)*d B: Loc(ai) = Loc(a0) + i*d C: Loc(ai) = Loc(a0) + (i-1)*d D: Loc(ai) = Loc(a0) + i
- 按行优先顺序存储下三角矩阵的非零元素,则计算非零元素aij(1≤j≤n)的地址的公式为其中入为每个数组元素所占用的存储单元空间。 A: LOC(aij)=LOC(a11)+[i×(i+1)/2+j]*λ B: LOC(aij)=LOC(a11)+[i×(i+1)/2+(j-1)]*λ C: LOC(aij)=LOC(a11)+[i×(i-1)/2+j]*λ D: LOC(aij)=LOC(a11)+[i×(i+1)/2+(j-1))]*λ 下列题目基于下图所示的二叉树:
- 一线性表表示为:(a1,a2,…,an),其中每个ai代表一个____。a1称为__结点,an称为___结点,i称为ai在线性表中的__。对任意一对相邻结点ai, ai+1(1≤i≤n),ai称为ai+1的直接__,ai+1称为ai的直接()。
- 将10个数据按升序顺序排序,补全选择排序程序代码中语句。 main() {int a[10],n=10, i, j, loc,t; for(i=0;i[n;i++) scanf("%d",&a[i]); for(_____;i<n-1;i++) { ____________; for(j=i+1;j<10;j++) if(a[loc]]a[j]) loc=j; if(loc!=i) {t=a[i]; a[i]=a[loc]; a[loc]=t;} } for(i=0;i<10;i++) printf("%d ",a[i]); }[/i][/i][/i][/i] A: i=0 和 loc=i+1 B: i=0 和 loc=i C: i=1 和 loc=i D: i=1和 loc=i+1