Title: 4.1 ??(stack)
1? 4 ? ??? ?
- 4.1 ??(stack)
- 4.2 ??? ??
- 4.3 ?
- 4.4 ??
2??(stack)
- ??? ??? ??
- STACK???STACK? ??????? ? ???? ?? ???? ???
??(????Last-In First-Out)? ???? ?? ???? ?????
??? ????? ??.STACK? ??? ??? ?? ?????? ?? ?????
?? ????. ?? ???? ???? ??? ???????? ????? ?? ????
???? ??? ????.
3STACK? ??
??(push)
??(pop)
TOP ??? ??? ??? ?????. ??? TOP???? ???? ???
???? ?? ??? ??? ???? ????, ?? ?? STACK???? ????
???? ???? ??? ??? ????.
STACK? ?? ?? ?.
BOTTOM
4??? ??
- ?????? STACK??? ????? ??? ??? ???.??? ???
???? ?????(Overflow)? ?? ?? ? ???? ??
?????(Underflow)??.
5??? ??
6??? ??
7??? ??
8??? ??
9??? ??? ??
STACK? ????.(??? n? ??? ??.)
-1 0 1 2
. . . n-2 n-1
A B C
bottom
STACK?????
TOP
STACK?? ??
10??? ?? ????
void push(item, stack, n, top) int item,
stack,n, top if(topn) then printf(" Stack
full ") / ??? ????? / else top
top 1 / ??? top ?? /
stacktop item / ??? top? ??? ?? /
11??? ?? ????
void pop(item, stack, top) int item,
stack, top if(top -1) then
printf(" Stack empty ") /?? ?????/
else item stacktop / ??? ??
/ top top - 1 / ??? top ?? /
12?? STACK
- 2?? STACK? ??? ????? ????? 2?? ??? ??? ??.
13?? STACK
- n?? STACK? ??? ????? ????? n?? ??? ??.
14?? ??? ?? ????
/ i ?? ????? ?? / void multi_stackpush(i,
item) int i, item if(ti bi1)
printf("i-th Stack full") else
ti stackti item
15?? ??? ?? ????
/ i ?? ????? ?? / void multi_stackpop(i,
item) int i, item if(ti bi)
printf("i-th Stack Empty") else
item stackti ti--
16?????? STACK
- ??? ?? ?? ?????? ?? ??.
- ??(push)? ??(pop)??? ?? ??? ?? ?? ?????.
- ???? ??(head) ???? ??? top???? ??.
17?????? STACK
data
link
top
...
18????? ??? ??
19????? ??? ??
int stack_pop(int i, int item) struct stack_node
temp if(topi NULL) then printf("Stack
Empty") else temp topi
item topi-gtdata topi
topi-gtlink Free(temp)
return item
20??? ?? 1
- ????? ?? ? ??? ??? ??
- ??? ??? ?? ??? ?? ?? ????4.7
??? ??? ??
21??? ?? 1
22??? ?? 2
- ??? ???
- ?????(infix notation)
- ?????(prefix notation)
- ?????(postfix notation)
23?? ???
- ????? ???? ??? ??? ??
- ?? ???? ???
- ?? ?
- A / B C D E A C
24?? ???
- ????? ?? ??? ??
- ?? ???? ?? ??? ??
- ?? ???? ?? ??? ?? ??? ???? ????.
- ( ( ( ( A / B ) C ) - ( D E ) ) ( A C ) )
- ?? ??? ?? ?? ???? ?? ??? ???? ????.
- ( - ( ( / ( A B ) C ) ( D E ) ) ( A C )
) - ??? ???? ?? ????.
- - / A B C D E A C
25?? ???
- ????? ?? ??? ??
- ?? ???? ?? ??? ??
- ?? ???? ?? ??? ?? ??? ???? ????.
- ( ( ( ( A / B ) C ) - ( D E ) ) ( A C ) )
- ?? ??? ?? ?? ???? ?? ??? ???? ????.
- ( ( ( ( A B ) / C ) ( D E ) ) - ( A C ) )
- ??? ???? ?? ????.
- A B / C D E - A C
-
26??? ??? ??? ??
- ?? ????? ??? ??? ??
- ??? ??? ?? ????
- ?? ????? ??? ??? ??
- ? ?? ??? ??? ????
- ?? ???? ?? ??? ?? ????
- ??? ?? ?? ???
- ??? ??? ?? ???
27?? ????? ??? ??? ??
28?? ????? ??? ??? ??
29?? ????? ??? ??? ??
30?? ????? ??? ??? ??
31?? ????? ??? ??? ??
32?? ????? ??? ??? ??
33?? ????? ??? ??? ??
E
34?? ????? ??? ??? ??
35?? ????? ??? ??? ??
R4R2-R3
36?? ????? ??? ??? ??
37?? ????? ??? ??? ??
R4R2-R3
C
38?? ????? ??? ??? ??
39?? ????? ??? ??? ??
R6R4R5
40?? ????? ??? ??? ??
41?? ????? ??? ??? ??
42?? ????? ??? ??? ??
X A Y B
43?? ????? ??? ??? ??
A/B
44?? ????? ??? ??? ??
C
A/B
45?? ????? ??? ??? ??
X A / B Y C
46?? ????? ??? ??? ??
(A/B)C
47?? ????? ??? ??? ??
D
(A/B)C
48?? ????? ??? ??? ??
E
D
(A/B)C