Title:
1?????????
2????????
- ??????????????1??????(??)???????
- ????????????????????????
- ? ??????????????...
- -????????1???????????????
- -?????????
- ??????????????(??????)??????????
???????????????????????
3????????????
- ????????????????????1?????1???
- -????????1???????????????
- ? ???????????????????????????????????????????????
???? - -?????????
- ? ????????2?????????????
???????????????????????
4???????
- ?????????????????????????????????(?????????????)
?1????????????????????????? - ? ??????????????????????????
- ? ????!
- ??????????????????????????????????????????
- ????????????????????????????????????????????????
?? - ??????????????????????????
5????
?
?
??
????
0
1
2
????????????????????????????????????? ????
??? (????????????????? ?????)
6????
- ??????????????????????????????????????????????
- - ????????1??????????
- ? ??????????????????????1???
- - ??????????
- ? ??????????????????1???
- - ???????????????
- ? ????????????????...
????
5
?
?
??
?
?
?
7???????
- ??????????????????????????
- ????????????????????????????
- int STACK_push ( STACK S, int a)
- if ( S-gtt S-gtmax ) return (1) // overflow
error - S-gthS-gtt a
- S-gtt
- return (0)
-
- int STACK_pop ( STACK S, int a)
- if ( S-gtt 0 ) return (1) // underflow
error - S-gtt --
- a S-gthS-gtt
- return (0)
typedef struct int h // array for data
int end // size of array int t //
counter STACK
t
end
?
?
?
?
?
h
8????????
- ????????????????
- ABCDEFGH
- ????? undo ??
end
h
9????????????
- ?????????????????????????????????????
- ????????????????????????????
- (?????????????????????????????????????????????????
????) - ????????????????????????????????????????????????
?? - ????????1??????????????????????????????????
10???????????? (2)
- ??????????????????????2??????????????????
- ? ?????????????????????????????????????????3???
???? - ????????????????????????2???????
- ? ?????????????
11???????????? (3)
- ???????????????
- void STACK_push ( STACK S, int a)
- if ( S-gtt S-gtmax ) // overflow error
- int i, h malloc (sizeof(int)max2 )
// using realloc is easy - for ( i0 iltS-gtt i ) hi S-gthi
- free ( S-gth )
- S-gth h
-
- S-gthS-gtt a
- S-gtt
-
12F I L O
- ????????1??????????
- ? ???????????????????????????????????????????????
???????(???????) - - ??????????????????????????
- - ????????????????? FILO(First In Last Out)???
????
5
?
?
?
?
?
??
13????FIFO
- ???????????????????????????????????????
- (FIFO? First In First Out ???)
- ? ???????????????????????????????????????????????
????????????????(???????) - ? ????????????????
- ?????????????????
- - ??????????????????????????
????
5
?
?
?
?
?
??
14????????
- ?????????????????????????????????????
- ? ???????????????????????????2????????
- ? ???????????????? head?
- ???????????????? tail ???
head
2
7
tail
?
?
?
?
?
??
15?????
- ???????????????????????????
- ???????????????????????????????
- ? ????????tail ?????????
- ? head ??????????????
- ??????????taill ? head ???????
head
5
10
tail
?
?
?
?
?
??
0
16???????
- tail ? head ????????????????
- ??????????????? tail ? head ?????
- ????????????
- ? ???????????????????
- ? ?????????!
- ????
- - ??????????????????
- - (??????-1)??????????
head
5
5
tail
??
17??????
- ??????????????????????????
- ????????????????????????????
- int QUEUE_ins ( QUEUE Q, int a)
- if (( Q-gtt 1 ) Q-gtend Q-gts ) return (1)
// overflow error - Q-gthQ-gtt a
- Q-gtt ( Q-gtt 1 ) Q-gtend
- return (0)
-
- int QUEUE_ext ( QUEUE S, int a)
- if ( Q-gts Q-gtt ) return (1) // underflow
error - a Q-gthQ-gts
- Q-gts ( Q-gts 1 ) Q-gtend
- return (0)
typedef struct int h // array for data
int end // size of array int s //
counter for head int t // counter for
tail QUEUE
t
s
end
?
?
?
h
18???????
- 1?????????????5???????
- ???????????????
- (??????????????????1???30??????????????????????)
end
h
19??? ??????????
- ?????????????????????/??????????????
- ??????????????????????????????????????
- ? ?????????(k??????????????????)????????????
- - ?????????????????????????????????
- - ?????(??????)?????????????????????????????
20????????????
- ?????????????k ???????????
- ? ?????????
- ????????????????????????????????????????????????
??????????? - ??????????(?????)??????(??)???????????????3?????
?? - - ??????
- - ????(?????????????????)
- - ?????(?????????????????)
1
5
7
3
21???????
- ????????????????
- ? ???????????????????????
- ? ?????????????????
- ???????????????????????????????????????????
- ??????????????????????????
- ????????????????????
1
5
7
3
22????????????
- ??????????????????????????????????????????????
- ? ?????????????????????
- ?? C???????LIST???
- ?LIST????????????
- ??????
- ?????????(head ???)
- ??????(tail???)????
- ???????
- (LIST???????)
typedef struct LIST prv // pointer LIST
nxt // pointer int h // value LIST
typedef struct _LIST_ struct _LIST_ prv //
pointer struct _LIST_ nxt // pointer int
h // value LIST
23???(???)
- ??????LIST ???1????????????????????????
- int LIST_init ( LIST L )
- L-gtprv L
- L-gtnxt L
-
- ??????????????????????? head ? tail ???
?
?
1
5
7
3
24??
- ???????????(?????????)???????????????????????
- int LIST_ins ( LIST l, LIST p )
- p-gtnxt-gtprv l
- l-gtnxt p-gtnxt
- p-gtnxt l
- l-gtprv p
-
- ??????????????????????????
?
1
5
7
3
25??
- ???????????(?????????)???????????????????????
- int LIST_del ( LIST l )
- l-gtnxt-gtprv l-gtprv
- l-gtprv-gtnxt l-gtnxt
-
- l ??????????????
- (???????????????????????????)
?
1
5
7
3
26????????
- ????????????????? NULL ?????????????
- ? ?/????????? NULL ????????????????
- ???????????????????????
- ? ??NULL??????????????????
- ? NULL??????????????????????2??(?????????????????
????????????????????????????
???
1
5
7
3
27??????????
- ???????????????????????1???????????????????????
- LIST p
- int e
- for ( p?-gtnxt p!? pp-gtnxt )
- e p-gth
-
-
- ??????? prv ???
?
1
5
7
3
28??
- ?????????????????????????????????????????????
- int LIST_recov ( LIST l )
- LIST_ins ( l, l-gtprv)
-
- ???????????
- ??????????????????????????
- (???????????????????)
?
1
5
7
3
1
5
7
3
29???????
- 1 ?? n ???????????????????????????????
(?????2????????????????) - ??????????????????????????
- (??????????????????????????)
30???????2
- ??2??????? n ???? (x1,y1) ,, (xn,yn) ???
- y ???????? k/n ?????????????
- x ??? k/m ?????????? k,k ????????
- ?????? O( n2 log n) ??
- ?????????????
- O( n( mlog n)) ??
31???????2 (2)
- ???? x ??????????????
- 0/m ???? m/m ???????
- ?? y ??????????? y ????????????????
- 0/m ???? m/m ??????????????????1???????
- ??????O( n2 log n) ? O( n( mlog n)) ??
- ? n ???????
32??????
- ??????????????????????????????
- ????????????
- k?????????????
1
5
7
3
?
33??????????
- ????????????????????1???????????????????????????
????? - ?? ??????????????????
- ??????????????????
- ?????????
- ?? ?????????????????
- ?????????
- ????????????????
- ??????????
- ???????
typedef struct int prv // index to
previous int nxt // index to next int h
// value ALIST
34???????
- h, prv, nxt ????? i ????????? i ?h, nxt, prv
- 0???????????????????????????????????????????
- (??????????????????????????)
- ????????????????????????????
0 1 2 3 4 (?)
h
?
?
?
?
typedef struct int prv // index to
previous int nxt // index to next int h
// value ALIST
prv
2
4
0
3
1
nxt
0
1
3
4
2
35???
- ????????????????????????????????????????
- ? ??????????1??????????????
- ???????????????????????
- ???????????????
36?????????
- ????????????????????????????????
- ????0?? 99 ??????????????????????10?????????
- 10???0 ?? 9?????1????????????????????
0 1 2 3 4 5 6 7 8 9
37???????
- ????10?????????????????
- ????????????????????
- A 1,9,5
- B 1,2
- C 1,6,7
- D 4,5
1 2 3 4 5 6 7 8 9
38??Radix(??) ???
- ?????????????????????????????
- ??????????????????????????????????????
- ????2????????1??????????????????????????????????
???????
1 2 3 4 5 6 7 8 9
39????
- ???????????????????????????????????
- ? ???????????????????????????????????????????????
?? - ????????????????????????????????????????????????
??????
40??????????
- ????????????????????
- ??????S?????????????????????????????????????????
?????????? - ??????????????????
- ?????????2???????????????????
- ? 3?????????????2???????????????????????????????
??? - ? ?????????????S ???????????????????????????????
?????????S ????????????????????
41???????
- ????????????????????
- ??????????????????????????????????????
- 1 ABCABC
- 2 ABBBBB
- 3 CCCBBB
- ??2???????????????ABC????????????A0,B1,C2
?????3??2?????? - AB ? 1 ?CC ? 8 ???
0 1 2 3 4 5 6 7 8
42??????
- ???????????????2?????????????????????????????
- ? ??????????????????????????
- ?????2?????????????????????????????????????
- (?????????????????????????????????????)
- ? ?????????????????????????
- ????x1,x2,x3 , ????? (x1)1(x2)2(x3)3 ??
- ((x11)x21)x3 ???????????(????????)?????????
???
43????????
- ????????????????????????????????????????????????
???? - ? ???????????????????????????????????????????????
??????????????????? - ? ???????????????????????????????????????????????
? - ?????????????????????????????????
- ??????????????????????????2?????????????
44???
- ???????? ???????????????????????????
- ??? ??????????????????????????????
- ??? ?????????????
- ???? ??????????????????????????????????