数据结构实验三的详细注释
} return false; } else //不为空,即栈中还有栈顶元素 { } *e=s->data[s->top]; //将栈顶元素给传入的变量e s->top--; //栈顶元素出栈,记录栈顶元素的序号的变量自减1 return true;
int output(SqStack s) //出栈
{
DataType i;
printf("输出栈中所有元素:");
for(i=0;i<=s->top;i++) //输出栈中的所有元素
printf(" %5d ",s->data[i]);
putchar('\n');
}
void a1(SqStack s) //题目所给函数
{
int i,n,a[100];
n=0;
while(!StackEmpty(s))//循环判断栈是否为空
{
pop(s,&a[++n]);//将栈顶元素出栈,并将栈顶元素依次赋值给数组a[]。通过这个方式实现将栈数组的元素倒置的存储在数组a[]中
}
for(i=1;i<=n;i++)//在利用倒置后的数组,将其值依次入栈。所得的值就是原栈倒置后的元素序列
push(s,a[i]);
}
int main(void)
{
SqStack s; //定义一个栈指针变量
DataType x,e; //定义栈所存储的数据的类型变量
s=( SqStack)malloc(sizeof(stack)); //申请动态的栈空间给栈指针
if(s==NULL)//当申请失败就退出程序
{
printf("申请失败\n");
return 0;
}