C用数组来实现栈管理

来源:互联网 发布:js then的用法 编辑:程序博客网 时间:2024/04/29 21:05

数据栈:

栈是一种先进后出(后进先出)的数据结构,而在C中,栈的使用是无处不在的,很多函数的使用都是基于栈的栈是一种特殊的线性表,只允许在一端进行插入或删除的线性表栈中分类:    栈顶    栈底对栈进行操作:    栈顶指针是控制栈顶元素的    没有数据时:空栈    插入数据时:进栈,入栈,压栈    删除时:出栈,退栈

下面为仅仅用数组实现栈部分的代码:
头文件stack.h

#ifndef __STACK_H__  2 #define __STACK_H__  3   4 #define MAX_NUM 100  5   6 int is_empty();  7   8 int popStack();  9  10 void pushStack(int element); 11  12 int is_full(); 13  14 int getStackTop(); 15  16 int getStackEnd(); 17  18 #endif

头文件的实现:stack.c

   #include"stack.h"      int position;          int stackElement [MAX_NUM];   int is_empty(){       return position == 0;   }                 int popStack(){                   if(is_empty()){          return 0;      }      int element = stackElement[--position];      return element;  }                   void pushStack(int element){      if(is_full()){                                                            return;                                                           }                                                                     stackElement[position] = element;                                     position = position + 1;                                                                                                           }                                                                     int is_full(){                                                            return position >= MAX_NUM;                                       }                                                                     int getStackTop(){                                                        return stackElement[position - 1];                                }                                                                     int getStackEnd(){                                                        return stackElement[0];                                           } 

调试段代码:

   #include<stdio.h>   #include"stack.h"   int main(int argc,char * argv[]){      pushStack (0);      pushStack (1);      pushStack (2);      pushStack (3);      printf("%d\n",popStack());      printf("%d\n",popStack());      pushStack(6);      printf("%d\n",popStack());      pushStack(9);      pushStack(14);      printf("%d\n",getStackTop());      return 0;  }

调试结果为:
3
2
6
14
很简单的一个关于用数组去实现栈的用法,仅仅只是单纯的数组去实现,同时也便于加深我们对于栈的理解

0 0