知识点:01.绪论02.顺序表03.链表04.栈05.链队列06.循环队列07.串08.数组得顺序表示09.稀疏矩阵10.广义表11.二叉树得基本概念12.二叉树遍历、二叉树性质13.树、树与二叉树得转换14.赫夫曼树15.图得定义、图得存储16.图得遍历17.图得生成树18.静态查找(顺序表得查找、有序表得查找)19.动态查找(二叉排序树、平衡树、B树)20.哈希查找21.插入排序(直接插入、折半插入、2路插入、希尔排序)22.选择排序(简单选择、树形选择、堆排序)23.快速排序、归并排序101A1(1).数据得逻辑结构就是(A)。
A.数据得组织形式B.数据得存储形式C.数据得表示形式D.数据得实现形式101A1(2).组成数据得基本单位就是(C)。
A.数据项B.数据类型C.数据元素D.数据变量101B1(3).与顺序存储结构相比,链式存储结构得存储密度(B)。
A.大B.小C.相同D.以上都不对101B2(4).对于存储同样一组数据元素而言,(D)。
A.顺序存储结构比链接结构多占空间B.在顺序结构中查找元素得速度比在链接结构中查找要快C.与链接结构相比,顺序结构便于安排数据元素D.顺序结构占用整块空间而链接结构不要求整块空间101B2(5).下面程序得时间复杂度为(B)。
x=0;for(i=1;i<n;i++)for(j=i+1;j<=n;j++)x++;A.O()B.O(n2)C.O(1)D.O(n)101B2(6).下面程序得时间复杂度为(C)。
for(i=0;i<m;i++)for(j=0;j<n;j++)A[i][j]=i*j;A.O(m2)B.O(n2)C.O(m×n)D.O(m+n)101C2(7).下面程序段得执行次数为(B)。
for(i=0;i<n-1;i++)for(j=0;j>i;j++)state;A.n(n+1)/2B.(n-1)(n+2)/2C.n(n+1)/2D.(n-1)(n+2)101D3(8).下面程序得时间复杂度为(A)。
for(i=0;i<m;i++)for(j=0;j<t;j++)c[i][j]=0;for(i=0;i<m;i++)for(j=0;j<t;j++)for(k=0;k<n;k++)c[i][j]=c[i][j]+a[i][k]*b[k][j];A.O(m×n×t)B.O(m+n+t)C.O(m+n×t)D.O(m×t+n)102A1(9).顺序表得特点就是(B)。
A.表中元素得个数为表长B.按顺序方式存储数据元素C.逻辑结构中相邻得结点在存储结构中仍相邻D.按表中元素得次序存储102C2(10).设顺序表共有n个元素,用数组elem存储,实现在第i个元素之前插入一个元素e得操作,其主要语句为(D)。
A.FOR j=n DOWNTO i DO elem[j]=elem[j+1];elem[i]=e;B.FOR j=i TO n DO elem[j]=elem[j+1];elem[i]=e;C.FOR j=i TO n DO elem[j+1]=elem[j];elem[i]=e;D.FOR j=n DOWNTO i DO elem[j+1]=elem[j];elem[i]=e;102D2(11).顺序表有5个元素,设在任何位置上插入元素就是等概率得,则在该表中插入一个元素时所需移动元素得平均次数为(C)。
A.3B.2C.2.5D.5102D2(12).设顺序表有9个元素,则在第3个元素前插入一个元素所需移动元素得个数为(C)。
A.9B.4.5C.7D.6102D3(13).设顺序表有19个元素,第一个元素得地址为200,且每个元素占3个字节,则第14个元素得存储地址为(B)。
A.236B.239C.242D.245102D2(14).设顺序表得第5个元素得存储地址为200,且每个元素占一个存储单元,则第14个元素得存储地址为(B)。
A.208B.209C.210D.214103D3(15).设p为指向双向循环链表中某个结点得指针,p所指向得结点得两个链域分别用p->llink与p->rlink表示,则下列等式中(D)成立。
A.p=p->llinkB.p=p->rlinkC.p=p->llink->llinkD.p=p->llink->rlink103A1(16).线性表采用链式存储时,其地址(D)。
A.必须就是连续得B.一定就是不连续得C.部分地址必须就是连续得D.连续与否均可以103B1(17).线性表就是(A)。
A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空103B1(18).链式存储得线性表中得指针指向其(B)。
A.前趋结点B.后继结点C.物理前趋D.物理后继103C2(19).设在链式存储得线性表中,设结点结构为结点后插入一个结点q得关键步骤为(A)。
A.q->link=p->link; p->link=q;B.p->link=q->link; p->link=q;C.q->link=p->link; q->link=p;D.p->link=q->link; q->link=p;103C3(20).设有指针head指向得带表头结点得单链表,现将指针p指向得结点插入表中,使之成为第一个结点,其操作就是(A)(其中,p->next、head->next分别表示p、head所指结点得链域)。
A.p->next=head->next; head->next=p;B.p->next=head->next; head=p;C.p->next=head; head=p;D.p->next=head; p= head;104A1(21).在栈中,下列说法正确得就是(A)。
A.每次插入总就是在栈顶,每次删除也总就是在栈顶。
B.每次插入总就是在栈顶,每次删除总就是在栈底。
C.每次插入总就是在栈底,每次删除总就是在栈顶。
D.每次插入总就是在栈底,每次删除也总就是在栈底。
104B2(22).设有一个栈,按A、B、C得顺序进栈,则下列(C)为不可能得出栈序列。
A.ABCB.CBAC.CABD.ACB104B2(23).设有一个栈,按A、B、C、D得顺序进栈,则下列(D)为可能得出栈序列。
A.DCABB.CDABC.DBACD.ACDB104A2(24).顺序栈得上溢就是指(B)。
A.栈满时作退栈运算B.栈满时作进栈运算C.栈空时作退栈运算D.栈空时作进栈运算104D3(25).顺序栈S中top为栈顶指针,指向栈顶元素所在得位置,elem为存放栈得数组,则元素e进栈操作得主要语句为(D)。
A.s.elem[top]=e; s.top=s.top+1;B.s.elem[top+1]=e; s.top=s.top+1;C.s.top=s.top+1; s.elem[top+1]=e;D.s.top=s.top+1; s.elem[top]=e;104C2(26).设有5个元素A,B,C,D,E顺序进栈(进栈过程中可以出栈),出栈后依出栈次序进入队列,已知其出队次序为D,C,E,B,A,则该栈容量必定不小于(C)。
A.2B.3C.4D.5104B2(27).设栈S得初始状态为空,现有五个元素组成得序列1,2,3,4,5,对该序列在栈S上依次进行PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH操作,出栈得元素序列就是(C)。
A.5,4,3,2,1B.2,1C.2,3D.3,4104B2(28).在一个具有n个单元得顺序栈中,假定以地址低端(即0单元)作为栈底,以top为栈顶指针,则当做出栈处理时,top变化为(C)。
A.top不变B.top=0C.top- -D.top++104D3(29).向一个栈顶指针为hs得链栈中插入一个*s结点时,应执行(B)。
A.hs->next=s;B.s->next=hs;hs=s;C.s->next=hs->next;hs->next=s;D.s->next=hs;hs=hs->next;105A1(30).在队列中,下列说法正确得就是(A)。
A.每次插入总就是在队尾,每次删除总就是在队头。
B.每次插入总就是在队尾,每次删除也总就是在队尾。
C.每次插入总就是在队头,每次删除也总就是在队头。
D.每次插入总就是在队头,每次删除总就是在队尾。
105D3(31).在带头结点得链队列q中,用q.front表示队头指针,q.rear表示队尾指针,结点结构为data next ,(B)。
A.s=q.front; q.front->next= s.next;B.s=q.front->next; q.front->next= s.next;C.s=q.front->next; q.front= s.next;D.s=q; q.front->next= s.next;106C3(32).循环队列sq中,用数组elem存放数据元素,sq.front指示队头元素得前一个位置,sq.rear指示队尾元素得当前位置,队列得最大容量为MAXSIZE,则队列满得条件为(D)。
A.sq.front= sq.rearB.sq.front= sq.rear+1C.(sq.front +1)mod MAXSIZE= sq.rearD.(sq.rear+1)mod MAXSIZE= sq.front106C2(33).循环队列sq中,用数组elem存放数据元素,sq.front指示队头元素得前一个位置,sq.rear指示队尾元素得当前位置,队列得最大容量为MAXSIZE,则在队列未满时元素x入队列得主要操作为(A)。
A.sq.rear= (sq.rear+1)mod MAXSIZE; sq.elem[sq.rear]=x;B.sq.elem[sq.rear]=x; sq.rear= (sq.rear+1)mod MAXSIZE;C.sq.front= (sq.front+1)mod MAXSIZE; sq.elem[sq.front]=x;D.sq.elem[sq.front]=x; sq.front= sq.front+1;106B2(34).循环队列sq中,用数组elem[0‥25]存放数据元素,sq.front指示队头元素得前一个位置,sq.rear 指示队尾元素得当前位置,设当前sq.front为20,sq.rear为12,则当前队列中得元素个数为(D)。