栈的括号匹配
#include <iostream>
using namespace std;
#define MaxSize 10
typedef struct
{
char data[MaxSize];
int top;
}SqStack;
void InitStack(SqStack &s)
{
s.top=-1;
}
bool StackEmpty(const SqStack &s)
{
if (s.top==-1)
{
return true;
}
else
{
return false;
}
}
bool Push(SqStack &s,char val)
{
if (s.top==MaxSize-1)
{
return false;
}
s.top++;
s.data[s.top]=val;
return true;
}
bool Pop(SqStack &s,char &return_val)
{
if (s.top==-1)
{
return false;
}
return_val=s.data[s.top];
s.top--;
return true;
}
bool bracketCheck(char str[],int length)
{
SqStack s;
InitStack(s);
for (int i=0;i<length;i++)
{
if (str[i]=='(' || str[i]=='[' || str[i]=='{')
{
Push(s,str[i]);
}
else
{
if (StackEmpty(s))
{
return false;
}
char topItem;
Pop(s,topItem);
if (str[i]==')' && topItem!='(')
{
return false;
}
if (str[i]==']' && topItem!='[')
{
return false;
}
if (str[i]=='}' && topItem!='{')
{
return false;
}
}
}
return StackEmpty(s);
}
int main()
{
return 0;
}
栈与递归 阶乘
#include <iostream>
using namespace std;
int factorial(int n)
{
if (n==0 || n==1)
{
return 1;
}
else
{
return n*factorial(n-1);
}
}
int main()
{
int x=factorial(10);
cout<<x<<endl;
return 0;
}
栈与递归 斐波那契数列
#include <iostream>
using namespace std;
int Fib(int n)
{
if (n==0)
{
return 0;
}
else if (n==1)
{
return 1;
}
else
{
return Fib(n-1)+Fib(n-2);
}
}
int main()
{
int x=Fib(4);
cout<<x<<endl;
return 0;
}