从零开始JAVA数据结构学习笔记(四)

本文介绍了栈这种数据结构,它是受限的线性表,具有“后进先出”特点。阐述了栈的顺序存储结构,用数组和栈顶指针操作;还介绍了链式存储结构即链栈,由单链表实现,插入和删除在表头进行,分别说明了元素入栈和出栈的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈的定义:

       栈又称为堆栈,是一种受限的线性表,这是因为它仅允许在线性表的固定一端(表尾)进行插入、删除、栈顶元素等运算,不允许在其他任何位置进行运算,限制操作的表尾端称为“栈顶”,另一端称为“栈底”。

特点:栈是“后进先出”的线性表或“先进后出”的线性表。

 顺序存储结构
        需要一个数组和整型变量,利用数组来存储元素,利用整型变量存储栈顶元素的下标,通常用TOP表示,同时也叫做栈顶指针。

        top = -1即表示栈空。

       元素入栈时,从尾部入栈,同时栈顶指针top+1,栈的长度+1。

 

       元素出栈时,从尾部出栈,同时栈顶指针top-1,栈的长度-1返回元素值。

 链式存储结构
       栈的链式存储结构称为链栈,有结点构成的单链表实现,是运算受限的单链表,其插入和删除操作仅限制在链表的表头位置上进行,故链栈没有必要像单链表一样附加头结点,栈顶指针即为链表的头指针。

       元素入栈时,从头部入栈,同时栈顶指针top指向新的元素,栈的长度+1。

元素出栈时,从头部出栈,同时栈顶指针top指向下一个元素,栈的长度-1,返回元素值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值