栈缓冲法计算数学表达式
问题描述
输入一个字符串(不含括号,只有个位数),输出计算结果
代码
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
struct ListNode {
int data;
ListNode* Next;
ListNode* Last;
};
struct List {
ListNode* header;
ListNode* trailer;
int _size;
};
void CreateList(List* l)//build the list
{
l->_size = 0;
l->header = (ListNode*)malloc(sizeof(ListNode));
l->trailer = (ListNode*)malloc(sizeof(ListNode));
l->header->Next = l->trailer;
l->header->Last = NULL;
l->trailer->Last = l->header;
l->trailer->Next = NULL;
}
void InsertList(List* l, int e)//空表,在尾节点前插入
{
ListNode* np = (ListNode*)malloc(sizeof(ListNode));
np->data = e;
np->Next = l->trailer;
np->Last = l->trailer->Last;
l->trailer->Last->Next = np;
l->trailer->Last = np;
l->_size++;
}
void PushList(List* l, int e)//入栈
{
ListNode* np