选择题
-
栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。 请问这句话的说法是正确的吗?(A)
A.正确
B.错误 -
设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3] [3] (10)存放在什么位置?
(脚注(10)表示用10进制表示)(C)
A.688
B.678
C.692
D.696
解析:
其实这里就是重数学问题,我们想不来的可以画一下图就可以清晰的知道。
644 + n * 2 + 2 = 676 ,所以n = 15.
A[3][3] = 644 + 15 * 3 + 3 = 692 -
从表中任意一个节点出发可以依次访问到表中其他所有节点的结构是(C)
A.线性单链表
B.双向链表
C.循环链表
D.线性链表
解析:
A,单链表中中间部分出发只能访问节点的后续节点
B,双向链表可以从任意节点出发遍历链表,但是前后两个指针域分别访问,与题目中依次访问不符
C,循环链表的尾结点的next指针指向链表的第一个元素,是一个环,可以从任意节点出发依次访问所以节点
D,线性链表跟单链表一样,不能做到 -
完成在双循环链表结点p之后插入s的操作是( D )。
A.p->next=s ; s->prior=p; p->next->prior=s ; s->next=p->next;
B.p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;
C.s->prior=p; s->next=p->next; p->next=s; p->next->prior=s ;
D.s->prior=p; s->next=p->next; p->next->prior=s ; p->next=s;
解析:
这里可以画一个长度为二的双向链表,然后插入一个s节点,用每个答案去推理逻辑,最后只有s->prior=p; s->next=p->next; p->next->prior=s ; p->next=s 逻辑才是正确的。 -
判定一个栈 ST(最多元素为 m0)为空的条件是(B)
A.ST->top<>0
B.ST->top=0
C.ST->top<>m0
D.ST->top=m0 -
在循环队列中,若 front 与 rear 分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是 (A)
A.front == rear+1
B.rear == front+1
C.front == rear
D.front == 0
解析:
front为队头、rear为队尾、maxSize为队列的总容量、m为队列中元素的个数:
队空:front = rear
队满:(rear + 1) % maxSize = front
进队:front = (front + 1) % maxSize
出队:rear = (rear + 1) % maxSize
队列中元素的个数 m = (rear - front + maxSize) % maxSize -
下列叙述中正确的是?(D)
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是有队头指针和队尾指针共同决定 -
广义表( ( (a,b,c),d,e,f) )的长度是4 (B)
A.正确
B.错误
解析:
长度:去掉一层括号剩下的是几部分。
深度:去掉几层括号可以到最后一部分。
例: 例如 E((a,(a,b),((a,b),c)))的长度和深度分别为1和4 -
以下属于逻辑结构的是©
A.顺序表
B.哈希表
C.有序表
D.单链表
解析;
从大的方面来说,数据结构是反映数据的一种形式,它具体分为逻辑结构和物理结构,
1,逻辑结构:它是表现数据之间的一种关系的结构,分为线性结构和非线性结构;
2,物理结构:它是表现数据的是如何存储的结构,计算机内部是如何安排该数据的存储,通常分为顺序结构,链式结构,索引结构,哈希结构;
该题中,顺序表,哈希表,单链表均是存储结构;而有序表从字面意思是表达了数据之间是以升序或者降序的关系存在,感觉也是在考察语文功底,明显有序表是逻辑上的关系。