读书人

数据结构(六)之队列

发布时间: 2013-10-08 17:02:59 作者: rapoo

数据结构(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 结语

以上是所有内容,希望对大家有所帮助。

读书人网 >软件架构设计

热点推荐