顺序栈头文件:SQSTACK.H
1 /*
2 说明:头文件包含栈的基本操作
3 */
4 #ifndef __SQSTACK_H__
5 #define __SQSTACK_H__
6
7 #include <stdlib.h>
8
9 #define TRUE 1
10 #define FALSE 0
11 #define ERROR -1
12 #define MAXSIZE 64
13 #define DataType int
14
15 typedef struct {
16 DataType data[MAXSIZE];
17 int top;
18 }SqStack, *SqStackP;
19
20 //堆栈创建
21 SqStackP StackCreate() {
22 SqStackP s = ( SqStackP )malloc( sizeof( SqStack ));
23 if ( !s ) {
24 exit(1);
25 }
26 return s;
27 }
28
29 //堆栈置空
30 int StackClear( const SqStackP S ) {
31 S->top = -1;
32 return TRUE;
33 }
34
35 //堆栈判空
36 int StackEmpty( const SqStackP S ) {
37 return ( ( -1 == S->top ) ? TRUE : FALSE );
38 }
39
40 //元素进栈
41 int Push( const SqStackP S, DataType e ) {
42 if ( MAXSIZE == S->top ) {
43 return ERROR;
44 }
45 ++S->top;
46 S->data[S->top] = e;
47 return TRUE;
48 }
49
50 //元素出栈
51 int Pop( const SqStackP S, DataType *e ) {
52 if ( -1 == S->top ) {
53 return ERROR;
54 }
55 *e = S->data[S->top];
56 --S->top;
57 return TRUE;
58 }
59
60 //取栈顶
61 int GetTopElement( const SqStackP S, DataType *e ) {
62 if ( -1 == S->top ) {
63 return ERROR;
64 }
65 *e = S->data[S->top];
66 return TRUE;
67 }
68 #endif
2 说明:头文件包含栈的基本操作
3 */
4 #ifndef __SQSTACK_H__
5 #define __SQSTACK_H__
6
7 #include <stdlib.h>
8
9 #define TRUE 1
10 #define FALSE 0
11 #define ERROR -1
12 #define MAXSIZE 64
13 #define DataType int
14
15 typedef struct {
16 DataType data[MAXSIZE];
17 int top;
18 }SqStack, *SqStackP;
19
20 //堆栈创建
21 SqStackP StackCreate() {
22 SqStackP s = ( SqStackP )malloc( sizeof( SqStack ));
23 if ( !s ) {
24 exit(1);
25 }
26 return s;
27 }
28
29 //堆栈置空
30 int StackClear( const SqStackP S ) {
31 S->top = -1;
32 return TRUE;
33 }
34
35 //堆栈判空
36 int StackEmpty( const SqStackP S ) {
37 return ( ( -1 == S->top ) ? TRUE : FALSE );
38 }
39
40 //元素进栈
41 int Push( const SqStackP S, DataType e ) {
42 if ( MAXSIZE == S->top ) {
43 return ERROR;
44 }
45 ++S->top;
46 S->data[S->top] = e;
47 return TRUE;
48 }
49
50 //元素出栈
51 int Pop( const SqStackP S, DataType *e ) {
52 if ( -1 == S->top ) {
53 return ERROR;
54 }
55 *e = S->data[S->top];
56 --S->top;
57 return TRUE;
58 }
59
60 //取栈顶
61 int GetTopElement( const SqStackP S, DataType *e ) {
62 if ( -1 == S->top ) {
63 return ERROR;
64 }
65 *e = S->data[S->top];
66 return TRUE;
67 }
68 #endif