数据结构(6)之队列
1 前言
上一节我们介绍了线性表,今天我们来介绍一下队列。
2 详述栈(stack)是限定仅在表尾进行插入和删除操作的线性表。
允许插入和删除的一段称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。
栈的插入操作,叫做进栈,也称压栈,入栈。
栈的删除操作,叫做出栈,也叫做弹栈。
2.1 栈的抽象数据类型2.2.1 进栈操作2.2.2 出栈操作结构代码如下:
/*若栈不空,则删除S的栈顶元素,用e返回值,并返回OK;否则返回ERROR*/Status Pop(LinkStack *S,SElemType *e){ LinkStackPtr p; if(StackEmpty(*S)) return ERROR; *e = S->top->data; p = S->top; /*将栈顶结点赋值给p,如图3*/ S->top = S->top->next; /*使得栈顶指针下移一位,指向后一结点,如图4*/ free(p); /*释放结点p*/ S->count--; return OK; }如果栈的使用过程中元素变化不可预料,有时很小,有时很大,那么最好用链栈,反之,如果它的变化在可控范围内,建议使用顺序栈会更好一些。
3 结语以上是所有内容,希望对大家有所帮助。