数据结构之

编程入门 行业动态 更新时间:2024-10-05 19:11:11

<a href=https://www.elefans.com/category/jswz/34/1769880.html style=数据结构之"/>

数据结构之

堆栈: 栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。 允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表线性表。 栈的顺序存储结构 栈的链式存储结构 链栈的出入栈操作 代码实现:
/**
* @author 捡子
* @title: A
* @projectName demo
* @description: TODO
* @date 2022/1/1015:17
*/
//数据项入栈和出栈的时间复杂度均为O(1)。这也就是说,
//栈操作所消耗的时间不依赖于栈中数据项的个数,
//因此操作时间很短。栈不需要比较和移动操作。
public class ArrayStack {
private long[] a;//定义一个数组
private int size;//栈数组的大小
private int top;//栈顶
//带参构造函数
public ArrayStack(int maxSize){
this.size=maxSize;
this.a=new long[size];
this.top=-1; //表示空栈
}
//判断栈是否为空
public boolean isEmpty(){
return (top == -1);
}
//判断栈是否已满
public boolean isFull(){
return (top== size-1);
}
//入栈
public void push(long value){
if(isFull()){
System.out.println("栈已满!");
return;
}
a[++top] =value;
}
//出栈 删除
public long pop(){
if(isEmpty()){
System.out.println("栈中没有数据!");
return 0;
}
return a[top--];
}
//返回栈顶内容,但不删除
public long peek(){
if(isEmpty()){
System.out.println("栈中没有数据!");
return 0;
}
return a[top];
}
//打印(从栈顶到栈底)
public void display(){
for(int i=top; i>=0;i--){
System.out.println(a[i] +" ");
}
System.out.println(" ");
}
//测试
public static void main(String[] args) throws Exception
{
ArrayStack arrayStack=new ArrayStack(8);
arrayStack.push(3);
arrayStack.push(6);
arrayStack.push(9);System.out.println("入栈打印输出: ");
arrayStack.display();int top=(int)arrayStack.peek();
System.out.println("栈顶: "+top);arrayStack.pop();
System.out.println("弹出栈顶,打印输出: ");
arrayStack.display();}
}


 

数据结构之----栈 - Java - 湖南新梦想 - Powered by Discuz! (xmxbbs)

更多推荐

数据结构之

本文发布于:2024-02-14 03:30:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761790.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据结构

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!