/*實現功能:用順序表實現棧的各種操作編譯環境:Windows 64b,vc6.0日期: 2015/7/20作者:wtt561111
*/#define stack_max_num 10
#include "stdio.h"
#include "stdlib.h"
struct SeqStack{int MAXNUM;int t;//始終指向棧頂int *s;
};
typedef struct SeqStack *PSeqStack;/*創建一個空的堆棧,存儲方式為順序表
*/
PSeqStack createEmptyStack_seq(int m){PSeqStack pastack=(PSeqStack)malloc(sizeof (struct SeqStack));if(pastack==NULL){printf("out of spcae!\n");return NULL;}pastack->s=(int * )malloc (sizeof (int)*m);if(pastack==NULL){printf("out of space!\n");return NULL;}pastack->MAXNUM=m;pastack->t=-1;return pastack;
}
/*****************************************************//*推斷堆棧是否為空
*/
int isEmptyStack_seq(PSeqStack pastack){if(pastack->t==(-1) )return 1;return 0;}
/*****************************************************//*將x壓入棧中,成功返回1,否則返回0;
*/
int push_seq(PSeqStack pastack,int x){if(pastack->t >= pastack->MAXNUM){printf("overflow!\n");return 0;}pastack->t=pastack->t+1;pastack->s[pastack->t]=x;return 1;}
/*****************************************************//*將棧頂元素出棧,成功返回1,否則返回0;
*/
int pop_seq(PSeqStack pastack){if(pastack->t==(-1)){printf("empty stack!\n");return 0;}pastack->t=(pastack->t)-1;return 1;}
/*****************************************************//*獲取棧頂元素,成功返回棧頂元素,否則返回-1。
*/
int top_seq(PSeqStack pastack){if(pastack->t==(-1)){printf("empty stack!\n");return -1;}return pastack->s[pastack->t];}
/*****************************************************//********************主函數***************************/
int main(){PSeqStack stack_get=createEmptyStack_seq(stack_max_num);push_seq(stack_get,0);push_seq(stack_get,1);push_seq(stack_get,2);push_seq(stack_get,3);pop_seq(stack_get);int from_top=top_seq(stack_get);printf("%d\n",from_top);return 0;
}
轉載于:https://www.cnblogs.com/llguanli/p/8274224.html
總結
以上是生活随笔為你收集整理的pimg src=http://img.blog.csdn.net/20150823142545135?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ...的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。