课 后 作 业
- 写出下列程序段的输出结果(栈的元素类型selem type为char)。
void main( ){
stack s;
char x,y;
initstack(s);
x=’c’;y=’k’;
push(s,x); push(s,’a’); push(s,y);
pop(s,x); push(s,’t’); push(s,x);
pop(s,x); push(s,’s’);
while(!stackempty(s)){ pop(s,y);printf(y); };
printf(x);
}
答:stack - 写出下列程序段的输出结果(队列中的元素类型qelem type为char)。
注:enqueue为入队操作,dequeue为出队操作
void main( ){
queue q; initqueue (q);
char x=’e’; y=’c’;
enqueue (q,’h’); enqueue (q,’r’); enqueue (q, y);
dequeue (q,x); enqueue (q,x);
dequeue (q,x); enqueue (q,’a’);
while(!queueempty(q)){ dequeue (q,y);printf(y); };
printf(x);
}
答:char - 简述以下算法的功能(栈和队列的元素类型均为int)。
void algo3(queue q){
stack s; int d;
initstack(s);
while(!queueempty(q)){
dequeue (q,d); push(s,d);
};
while(!stackempty(s)){
pop(s,d); enqueue (q,d);
}
}
答: 用堆栈进行数据逆置