栈的基本操作有初始化栈,判栈是否为空,入栈,出栈,获取栈顶元素。
栈可分为两种存储结构:顺序栈和链栈。
顺序栈
顺序栈结构:
typedef struct
{
ElemType data[MAXSIZE];
int top;
} SqStack;
顺序栈四个要素:
(1)栈空条件:st.top == -1
(2)栈满条件: st.top == MAXSIZE - 1
(3)进栈条件: st.top++; st.data[st.top] = data;
(4)出栈条件: st.data[st.top] = 0; st.top--;
顺序栈基本操作
View Code
链栈
链栈结构:
typedef struct LinkNode
{
ElemType data;
struct LinkNode *next;
} LiStack;
链栈四个要素:
(1)栈空条件:NULL == st->next
(2)栈满条件: 不存在栈满情况
(3)进栈条件: node->next = st->next; st->next = node;
(4)出栈条件: node = st->next; data = node->data; st->next = node->next; free(node);
链栈基本操作
View Code
本文转自静默虚空博客园博客,原文链接:http://www.cnblogs.com/jingmoxukong/p/3533399.html,如需转载请自行联系原作者