#include <stdio.h>
#include <stdlib.h>
typedef int elementype;
#define MAX 100
void 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);
}
}
栈的实现演示
最新推荐文章于 2022-12-16 18:30:42 发布