??栈栈??栈的应用栈的应用??队列队列?队列的应用 栈栈 ( ( Stack ) Stack ) ??只允许在一端插入和删除的顺序表只允许在一端插入和删除的顺序表??允许插入和删除允许插入和删除的一端称为的一端称为栈顶栈顶 ( ( top top ) ), ,另一端称另一端称为为栈底栈底( (bottom bottom ) )??特点特点后进先出后进先出( (LIFO LIFO ) ) 退栈进栈进栈示例退栈示例栈的基本操作 1、初始化 2、进栈 3、退栈 4、取栈顶元素 5、判栈是否非空 6、置栈空栈的顺序存储结构顺序栈的定义 typedef int datatype ; #define maxsize 64 typedef struct { datatype data[ maxsize ]; int top; }seqstack ; 栈的基本运算置空栈 SETNULL( seqstack * s) { s->top = -1; }判栈空 int EMPTY( seqstack * s) { if (s->top>=0) return FALSE; else return TRUE; } 进栈 seqstack * PUSH( seqstack * s, datatype x) { if (s->top== maxsize -1) { printf (“ overflow\n ”);return NULL;} else { s->top++; s->data[s->top] =x; } return s; } 退栈 datatype POP( seqstack * s) { if (EMPTY(s)) { printf (“ underflow\n ”);return NULL;} else { s->top--; return(s->data[s->top+1]); } } 取栈顶 datatype TOP( seqstack * s) { if (EMPTY(s)) { printf (“ underflow\n ”);return NULL;} else return(s->data[s->top]); }
栈的应用 来自淘豆网www.taodocs.com转载请标明出处.