栈(stark)
后进先出(last-in first-out, LIFO)的线性集合,只能在一端(称为栈顶(top))对数据项进行插入和删除,从栈放入项和从栈删除项的操作分别叫作压入(push)和弹出(pop)
栈的顺序存储实现
栈的顺序存储结构通常由一个一维数组和一个纪录栈顶元素位置的变量组成
# def MaxSize <存储数据元素的最大个数>typedef struct SNode *Stack;struct SNode{ElementType Data[MaxSize];int Top;}# 入栈void Push(Stack PtrS, ElementType item){if(PtrS->Top == MaxSize - 1{printf("堆栈满"); return;}else{PtrS->Data[++(Ptrs->Top)] = item;return;}}# 出栈ElementType Pop(Stack PtrS){if(Ptrs->Top == -1){printf("堆栈空");return ERROR;}else{return(PtrS->Data[(PtrS->Top)--]);}}
