网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当的语句,完成栈类模板的定义。
template<class t>
class Tstack
{
enum{size=1000};
T stack[size]
int top;
public:
Tsack():top(0){}
void push(const T&i){
if(top<size)
stack[top++]=i;
}
T pop()
{
if(top==O)exit(1);//栈空时终止运行
retum【 】;
}
};
参考答案
更多 “ 下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当的语句,完成栈类模板的定义。template<class t>class Tstack{enum{size=1000};T stack[size]int top;public:Tsack():top(0){}void push(const Ti){if(top<size)stack[top++]=i;}T pop(){if(top==O)exit(1);//栈空时终止运行retum【 】;}}; ” 相关考题
考题
●试题七阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。【说明】以下程序的功能是设计一个栈类stackT,并建立一个整数栈。【程序】#includeiostream.h#includestdliB.hconst int Max=20;∥栈大小templateclass Tclass stack{∥栈元素数组T s[Max];∥栈顶下标int top;public:stack(){top=-1;∥栈顶初始化为-1}void push(const T &item);∥item入栈T pop();∥出栈int stackempty()const;∥判断栈是否为空};templateclass Tvoid stackT::push(const T &item){if(top== (1) ){cout"栈满溢出"endl;exit (1) ;}top++;s[top]=item;}templateclass TT stackT::pop(){T temp;if(top== (2) ){cout″栈为空,不能出栈操作″endl;exit (1) ;}temp=s[top];top--;return temp;}templateclass Tint stackT::stackempty()const{return top==-1;}void main(){stackintst;int a[]={1,2,3,4,5 };cout"整数栈"endl;cout"入栈序列:"endl;for(int i=0;i4;i++){couta[i]" ";(3) ;}coutendl"出栈序列:";while( (4) )cout (5) " ";coutendl;}
考题
( 15 )请将下列栈类 Stack 补充完整class Stack{private:int pList[100]; // int 数组 , 用于存放栈的元素int top; // 栈顶元素 ( 数组下标 )public:Stack():top(0){}void Push(const int item); // 新元素 item 压入栈int Pop(void); // 将栈顶元素弹出栈};void Stack::Push(const int item){if(top == 99) // 如果栈满 , 程序终止exit(1);top++; // 栈顶指针增 1___________;}int Stack::Pop(){if(top0) // 如果栈空 , 程序终止exit(1);return pList[top--];}
考题
( 3 )有一个初始为空的栈和下面的输入序列 A,B,C,D,E,F , 现经过如下操作: push, push,top,pop, top, push, push, push, top, pop, pop, pop, push 。 上述操作序列完成后栈中的元素列表(从底到顶)为【 3 】 。
考题
若push、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为(29)。A.321B.213C.231D.123
考题
POP(PUSH(S,A))的运算步骤是首先将元素A压入栈中,若栈S满,出现上溢现象,否则将元素A压入栈顶,且元素个数加1,然后做POP(S)运算,将栈顶元素弹出,且元素个数减一。( )
此题为判断题(对,错)。
考题
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[说明]用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为datatype,以LinkStack记链栈结构,其类型定义为:typedef struct node{ datatype data;stmct node * next;} StackNode, * LinkStack;由于栈的主要操作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设top为栈顶指针,即:LinkStack top。下面各函数的功能说明如下:(1)LinkStack Init_LinkStack():建立并返回空的链栈;(2)int Empty_LinkStack(LinkStack top):判断top所指链栈是否空;(3)LinkStack Push_LinkStack(LinkStacktop,datatypex):将数据x压人top所指链栈的栈顶,返回新栈指针;(4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出top所指链栈的栈顶元素x,返回新栈指针。[函数]LinkStaek Init_LinkStack( ){ returnNULL;int Empty_LinkStack ( LinkStaek top)if(top = = NULL) return 1;else return 0;LinkStaek Push_LinkStaek( LinkStaektop, datatype X){ StaekNode *s;s=malloc (sizeof(StaekNode) );(1)= x;(2)= top;(3);return top;}LinkStaek Pop_LinkStack (LinkStacktop, datatype * x){ StaekNode *p;if(top = = NULL) return NULL;else{* x =(4);p = top;(5);free (p);return top;}}
考题
基于以下描述:有一个初始为空的栈和下面的输入序列A,B,c,D,E,F;现经过如下操作:push,push,push,top,pop,top,pop,push,pus,top,pop,pop,pop,push。下列哪一个是正确的从栈中删除元素的序列?A.CBEB.EBDC.BEDCAD.CBEDA
考题
若push、pop分别表示入栈、出栈操作,初始栈为空且元素3、2、1依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为__(3)__。A.321B.213C.231D.123
考题
若push、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为 ( ) A.321
B.213
C.231
D.123
热门标签
最新试卷