栈的实现演示

来源:互联网 发布:数码视讯 知乎 编辑:程序博客网 时间:2024/04/29 23:46
#include <stdio.h>#include <stdlib.h>typedef int elementype;#define MAX 100void creatstack();int isempty();int isfull();void push(elementype x,elementype *stack);elementype pop(elementype *stack);void printstack(elementype *stack);elementype top = -1;elementype *stack;int main(){   elementype n,c;if((stack = (elementype *)malloc(sizeof(elementype)*MAX))== NULL)return 1;   //creatstack();   printf("please input choose:\n");   printf("0 represent push;\n");   printf("1 represent pop.\n");   printf("2 represent show.\n");   while(scanf("%d",&n) != EOF){      switch(n){     case 0:    printf("please input element you want insert:\n");    scanf("%d",&c);   push(c,stack);   break; case 1:  printf("you will delete the top element of stack\n");  c = pop(stack);  printf("the element you have poped out is:%d\n",c);   break; case 2:  printf("show the stack:\n");   printstack(stack); default:   printf("please choose again\n");break;  }     }   return 0;}/*void creatstack(){ // elementype stack[MAX];}*/void printstack(elementype *stack){ int i = 0; if(isempty())    printf("cannot print stack ,because your stack is empty.\n"); else{   printf("the stack is:\n");  for(i = 0;i <= top;i++) printf("%d-->",*(stack + i)); } printf("end.\n");}int isempty(){  return top == -1;} int isfull(){  return top == MAX;}void push(elementype x,elementype *stack){  if(isfull())      printf("the stack is full,please delete.\n");  else{     top = top +1; *(stack + top) = x;  }}elementype pop(elementype *stack){  if (isempty()){     printf("the stack is empty ,please puse and then pop\n"); return (elementype)0; }  else{  top = top -1;    return *(stack + top + 1);   }}


原创粉丝点击