????(P85) - PowerPoint PPT Presentation

1 / 71
About This Presentation
Title:

????(P85)

Description:

7.1 P85 n n 0 n 0 – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 72
Provided by: yu3859
Category:
Tags: p85

less

Transcript and Presenter's Notes

Title: ????(P85)


1
7.1 ???????
  • ????(P85)
  • ?n(n0)??????????n0?,?????????????????
  • ? ???????????????
  • ? ?ngt1?,??????????????m(mgt0)??????????T1,T2,
    ,Tm,???????????,????????????
  • ???????????

2
  • ??????(P86)
  • ????????????????
  • ??????0???,????????
  • ???????0???,?????????
  • ??????????????
  • ???????????????????????????,????????????????
  • ????????????????????
  • ??????????n1, n2, , nk???????ni?ni1???(1ltiltk)
    ,??n1, n2, , nk?????n1?nk????????????????????

3
  • ??????(?)
  • ????????,??????????x???y,??x???y???,?y??x????
  • ?????????????1???????,??????i?,????????i1??
  • ???????????????,?????
  • ????????????????????????????,??????????,??????
  • ??m (m0)???????????

4
7.2 ?????????
  • ?????????
  • ??????????,????????,????????
  • ????????????????????,?????????????????????

5
7.2 ?????????
  • ??????(P88)
  • ????n(n0)????????,????????(??????),??????????????
    ?????????????????????????

6
7.2 ?????????
  • ??????
  • ??????????0,1,2
  • ???????,???????????,?????????????????

7
7.2 ?????????
  • ????5?????(P89)

8
7.2 ?????????
?????3????????3??????????
  • ????????????

9
7.2 ?????????
  • ??????
  • ????
  • ???????,??????????????????,?????????????
  • ???????
  • ???????????
  • ????0???2????

10
7.2 ????????? p89
  • ??1 ?????i?????2i-1???(i1)?
  • ??2?????k?????,???2k-1???,???k????
  • ??3???????,????????n0,??2?????n2,?? n0n21?

11
7.2 ?????????
12
7.3.1 ??????????(P91)
  • ??????????????????????????,?????????(??)??????????
    ????????
  • ?????????????????????
  • ??????5??????????????????????????????,?????????
  • ??C/C?????????0,???i?????????i?1?????
  • ????????????????????????????????? ?

13
7.3.1 ??????????
14
7.3.2 ??????????(P92)
  • ?????????????????????,??????????????????????,????
    ??????????

????
??,data???,??????????
lchild????,??????????
rchild????,???????????
15
????????
template ltclass Tgt struct BiNode T data
// ???? BiNodeltTgt lchild // ??????
BiNodeltTgt rchild // ??????
16
7.3.2 ??????????
?
?
17
7.3.2 ??????????
?
?
??n?????????,?n1?????
18
???????????????????BiTree
template ltclass Tgt class BiTree BiNodeltTgt
root // ??? public BiTree()
rootNULL BiTree(vectorltTgt pre) //
??????????? BiTree(vectorltTgt pre,vectorltTgt
mid) // ??????????? BiTree(BiTreeltTgt
tree) // ?????? BiTree()
// ???? void
PreOrder() // ????
void InOrder() // ????
void PostOrder() //
???? void LevelOrder()
// ???? int Count()
// ?????? int Height()
// ???????? BiNodeltTgt Search(T e)
// ???e???? BiNodeltTgt
SearchParent(BiNodeltTgtchild) // ??????????
19
7.4 ??????
??????????????,?????????????????,?????????????????
??
???????????
20
7.4 ??????
????????
????????,??????????? ??DLR ??LDR ??LRD
??????????????????????
21
7.4 ??????
??????? ???????,?????? (??) ?????? ????????????
?????????????
??????A B D G C E F
22
????????
template ltclass Tgt void BiTreeltTgtPreOrder(BiNode
ltTgt p) if (pNULL) return // ?
cout ltlt p-gtdata // ?
PreOrder(p-gtlchild) // ?
PreOrder(p-gtrchild) // ? template ltclass
Tgt void BiTreeltTgtPreOrder() PreOrder(root)
23
7.4 ??????
??????? ???????,?????? (??) ???????????? ??????
?????????????
??????D G B A E C F
24
????????
template ltclass Tgt void BiTreeltTgtInOrder(BiNodelt
Tgt p) if (pNULL) return // ?
InOrder(p-gtlchild) // ? cout ltlt
p-gtdata // ? InOrder(p-gtrchild)
// ? template ltclass Tgt void BiTreeltTgtInOrder(
) InOrder(root)
25
7.4 ??????
??????? ???????,?????? (??) ???????????? ???????
?????? ??????
??????G D B E F C A
26
????????
template ltclass Tgt void BiTreeltTgtPostOrder(BiNod
eltTgt p) if (pNULL) return // ?
PostOrder(p-gtlchild) // ?
PostOrder(p-gtrchild) // ? cout ltlt
p-gtdata // ? template ltclass Tgt void
BiTreeltTgtPostOrder() PostOrder(root)
27
?????????
P132 7.2
28
7.4 ??????
??????? ??????????????????(????)??,????????,?????,
?????????????????
??????A B C D E F G
29
7.4 ??????
????
A
B
C
D
E
F
G
????
A
B
C
G
D
E
F
30
??????????
  • ??Q???
  • 2. ???????,??????
  • 3. ??????Q??
  • 3.1 p??Q???????
  • 3.2 ????p????
  • 3.3 ???p?????,?????????
  • 3.4 ???p?????,?????????

31
?????????
template ltclass Tgt void BiTreeltTgtLevelOrder()
queueltBiNodeltTgt gt Q // Q????? if
(rootNULL) return
Q.push(root) while
(!Q.empty())
BiNodeltTgt pQ.front() Q.pop()
coutltltp-gtdata if (p-gtlchild)
Q.push(p-gtlchild) if (p-gtrchild)
Q.push(p-gtrchild)
32
7.4 ??????
  • ??????
  • ?????????????,???????????????,??????????
  • ????????????????
  • ?????????,????????????????????,????????,??????,
    ???????????????????????

33
????????????A B D C
34
????????????????????
???? ???????,?????? (??) ?????? ???????????? ??
???????????
???? ?????(?),?rootNULL (??) ?????? ???????????
? ?????????????
35
template ltclass Tgt BiTreeltTgtBiTree(vectorltTgt
pre) int i0
rootCreateByPre(pre,i) template ltclass
Tgt BiNodeltTgt BiTreeltTgtCreateByPre(vectorltTgt
pre,int i) char eprei i
// ?????? if (e'') return NULL
// ????????? BiNodeltTgt pnew BiNodeltTgt
p-gtdatae // ????? p-gtlchildCreateByPre(pre
,i) // ????? p-gtrchildCreateByPre(pre,i)
// ????? return p
36
????????ABC,????????5??
37
??????????ABC,???????CBA,????????????
38
??????????????????????????ABCDEFGHI
?BCAEDGHFI,??????????
39
??A B C D E F G H I??B C A E D G H F I
??B C ??B C
?? D E F G H I ?? E D G H F I
40
??F G H I ??G H F I
?? D E F G H I ?? E D G H F I
41
7.5 ??????????
  • ????????????????,???????????????????????????,?????
    ????,???????????,??????????????????
  • ????????? (P104)
  • ????????(P105)
  • ???????????

42
7.6.1 ????????
  • ???????????????,????????????????,???????
  • ??????,??????????????,???????????????????????????,
    ?????????????????
  • ?????????????????,????????????????????O(n),???????
    ??,???????
  • ??????????????????????,??????????????,????????????
    ????,?????????????????

43
7.6.1 ????????
  • ????????????????????????????????
  • ?????????????????????????????????
  • ?????????????????????

44
7.6.1 ????????
????
45
7.6.1 ????????
????
enum BiThrNodePointTypeLINK,THREAD template
ltclass Tgt struct BiThrNode
BiThrNodePointType ltype,rtype T data
BiThrNodeltTgt lchild,rchild
46
7.6.1 ????????
  • ?????????4?,??4??????????,????4??????
  • ? ???????
  • ? ???????
  • ? ???????
  • ? ???????

47
????????
??????? ?????ABCD
48
????????
??????? ?????BADC
49
????????
??????? ?????BDCA
50
???????????P???
  • ???????????????,??????????,???????
  • 1)??????????1,?????,?????????????????????
  • 2)??????????0,?????????,?????????,????????????????
    ???????????,????????????????,?????????1?,?????????
    ???

51
???????????P???
  • ???????????????,??????????,???????
  • 1)??????????1,?????,?????????????????????
  • 2)??????????0,?????,?????????,?????????,??????????
    ?????????????????,????????????????,?????????1?,???
    ?????????

52
7.7.1 ??????
  • ????
  • ??????,??????????????,???????????????????
  • ???????
  • ????,?????????????,?????????????
  • ??????
  • ???(?????)??????
  • ???????
  • ??????(?)?????(?)?????(?)???????

53
??????????? ????,???????? ? ????? ?
???????????????????????
?????? A B D E H I F C G
54
??????????? ????,???????? ? ????????????????????
?? ? ??????
?????? D H I E F B G C A
55
7.7.2 ??????
  • ????????,??????
  • ????????????????
  • ????????
  • ????????????

56
7.7.2 ??????
  • 1)?????
  • ?????????????,??????????????????????

57
7.7.2 ??????
  • 2)???????
  • ?????????????????????????????????????????????????
    ????K,?????????K??????,????????

58
7.7.2 ??????
  • 3)???????
  • ????????????????,n????n?????,n????????????,???????
    ????

59
7.7.2 ??????
  • 4)???????
  • ?????????????,???????????????????????????????????

60
7.8 Huffman??Huffman??
?????
???????????????????? ? if (alt60) bbad
else if (alt70) bpass else if
(alt80) bgeneral else if (alt90)
bgood else bexcellent
61
??,??????,????????????????????????,??????????,????
?????????,?????????????????,???????????????????,??
?????????? ?? 0-59 60-69 70-79
80-89 90-100 ??? 0.05
0.15 0.40 0.30
0.10 ?80?????????????????????????
62
????
  • ?????????????????????????
  • ????????????????n?????????,??????????????????????
    ???????????

WPL
63
????
  • ??????????????????????????ASCII,????
  • ??????????????????????
  • ????????????????????????

64
????
  • ??????????????????????????? ?
  • ???????????????????

65
7.8.1 Huffman?
???????????????????,?????????????
???4?????,??????2,3,4,7,????????????????
WPL32 WPL41
WPL30
66
7.8.1 Huffman?
  • ???????
  • 1. ???????????????,?????????????????
  • 2. ????0(????)???2(????)???,?????1???.

7
2
4
3
2
3
4
7
2
4
3
7
67
7.8.2 Huffman????
W2,3,4,5 ?????????
?1????
?2??????
?3??????
68
W2,3,4,5 ?????????
5
4
5
???2?
2
3
???3?
69
W2,3,4,5 ?????????
???2?
???3?
70
7.8.3 Huffman???? Huffman??
  • ?????A, B, C, D, E, F, G????????9, 11, 5, 7,
    8, 2, 3,???????????

71
???? A00 B10 C010 D110 E111 F0110 G0111
Write a Comment
User Comments (0)
About PowerShow.com