数据结构,第三周
1.队列是一种插入和删除操作分别在表的两端进行的线性表,是一种先进先出的结构。 对
2.在单链表中,要访问某个结点,只要知道该结点的指针即可。因此,单链表是一种随机存取结构。错
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点都是由元素和指针构成的。”
3.若一个栈的输入序列为1,2,3,…,N,输出序列的第一个元素是i,则第j个输出元素是j−i−1。错
则第j个输出元素是j-i+1.
4.不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑"溢出"情况。对
5.队列和栈都是运算受限的线性表,只允许在表的两端进行运算。错
队列和栈都是操作受限的线性表,但只有队列允许在表的两端进行运算,而栈只允许在栈顶方向进行操作
6.栈和队列的存储方式,既可以是顺序方式,也可以是链式方式。对
7.C语言中定义的全局变量存放在栈区,局部变量存放在堆区。错
栈区(stack)— 编译器bai自动分配释放 ,例如存放函数的参数值,局部变量的值等。
堆区(heap) — 由程序来分配释放, 若程序中不释放,那么在程序结束时可能由系统进行回收 ,例如全局变量,静态变量,malloc函数。
8.令P代表入栈,O代表出栈。若利用堆栈将中缀表达式3*2+8/4
转为后缀表达式,则相应的堆栈操作序列是
*入栈,然后出栈 +入栈,/入栈,然后分别出栈
POPPOO
9.若top
为指向栈顶元素的指针,判定栈S
(最多容纳m
个元素)为空的条件是
S->top == -1
10.若采用带头、尾指针的单向链表表示一个堆栈,那么该堆栈的栈顶指针top应该如何设置?
将链表头设为top
11.若采用带头、尾指针的单向链表表示一个堆栈,那么该堆栈的栈顶指针top应该如何设置
堆栈和队列都是插入、删除受到约束的线性表
12.设用一个数组A[1……N]来存储一个栈,令A[N]为栈底,用整型变量T指示当前栈顶位置,A[T]为栈顶元素。当从栈中弹出一个元素时,变量T的变化为
T=T+1,因为 A[n]为栈底 那么 存放 数据从a【n】开始 递减 到a【1】 所以 入栈 是减得 出栈是加的
13.链式栈与顺序栈相比,一个比较明显的优点是( )
通常不会出现栈满的情况
14.若用大小为6的数组来实现循环队列,且当前front
和rear
的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,front
和rear
的值分别为多少?
2和0,小为6的数组:下标从0-5;从前面出队,从后面入队,当出队列中删除两个元素,也就是出队,即front+2=2,再插入两个元素,即rear+2= 6,【注】循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。rear=6=0;
15.从一个顺序队列中删除元素时,首先要( )。?????
取出队首指针所指位置上的元素
16.判断一个循环队列QU(最多元素为MaxSize)为空的条件是()。
QU.front == QU.rear
17.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判空条件是( )。
front==rear