数据l构W六章填I题?qing)答案[14]_跨考网
1Q下面用类pascal语言写的对二叉树(wi)q行操作的算法,请仔l阅?/span>
TYPE pointer=^tnodetp;
tnodetp=RECORD data: char; llink,rlink: pointerQ?/span>END;
linkstack=^linknodet;
linknodet=RECORD data:pointerQ?/span> next;linkstackQ?/span>END;
PROC unknown (VAR t:pointer);
VAR p,tempQ?/span>pointer;
BEGIN p:=t;
IF p<> NIL THEN
[temp:=p^.llink Q?/span>p^.llink:=p^.rlink;Q?/span>p^.rlink:=temp;
unknown(p^.llink); unknown(p^.rlink); ]
END;
?/span> 指出该算法完成了(jin)什么功?/span>
?/span> 用栈以上算法改为非递归法unknown1,其中有若q语句或条gI缺请在I缺处填写上适当的语句或条g
PROC inistack(VAR s:linkstack);
(1)_______; s^.next:=NIL;
ENDP;
FUNC empty (s:linkstack):boolean;
IF (2)_______THEN empty:=true ELSE empty:=false;
ENDF;
FUNC gettop(s:linkstack):pointer;
gettop:= (3)_______;
ENDF;
FUNC pop(VAR s:linkstack)Q?/span>pointer;
VAR p:linkstack;
pop:=s^.next^.data; p:=s^.next; (4)_______Q?/span>(5)_______;
ENDF;
PROC push (VAR s:linkstack;x:pointer);
VAR p:linkstack;
new(p); p^.data:=x; (6)_______; s^.next:=p;
ENDP;
PROC unknown1(VAR t:pointer);
VAR p,temp: pointer; finish: boolean;
BEGIN
inistack(s); finish:=false; p:=t;
REPEAT
WHILE p<> NIL DO
[temp:=p^.llink; p^.llink:=p^.rlink; p^.rlink:=temp;
(7)_______; p:=p^.llink; ];
IF (8)____THEN [p:=gettop(s);temp;=pop(s);] ELSE (9)_______
UNTIL (10)___
ENDP; 【北方交通大?/span> 2000 三?/span> (25?/span>)?/span>
【参考答案?/span>
?/span> 本算法将二叉?wi)的左右子?wi)交换
?/span> (1)new (s) //初始化,甌l点 (2) s^.next=NIL //s是带头结点的链栈
(3)s^.next^.data //取栈元?/span> (4)s^.next:= p^.next //栈顶指针下移
(5)dispose(p) //回收I间 (6)p^.next:=s^.next //新l点入链?/span>
(7)push(s,p^.rchild) //先沿?wi)的左分支向下,?/span>p的右子女入栈保存
(8)NOT empty(s) (9) finishe:=true //已完?/span> (10)finish=true Q或s^.next=NILQ?/span>
2Q具?/span>n个结点的完全二叉?wi),已经序存储在一l数l?/span>A[1..n]中,下面法是将A中顺序存储变Z叉链表存储的完全二叉?wi)。请填入适当的语句在下面?/span>_______上,完成上述法?/span>
TYPE ar=ARRAY[1..n] OF datatype;
pointer=RECORD data:datatype; lchild, rchild: pointer; END;
PROCEDURE btree(VAR a: ar; VAR p:pointer);
VAR i:integer;
PROCEDURE createtree(VAR t: pointer;i: integer)
BEGIN (1)_______; t^.data=a[i];
IF(2)_____THEN creattree((3)_______) ELSE t^.lchild:=NIL;
IF(4)_____THEN createtree((5)_______) ELSE t^.rchild:=NIL;
END;
BEGIN
j:= (6)__; createtree(p,j)
END; ?a target="_blank">北京邮电(sh)大学 1998 五?/span> (15?/span>)?/span>
【参考答案?/span>
(1)new(t) (2)2*i?/span>n (3)t^.lchild,2*i (4)2*i+1?/span>n (5)t^.rchild,2*i+1 (6)1
2022考研初复试已l接q尾壎ͼ考研学子全面q入2023届备?/b>Q跨考ؓ(f)23考研的考生准备?0大课包全E准备、全q复?fn)备考计划、目标院校专业辅对{全真复试模拟练?fn)和全程针对性指|2023考研的小伙伴针也已经开始择校和复习(fn)?jin),跨考考研畅学5.0版本全新升Q无Z在校在家都可以更自如的完成你的考研复习(fn)Q?/a>暑假集训?/span>带来?jin)院校专业初步选择Q明方向;考研备考全q规划,核心(j)知识点入门;个性化制定备考方案,助你赢在赯U,早出发一点离成功更q一点!
点击右侧咨询?/strong>直接前往?jin)解更?/strong>
考研院校专业选择和考研复习(fn)计划 | |||
2023备考学?/td> | 2023U上U下随时学习(fn) | 34所自划UK校考研复试分数U汇?/td> | |
2022考研复试最全信息整?/a> | 全国各招生院校考研复试分数U汇?/a> | ||
2023全日制封闭训l?/span> | 全国各招生院校考研调剂信息汇?/a> | ||
2023考研先知 | 考研考试U目有哪些? | 如何正确看待考研分数U? | |
不同院校相同专业如何选择更适合自己?/a> | 从就业说考研如何择专业? | ||
手把手教你如何选专业? | 高校研究生教育各学科门类排行?/a> |
相关推荐
跨考考研评
班型 | 定向班型 | 开班时?/td> | 高定?/td> | 标准?/td> | 评介绍 | 咨询 |
U季集训 | 冲刺?/td> | 9.10-12.20 | 168000 | 24800?/td> | 班面授+专业??+专业译֮向辅?协议加强评(高定?+专属规划{疑(高定?+_化答?复试资源(高定?+复试译(高定?+复试指导(高定?+复试班主?v1服务(高定?+复试面授密训(高定?+复试1v1(高定? | |
2023集训畅学 | 非定向(政英?数政qQ?/td> | 每月20?/td> | 22800?协议? | 13800?/td> | 先行阶在U课E?基础阶在U课E?强化阶在U课E?真题阶在U课E?冲刺阶在U课E?专业NҎ(gu)一对一评+班主dE督学服?全程规划体系+全程试体系+全程_化答?择校择专业能力定位体p?全年关键环节指导体系+初试加强?初试专属服务+复试全科标准班服?/td> |