《数据结构-顺序栈》

                            顺序栈头文件: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

转载于:https://www.cnblogs.com/intelligentfish/archive/2011/02/25/1964705.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值