数据结构(C语言版)——3、栈

    科技2022-08-19  94

    (1)栈的定义

    栈也是一种线性表,其特殊性在于栈的基本操作是线性表操作的子集,即栈是操作受限的线性表。 栈(stack)是限定仅在表尾进行插入或删除操作的线性表。其中,对栈而言,表尾端称为栈顶(top),表头端称为栈底(bottom)。不含元素的空表称为空栈。假设栈 S = ( a 1 , a 2 , a 3 . . . , a n ) S = (a_1,a_2,a_3...,a_n) S=a1a2a3...an,且元素按照 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an 次序进栈,则称 a 1 a_1 a1 为栈底元素, a n a_n an 为栈顶元素。其中,退栈的第一个元素为栈顶元素 a n a_n an。即栈的修改是按后进先出的原则进行的,因此栈又称为后进先出(last in first out)的线性表(简称LIFO结构)。

    (2)栈的分类与实现

    顺序栈:即栈的顺序存储结构表示,是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针 top 指示栈顶元素在顺序栈中的位置。链式栈:即栈的链式存储结构表示,结构类似于单链表结构。

    具体实现如下链接。

    顺序栈链式栈

    (3)栈的应用

    数制转换括号匹配的检验行编辑程序迷宫求解表达式求值

    文章参考书籍《数据结构:C语言版/严蔚敏,吴伟民编著.》

    Processed: 0.009, SQL: 10