目录
3.栈、队列和数组
3.1栈
3.1部分习题
1.设链表不带头结点且所有操作均在表头进行,则下列最不适合作为链栈的是()
A.只有表头结点指针,没有表尾指针的双向循环链表
B.只有表尾结点指针,没有表头指针的双向循环链表
C.只有表头结点指针,没有表尾指针的单向循环链表
D.只有表尾结点指针,没有表头指针的单向循环链表
2.向一个栈顶指针尾top的链栈(不带头结点)中插入一个x结点,则执行()
A.top->next=x
B.x->next=top->next;top->next=x
C.x->next=top;top=x
D.x->next=top;top=top->next
3.设栈的初始状态为空,当字符序列“n1_”作为栈的输入时,输出长度为3,且可用做C语言标识符序列的有()
A.4 B.5 C.3 D.6
1.C
对于双向循环链表,不管是表头指针还是表尾指针,都可以很方便地找到表头结点,方便在表头做插入或删除操作,而单循环链表通过尾指针可以很方便地找到表头结点,但通过头指针找尾结点则需要遍历一次链表
2.C
进栈在首部插入一个结点x(x->next=top),插入后将top指向该插入结点x
3.C
标识符只能以英文字母或下划线开头,不能数字开头。有n1_,n_1,_1n,_n1四种,其中_n1不可能出现
3.2队列
3.2部分习题
1.最适合用作链队地链表是()
A.带队首指针和队尾指针地循环单链表
B.带队首指针和队尾指针地非循环单链表
C.只带队首指针的非循环单链表
D.只带队首指针的循环单链表
2.在一个链队列中,假设队头指针为front,队尾指针为rear,x所指向的元素需要入队,需执行的操作是()
A.front=x,front=front->next
B.x->next=front->next,front=x
C.rear->next=x,rear=x
D.rear->next=x,x->next=NULL,rear=x
3.设入口到出口之间有n条轨道,列车的行进方向均为从左至右,列车可驶入任意一条轨道,现有编号为1~9的9列列车,驶入的次序依次是8,4,2,5,3,9,1,6,7。若期望驶出的次序依次为1~9,则n至少是()
A.2 B.3 C.4 D.5
1.B
由于队列需在双端操作,选项C,D排除,A中链表在完成进队和出队后还要修改为循环的,多余
2.D
因为是队尾,x->next必须置空
3.C
先入队的元素必须小于后入队的元素,89一条,4567一条,23一条,1一条,所以至少4条