#include<stdio.h>
#include<malloc.h>
// 练习今天学习的栈 操作
//顺序栈
// 栈的top指向 最上面的元素的 上面位置,意味top 一直都是空的
#define Maxsize 100
typedef int Iint;
typedef struct
{
Iint * bottom;
Iint * top;
int size ;
}Stack;
void InitStack(Stack * );//初始化栈
void PushStack(Stack * );// 压栈
void PopStack (Stack * );//出栈 把出栈元素副e
int main()
{
Stack stack;
InitStack(&stack);
PushStack(&stack);
PopStack (&stack );
return 0;
}
void InitStack(Stack * stack) //初始化栈
{
stack->size = 0;
stack->bottom = (int *)malloc(100 * sizeof(int));
stack->top = stack->bottom;
}
void PushStack(Stack *stack)
{
int t = 1;//t用来接收输入
printf("请输入入栈的元素,退出输入99\n");
if(stack->top - stack->bottom > Maxsize)
{
printf("栈已经满了,亲");
}
else
{
while(t != 99)
{
scanf("%d",&t);
*(stack->top) = t;
(stack->size)++;
(stack->top)++;
}
}
}
void PopStack (Stack * stack )
{
if(stack->bottom == stack->top)
{
printf("空栈");
}
else
{
while(stack->bottom != stack->top)
{
Iint k=0;
k = *((stack->top)-1);
(stack->top)--;
printf("%d\n",k);
(stack->size)--;
}
}
}
#include<malloc.h>
// 练习今天学习的栈 操作
//顺序栈
// 栈的top指向 最上面的元素的 上面位置,意味top 一直都是空的
#define Maxsize 100
typedef int Iint;
typedef struct
{
Iint * bottom;
Iint * top;
int size ;
}Stack;
void InitStack(Stack * );//初始化栈
void PushStack(Stack * );// 压栈
void PopStack (Stack * );//出栈 把出栈元素副e
int main()
{
Stack stack;
InitStack(&stack);
PushStack(&stack);
PopStack (&stack );
return 0;
}
void InitStack(Stack * stack) //初始化栈
{
stack->size = 0;
stack->bottom = (int *)malloc(100 * sizeof(int));
stack->top = stack->bottom;
}
void PushStack(Stack *stack)
{
int t = 1;//t用来接收输入
printf("请输入入栈的元素,退出输入99\n");
if(stack->top - stack->bottom > Maxsize)
{
printf("栈已经满了,亲");
}
else
{
while(t != 99)
{
scanf("%d",&t);
*(stack->top) = t;
(stack->size)++;
(stack->top)++;
}
}
}
void PopStack (Stack * stack )
{
if(stack->bottom == stack->top)
{
printf("空栈");
}
else
{
while(stack->bottom != stack->top)
{
Iint k=0;
k = *((stack->top)-1);
(stack->top)--;
printf("%d\n",k);
(stack->size)--;
}
}
}