如果以链表作为栈的存储结构,则退栈操作时(55)。A.必须判别栈是否满B.对栈不作任何判别C.判别栈元
如果以链表作为栈的存储结构,则退栈操作时(55)。
A.必须判别栈是否满
B.对栈不作任何判别
C.判别栈元素的类型
D.必须判别栈是否空
如果以链表作为栈的存储结构,则退栈操作时(55)。
A.必须判别栈是否满
B.对栈不作任何判别
C.判别栈元素的类型
D.必须判别栈是否空
如果以链表为栈的存储结构,则退栈操作时()
A.必须判别栈是否满
B.必须判别栈是否空
C.判别栈元素的类型
D.对栈不作任何判别
如果以链表作为栈的存储结构,则入栈操作时()。
A.必须判别栈是否满
B.必须判别栈是否为空
C.必须判别栈元素类型
D.可不做任何判断
如果以链表为栈的存储结构,则退栈操作是______。
A.必须判别栈是否满
B.必须判别栈是否空
C.判别栈元素的类型
D.刘栈不作任何判别
● 下面关于栈和队列的叙述,错误的是 (60) 。
(60)
A. 栈和队列都是操作受限的线性表
B. 队列采用单循环链表存储时, 只需设置队尾指针就可使入队和出队操作的时间复杂度都为O(1)
C. 若队列的数据规模n可以确定,则采用顺序存储结构比链式存储结构效率更高
D. 利用两个栈可以模拟一个队列的操作,反之亦可
A.数据空间适合采用静态存储分配策略
B. 数据空间必须采用堆存储分配策略
C. 指令空间需要采用栈结构
D. 指令代码必须放入堆区
栈通常采用的两种存储结构是 ______。
A.线性存储结构和链表存储结构
B.散列方式和索引方式
C.链表存储结构和数组
D.线性存储结构和非线性存储结构
阅读以下说明,Java代码将应填入(n)处的字句写在对应栏内。
【说明】
链表和栈对象的共同特征是:在数据上执行的操作与在每个对象中实体存储的基本类型无关。例如,一个栈存储实体后,只要保证最后存储的项最先用,最先存储的项最后用,则栈的操作可以从链表的操作中派生得到。程序6-1实现了链表的操作,程序6-2实现了栈操作。
import java.io.*;
class Node //定义结点
{ private String m_content;
private Node m_next;
Node(String str)
{ m_content=str;
m_next=null; }
Node(String str,Node next)
{ m_content=str;
m_next=next; }
String getData() //获取结点数据域
{ return m_content;}
void setNext(Node next] //设置下一个结点值
{ m_next=next; }
Node getNext() //返回下一个结点
{ return m_next; )
}
【程序6-1】
class List
{ Node Head;
List()
{ Head=null; }
void insert(String str) //将数据str的结点插入在整个链表前面
{ if(Head==null)
Head=new Node(str);
else
(1)
}
void append(String str) //将数据str的结点插入在整个链表尾部
{ Node tempnode=Head;
it(tempnode==null)
Heed=new Node(str);
else
{ white(tempnode.getNext()!=null)
(2)
(3) }
}
String get() //移出链表第一个结点,并返回该结点的数据域
{ Srting temp=new String();
if(Head==null)
{ System.out.println("Errow! from empty list!")
System.exit(0); }
else
{ temp=Head.getData();
(4) }
return temp;
}
}
【程序6-2】
class Stack extends List
{ void push(String str) //进栈
{ (5) }
String pop() //出栈
{ return get();}
}