//栈应用-递归-n!
#include <stdio.h>
long f(int n)
{
if (n==0)
return 1;
else
return n*f(n-1);
}
main()
{
int m,n=3;
m=f(n);
printf("%d!=%d\n",n,m);
}
//利用栈先进后出规则,倒置元素
//顺序存储
const int maxsize=50;
typedef struct seqstack
{
char data[maxsize];
int top;
}SeqStk;
main ()
{
SeqStk stk;
int i;
char ch;
InitStack(&stk);
for (ch='A';ch<='A'+10;ch++)
{
Push(&stk,ch);
printf("%c",ch);
}
printf("\n");
while (!EmptyStack(&stk))
{
ch=GetTop(&stk);
Pop(&stk);
printf("%c",ch);
}
printf("\n");
}
//链式存储
void ReverseList(LkStk *head)
{
LkStk *S;
DataType x;
InitStack(S);
p=head->next;
while(p!=NULL)
{
Push(S,p->data);
p=p->next;
}
p=head->next;
while(!EmptyStack(S))
{
p->data=GetTop(S);
Pop(S);
p=p->next;
}
}