栈和队列是两种在运算时要受到某些特殊限制的线性表,故也称为限定性的数据结构。

1.概念

  定义:栈是限定只能通过一端来实现数据存储和检索的一种线性表。

  栈顶(top)是允许插入和删除的一端。

  栈底(bottom)是不允许插入和删除的一端。

  修改原则:先进后出或后进先出(Last In Frist Out,LIFO)  

 2.栈的存储结构

  栈的存储结构有顺序存储和链式存储。

  ①栈的顺序存储(顺序栈):指用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置。

  ②栈的链式存储(链栈):用链表作为存储结构,由于栈中元素的插入和删除仅在栈顶一端进行,因此不必设置头结点,链表的头指针就是栈顶指针。

 3.栈的操作  

  stacksize:栈的最大容量,表示系统分配给栈的最大存储单元。

  插入元素(入栈):先top+1,再插入元素。

  删除元素(出栈):先出栈,再top-1。

  空栈的判断:top=0 或 top=bottom。

  求栈内元素个数:num=top-bottom。

  栈满判断:top=stacksize。

4.栈的典型应用

  表达式求值、括号匹配、递归函数调用、数制转换等。

 

posted @ 2022-02-23 19:37  景池  阅读(320)  评论(0)    收藏  举报