利用静态数组实现栈 c语言

来源:互联网 发布:sql用于授权语句的是 编辑:程序博客网 时间:2024/06/01 11:00
#include<stdio.h>#include<malloc.h>//栈的大小 #define MaxSize 10//数据类型 #define STACK_TYPE inttypedef struct Stack{STACK_TYPE data[MaxSize];int top;}STACK,* PSTACK;//是否为空 bool isEmpty(PSTACK);//是否满 bool isFull(PSTACK);//初始化栈 PSTACK initial(PSTACK);//遍历栈 void traverse(PSTACK);//出栈 int pop(PSTACK);//入栈 bool push(PSTACK,int);int main(void){ PSTACK pStack ;pStack = initial(pStack);push(pStack,2);push(pStack,4);push(pStack,7);push(pStack,9);push(pStack,5);push(pStack,6);STACK_TYPE a = pop(pStack);printf("出栈的值为%d\n",a);a = pop(pStack);printf("出栈的值为%d\n",a);traverse(pStack);} PSTACK initial(PSTACK pStack){pStack = (PSTACK)malloc(sizeof(STACK));if(pStack==NULL){return false;}pStack->top = -1;//printf("%d",pStack->top);return pStack;}void traverse(PSTACK pStack){int i;for(i=0;i<((pStack->top+1));i++){printf("%d\n",pStack->data[i]);}}bool push(PSTACK pStack,STACK_TYPE val){if(isFull(pStack)){return false;}else{pStack->data[pStack->top+1]=val;pStack->top++;return true;}}STACK_TYPE pop(PSTACK pStack){STACK_TYPE temp;if(isEmpty(pStack)){exit(-1);}else{temp = pStack->data[pStack->top];pStack->top--;return temp;}}bool isFull(PSTACK pStack){if(pStack->top==MaxSize){return true;}else{return false;}}bool isEmpty(PSTACK pStack){if(pStack->top==-1){return true;}else{return false;}}

0 0
原创粉丝点击