外贸多语言网站免费源码,建立多个wordpress,深圳企业画册印刷,Wordpress 微博评论文章目录 栈一#xff0c;概述二#xff0c;添加数据三#xff0c;删除数据 栈
一#xff0c;概述
栈#xff08;Stack#xff09;是一种常见的数据结构#xff0c;它是一种线性结构#xff0c;具有特殊的添加和删除规则。栈的特性是后进先出#xff08;LIFO#x… 文章目录 栈一概述二添加数据三删除数据 栈
一概述
栈Stack是一种常见的数据结构它是一种线性结构具有特殊的添加和删除规则。栈的特性是后进先出LIFOLast In First Out最后一个添加到栈中的元素将是最先被删除的元素。
简介
栈是一种线性数据结构意味着数据在栈中的排序是按照它们加入的顺序。栈遵循 LIFOLast In First Out原则这意味着最后一个添加到栈中的元素将是第一个被移除的元素。栈只允许在同一端称为“顶部”进行添加和删除操作。这一端通常被称为“栈顶”另一端被称为“栈底”。栈不需要在添加或删除元素时进行任何排序或搜索操作。
图示 top----- | | | 3 | ----- | | | 2 | ----- | |
bottom| 1 | -----在这个栈的示例中元素1、2、3依次被推入栈顶。当元素3被推入时元素1和2仍然在栈中但它们现在处于元素3的下方。如果我们要从栈中删除一个元素元素3将会首先被删除然后是元素2和1。这就是后进先出LIFO的原则。
Java示例
在Java中可以使用java.util.Stack类来实现栈。以下是一个简单的示例
import java.util.Stack;public class StackExample {public static void main(String[] args) {StackInteger stack new Stack();stack.push(1); // 压入元素1stack.push(2); // 压入元素2stack.push(3); // 压入元素3System.out.println(Initial Stack: stack); // 打印初始栈System.out.println(Popped element: stack.pop()); // 弹出顶部元素并打印System.out.println(Stack after pop operation: stack); // 打印执行弹出操作后的栈}
}在这个示例中我们首先创建了一个整数类型的栈然后将元素1、2、3压入栈中。然后我们打印出初始的栈执行弹出操作并打印出弹出的元素最后再次打印出执行弹出操作后的栈。
二添加数据
在Java中我们可以使用java.util.Stack类来实现栈数据结构。以下是添加数据压入元素的示例
import java.util.Stack;public class StackExample {public static void main(String[] args) {StackInteger stack new Stack();// 添加元素到栈stack.push(1);stack.push(2);stack.push(3);// 打印栈System.out.println(Initial Stack: stack);}
}在这个示例中我们首先导入了java.util.Stack类。然后在main方法中我们创建了一个整数类型的栈实例stack。我们使用push方法向栈中添加元素。最后我们打印出初始的栈。
请注意尽管java.util.Stack类是Java早期版本提供的但现在并不推荐使用它。在多线程环境中它的性能可能会有问题。在Java的后续版本中建议使用java.util.Deque接口的实现如java.util.ArrayDeque来代替java.util.Stack。以下是使用ArrayDeque实现栈的示例
import java.util.ArrayDeque;
import java.util.Deque;public class StackExample {public static void main(String[] args) {DequeInteger stack new ArrayDeque();// 添加元素到栈stack.push(1);stack.push(2);stack.push(3);// 打印栈System.out.println(Initial Stack: stack);}
}在这个示例中我们使用了java.util.ArrayDeque类来实现栈。与上面的示例类似我们使用push方法向栈中添加元素并打印出初始的栈。
三删除数据
在Java中我们可以使用java.util.Stack类来实现栈数据结构。以下是删除数据弹出元素的示例
import java.util.Stack;public class StackExample {public static void main(String[] args) {StackInteger stack new Stack();// 添加元素到栈stack.push(1);stack.push(2);stack.push(3);// 打印初始栈System.out.println(Initial Stack: stack);// 删除元素弹出System.out.println(Popped element: stack.pop());// 打印执行弹出操作后的栈System.out.println(Stack after pop operation: stack);}
}在这个示例中首先导入了java.util.Stack类。然后在main方法中创建了一个整数类型的栈实例stack。使用push方法向栈中添加元素。然后使用pop方法删除弹出栈顶的元素。最后打印出执行弹出操作后的栈。
请注意尽管java.util.Stack类是Java早期版本提供的但现在并不推荐使用它。在多线程环境中它的性能可能会有问题。在Java的后续版本中建议使用java.util.Deque接口的实现如java.util.ArrayDeque来代替java.util.Stack。以下是使用ArrayDeque实现栈的示例
import java.util.ArrayDeque;
import java.util.Deque;public class StackExample {public static void main(String[] args) {DequeInteger stack new ArrayDeque();// 添加元素到栈stack.push(1);stack.push(2);stack.push(3);// 打印初始栈System.out.println(Initial Stack: stack);// 删除元素弹出System.out.println(Popped element: stack.pop());// 打印执行弹出操作后的栈System.out.println(Stack after pop operation: stack);}
}在这个示例中使用了java.util.ArrayDeque类来实现栈。与上面的示例类似使用push方法向栈中添加元素并使用pop方法删除弹出栈顶的元素。最后打印出执行弹出操作后的栈。