【文章內(nèi)容簡介】
AR rear:linkisttp。x:elemtp)。 new(s)。s?.data:=x。 s?.next:=rear?.next。 rear?.next:=s。 rear:=s ENDP。 第三章 習題 (3)出隊列函數(shù) FUNC del(VAR rear:linkisttp):elemtp。 IF rear?.next=rear THEN RETURN(NULL)。 h:=rear?.next。 x:=h?.next?.data。q:=h?.next。 h?.next:=q?.next。 IF h?.next=h THEN rear:=h。 dispose(q)。RETURN(x) ENDF。 4. 假設 sequ[0..m1]存放循環(huán)隊列的元素 ,同時設 rear和 quelen分別指示循環(huán)隊列中隊尾元素的位置和包含的元素個數(shù)。試給出此循環(huán)隊列的隊空和隊滿條件,并編寫相應的入隊和出隊算法。 假定形式描述循環(huán)隊列為 TYPE sq= RECORD sequ:ARRAY[0..m1] OF elemtp。 rear,quelen:integer END。 第三章 習題 (1)隊滿條件: =m 隊空條件: =0 (2)入隊算法 PROC add_sq(VAR q:sq。x:elemtp)。 IF =m THEN ERROR(‘overflow’)。 :=(+1) MOD m。 []:=x。 :=+1 ENDP。 (3)出隊算法 FUNC add_sq(VAR q:sq):elemtp。 IF =0 THEN 【 ERROR(‘隊列為空 ’ )。 RETURN(NULL) 】 ; front:=(+m) MOD m。 j:=(front+1) MOD m。 y:=[j]。 :=。 RETURN(y) ENDF。 第五章 習題 1. 設有數(shù)組 B[ -1 3 , 0 5 , -2 4 ] 按行主順序存放在 1000開始的連續(xù)空間中 , 若元素長度為 2, 試計算B [ -1 , 3 , 4 ] 和 B[ 0 ,0 , 0 ] 元素的起始地址 , 并請回答至少給 B數(shù)組分配多少個存儲單元 ? 解: (1)B[ -1 , 3 , 4 ] LOC[1,3,4]=1000+((1(1))*(50+1)*(4(2)+1)+(30)*(4(2)+1)+(4(2)))*2 =1054 B [ 0 , 0 , 0 ] LOC[0,0,0]=1000+((0(1))*(50+1)*(4(2)+1)+(00)* (4(2)+1)+(0(2)))*2 =1088 ( 2 ) 分配給數(shù)組 B (( 3- ( -1 ) +1 ) *( 5-0+1 ) *( 4- ( -2 ) +1 )) *2=420 第六章 習題1. 試編寫按層次遍歷二叉樹的算法 .( From root,visiting each node level by level,in the same level from left to right)2. 試編寫將二叉樹中的所有結點的左右子樹互換的算法 .3. 試編寫輸出二叉樹中所有葉結點的算法 .1. 試編寫按層次遍歷二叉樹的算法 .( From r oo t ,vi sit in g e ach node le v e l by l e v e l, in t h e sa me le v e l from le ft t o right )PR O C t ra v e l_le v e l( bt: bit re ptr)。 { 使用隊列 }I F bt NIL T HEN [ a dd Q ( q, bt) 。W HI L E N O T EMP T Y ( q) DO[ p:= de l Q ( q)。 writ e ( p ↑ .d a t a ) 。I F p ↑ .lc h il d NIL T HEN a dd Q ( q, p ↑ .lc hi ld)。I F p ↑ .r c hi ld NIL T HEN a dd Q ( q, p ↑ .r c hi ld)。 ] ]END P。 { t ra v e l _ le v e l}2. 試編寫將二叉樹中的所有結點的左右子樹互換的算法 .PR O C c ha nge _pr eo r de r ( bt : b i t r ep t r ) 。I F b t NIL TH EN[ x: =b t ↑ . l ch i l d 。 bt ↑ . l ch i l d: =b t ↑ . r ch i l d。 bt ↑ . r ch i l d : =x 。 ch an ge _pr eo r d er ( bt ↑ . l ch i l d) 。ch an ge _pr eo r d er ( bt ↑ . r ch i l d ) 。]EN D P {c ha nge _pr eo r d er }3. 試編寫輸出二叉樹中所有葉結點的算法 .P ROC pr in t _leaf( bt : bit r ep t r )。I F bt NI L T HE NIF ( bt ↑ .l chil d= N IL ) AND ( bt ↑ .rc hi ld =N IL )TH E N w r ite ( bt ↑ .dat a ) E LSE [ pr i nt_leaf ( bt ↑ .l chil d )。pr in t _lea f ( bt ↑ .rc hi ld ) ]。E NDP 。 {pr in t _leaf}4. 一棵 n個結點的完全二叉樹采用順序存儲結構,試寫一非遞歸算法實現(xiàn)對該樹的前序遍歷。 類型描述: CONST maxsize=…… 。 TYPE sqbitree=ARRAY[1..maxsize