3.1在火车站的入口处有n节硬席或软席车厢(分别用h和s来表示)等待调度,写一算法,输出对这n节车厢进行调度的操作序列,使和所有的软件席车厢调到硬席车厢之前。
proc 0301(n:integer);
for i:=1 to n do
[ read (ch);
if ch='s' then write(ch)
else push(s,ch)
while not empty(s) do
write(pop(s))
endp;3.3 写一算法, 求后缀表达式的值。
proc 0303();
inistack(s);
read(ch);
while ch<>'#' do
[ if ch in op
then [ a:=pop(s);
b:=pop(s);
push(s,operate(b,ch,a))
else push(s,ch);
read(ch)
return(pop(s))
endp;3.4 在一个带头结点的循环队列中,只设一个尾指针指向队尾元素结点,编写置队空,入队和出队算法。
proc iniqueue(var r:pointer);
p:=f^.next;
f^.next:=p^.next;
if p= then
p:最后一个元素结点,删除后队列为空}
return(
endf;3.5 以数组q(0..m-1)存放循环队列的元素,同时设rear和quelen表示循环队列中队尾的位置和内含的元素个数, 给出队满条件, 并写出相应的入队列和出队列的算法。
队满条件: quelen=m
入队算法:type arr=array [1..m-1] of elemtp;
proc enqueue(var q:arr; var rear,pqelen:integer; x:elemtp);
if pqulen=m then error('队满)
else [ rear:=(rear+1) mod m;
q[rear]:=x;
quelen:=quelen+1
endp;出队算法:
func dlqueue(q:arr; var rear,quelen:0..m):elemtp;
front:=(rear+m-quelen+1) mod m; [求队首指针的位置]
if quelen=0 then erroe('队空')
else [ quelen:=quelen-1;
return(q[front])
endf;3.6 用表示双端队列,它们队空和队满条件是什么, 写出入队和出队算法。
正向队列。队空条件。
队满条件:( m =
反向队列。队空条件。
队满条件:if <0 then
当时,队满。
proc enqueue(var q:queue; x:elemtp);
if ( mod m =
then error('without)
else [ mod m;
endp;func dlqueue(q:queue):elemtp;
if then erroe('nil')
else [ mod m;
return(
endf;proc enqueue(var q:queue; x:elemtp);
if <0 then
if then error('without)
else [ mod m;
endp;func dlqueue(q:queue):elemtp;
if then erroe('nil')
else [ x:=
if <0 then
else return(x)
endf;
第3章答案
第3章。习题3.1一 1.1 2.在内不可导 3.4.3,二 提示 令,则,则常数,再取。三 略 四 1.满足,2.满足,3.满足,4.满足,五 略 六 1.2.3.习题3.2一 1.2.3.4.5.大 6.7.8.9.二 1.c 2.d 3.a。三 1.在 内单调增加,在内单调减少 2.在内单调增...
第3章答案
答案。3.1 写出如图题3.1所示电路对应的真值表。图题3.1 电路。解 a 图a中标注x y z w,如下图 则 x ab,y z w 则。l c c ab c ab c b ab c b c b 得图 a 的真值表如下 b 图b中,得真值表如下 3.2 组合逻辑电路及输入波形 a b 如图题3....
第3章答案
第3章参 题1 解 1 20 40 60db 2 ro 4 3 1 3 1 k 3 不可以。题2 解 1 v1管组成共射 ce 组态,v2管组成共集 cc 组态。2 整个放大电路的微变等效电路如图所示。3 第一级的电压放大倍数为 ri2是第二级放大电路的输入电阻,ri2 rbe2 1 2 r4 rl...