(3)
-- --
3.1PASCALN(Niklaus Wirth)
3.1.1 1.(1) (2) (3) (4)
2. 1966BohmJacopini
3.1.2 1. 2. 3. 4. 05. ,
3.1.3 :
PADN-SVB
VB
VB
1.3.1.4
2.
3.Func fac(n As Integer) If n=1 then fac=1 Else fac=n*fac(n-1) Endif
n=01
4.f(n)n! n(n-1)! nf(n-1)10!f(0)=1f(n)=nf(n-1)f(1)f(2)f(9)f(10)
5.6.
Proc Backtracking(succ : Boolean) While do While and do Enddo If Then return (SUCC=FALSE) EndIf Enddoreturn (SUCC=TRUE)End Backtracking
3.1.5 ---- ----
--------
3.2 3.2.1 1 Data-Structure (D,R)DRD (
2.
3.2.2 n:(a1, a2 ,a3,an) n(n0)n=0.; ai
(1)(2)(3)
1.,(1) (a1, a2aiai+1an)ixSub Insert(ByRef A:Type,n,i,x) If(in+1) Then ERROR() Else For j=n Down To i A(j+1)=A(j) Next j Endif A(i)=x n=n+1 End
(2)n(a1,a2,ai-1,ai,ai+1an)ii+1n(a1, a2 ,ai-1,ai+1an):PROC DELETE (VAR A,VAR n,I)If (in) Then ERROR ('') ELSE FOR j=i TO n-1 A(j)=A(j+1) Next j n=n-1 EndifEnd
2(1():
(NIL )head
(2NIL(3
3.(STACK)(1(top)(bottom)
(2
[2]
FUNCTION POPSTACK (BeyRef STACKVAR topVAR y)Bool
FALSE
yTRUE
BEGIN
IF top=0
THEN RETURN (FALSE)
ELSE
y=STACK(top) y
top=top-1
RETURN (TRUE)
ENDIF
ENDFunc
(a*(b+c)+d)
4.(1(Queue)(Rear)(Front)
R1F1RR
NN
rear = mod(rear,m)+1front = mod(front,m)+1front = rear S
front = rear SS
F=RS0S1
If ( F = R ) and ( S = 1 ) Then ERROR () Return;Else R = mod ( R,m ) + 1; Q(R) = x; S = 1;Endif
If S = 0 Then ERROR () Return;Else F mod ( F,m ) + 1; If F = R Then S = 0;Endif
3.2.3
1.(Tree)Tm(m0)T1,T2,T3 ,,Tm
(A(B(E,F),C(G),D(H,I,J)))
degree
(Binary Tree)n(n0)(n=0)
n(n>0)n-1h(h>=0), h2h-1nn[log2(n+1)]
2.
2. 2LCRCDATALCRC
()45
()45
()45
5. ()()
DLR a) b) c)
LDR a) b) c) LRD a) b) c)
ABEFCGDHIJEFBGCHIJDAFEGJIHDCBA
+
*
-
a
b
c
d
+
+
+
a
b
c
d
+
+
/
*
-
+
*
a
b
c
a
x
y
3.5 graphic
()()
G=(V,E)V()()E(E)
(V1, V2)(V2, V1)(V1, V2)(V2, V1)(V1, V2)V1V2
nn(n-1)/2nn2V1V2(V1, V2)V1V2ViViViVi0G=(V,E)(Vp, Vi1),( Vi1, Vi2),(Vin, Vg)EVpVi1 Vi2,VinVgVpVg
Gn Gnn
nmn+2m()()m+n
VVVV
1-2-4-8-5-6-3-71-2-3-4-5-6-7-8
3.3
3.3.1
4
Func BinSeek(A, Min, Max, Key) :Integer ADim Q: Integer MinMaxWhile Min != Max DoM = Int((Min + Max)/2)If A(M) = Key ThenReturn Q = M ElseIf A(M) > Key ThenMax = MElseMin = MEndIfEndIfQ = BinSeek( A , Min, Max , Key ) 'EndDoReturn 0EndFunc
HashHashA = H(Key)Hash 1000Key4Hash1000HashKeyH(Key)
3.3.2
(5,2,4,6,1,3)
Sub Insort(A, N) For i = 2 To N Do Temp = A(i) 'A(i)A(1...i-1) j = i - 1 While j > 0 And Temp < A(j) Do A(j+1) = A(j) j = j - 1 End Do A(j+1) = Temp Next iEnd Sub
Sub BubbleSort(A,N) Flag = True i = 2 While i x.
3. If k = r, then A[k] = x.
P121 10: ABDEGCFHIJDBGEAHFIJC
V1V4V1V4
V1
V2
V3
V4
V5
3
5
4
6
8
10
16
7
12523334845651424101416357
V1
V2
V3
V4
V5
3
5
4
6
8
10
16
7
12435142451431 2 3 42451 2 3 5 1 41 2 3 5 41 2 41 4134
V1
V2
V3
V4
V5
3
5
4
6
8
10
16
7
85346800440
800
350
8->5
503
8->3
4,4,0
422
8508001123456789101135125014322205265335624
8->58->35->85->33->83->5123456
800
350
8->5
503
8->3
4,4,0
5441367112414113701011596258460722365624653320524322250113510800
151413121110987654321