用栈模拟递归的过程,注意入栈顺序和递归顺序相反。
顺序栈:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct FuncNode *Node;
struct FuncNode {
char a, b, c;
int n;
};
typedef struct StackNode *Stack;
struct StackNode {
Node *Data;
int top;
int maxSize;
};
Node initNode(char a, char b, char c, int n)
{
Node node = (Node)malloc(sizeof(struct FuncNode));
node->a = a, node->b = b, node->c = c, node->n = n;
return node;
}
Stack initStack()
{
Stack stack = (Stack)malloc(sizeof(struct StackNode));
stack->maxSize = 100;
stack->Data = (Node *)malloc(stack->maxSize * sizeof(Node));
stack->top = -1;
return stack;
}
bool isEmpty(Stack stack)
{
return stack->top == -1;
}
bool isFull