【数据结构】堆栈的基本操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【数据结构】堆栈的基本操作
堆栈的概念:
是⼀组相同类型数据的集合,并且拥有后进先出的特点,所有的操作都在堆栈顶端进⾏。

堆栈的基本操作:
Init 创建⼀个空堆栈
Push 把数据压⼊堆栈顶端
Pop 从堆栈顶弹出数据
Top 从栈顶取数据
Empty 判断堆栈是否为空堆栈,是则返回true,否则返回false
Full 判断栈是否为满,是则返回true,否则返回false
⽤数组实现堆栈:
1 typedef struct st_stack{
2int size;
3int *data;
4int top;
5 }T_Stack;
6
7int StackInit( T_Stack *ptStack, int *data, int size)
8 {
9 ptStack->size = size;
10 ptStack->data = data;
11 ptStack->top = 0;
12
13return0;
14 }
15
16int StackPush( T_Stack *ptStack, int data )
17 {
18if( ptStack->top == ptStack->size )
19 {
20return -1;
21 }
22
23 ptStack->data[ptStack->top++] = data;
24
25return0;
26 }
27
28int StackPop( T_Stack *ptStack, int *data )
29 {
30if( ptStack->top == 0 )
31 {
32return -1;
33 }
34
35 *data = ptStack->data[--ptStack->top];
36
37return0;
38 }
39
40int StackTop( T_Stack *ptStack, int *data )
41 {
42if( ptStack->top == 0 )
43 {
44return -1;
45 }
46
47 *data = ptStack->data[ptStack->top - 1];
48
49return0;
50 }
51
52int StackIsEmpty( T_Stack *ptStack )
53 {
54return ( ptStack->top == 0 );
55 }
56
57int StackIsFull( T_Stack *ptStack )
58 {
59return ( ptStack->top == ptStack->size );
60 }。

相关文档
最新文档