西维蜀黍

【Data Structure】串(String)

串(String)

**串的基本概念:**串是由零个或多个任意字符组成的字符序列。

一般记作:s=‘a1 a2 an’。

  ...


【Data Structure】队列(Queue)

队列(Queue)

通常,称进数据的一端为 “队尾”(rear),出数据的一端为 “队头”(top),数据元素进队列的过程称为 “入队(enqueue)",出队列的过程称为 “出队(dequeue)"。

  ...


【Data Structure】栈的应用

栈的应用

栈是一种很重要的数据结构,在计算机中有着很广泛的应用,如下一些操作都应用到了栈。

  • 符号匹配,HTML和XML文件中的标签匹配
  • 中缀表达式(Infix Expressions)转换为后缀表达式(Postfix Expressions)
  • 实现函数的嵌套调用
  • 表达式求值
  • 网页浏览器中已访问页面的历史记录
  ...


【Java】集合类 - Stack

Stack 类是Vector类的一个子类,它通过数组实现了一个标准的后进先出的栈。

构造函数

Stack 的实现非常简单,仅有一个构造方法。

public Stack() {
}

方法

除了由Vector定义的所有方法,自己也定义了一些方法:

序号 方法描述
1 boolean empty() 测试堆栈是否为空。
2 Object peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。
3 Object pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。
4 Object push(Object element) 把项压入堆栈顶部。
5 int search(Object element) 返回对象在堆栈中的位置,以 1 为基数。

public boolean empty()

返回栈是否为空。

public boolean empty() {
    return size() == 0;
}
  ...


【Data Structure】栈(Stack)

栈(Stack)

栈(Stack),是一种有序特殊的线性表,只允许在有序的线性数据集合的一端(称为堆栈顶端,top)进行加入(push)数据和移除(pop)数据的运算。因而按照**后进先出(LIFO, Last In First Out)**的原理运作。

栈的基本操作创建栈,判空,入栈,出栈,获取栈顶元素等,注意栈不支持对指定位置进行删除,插入。

其实非常好理解,我们将栈可以看成一个箱子

  • 往箱子里面放东西叫做入栈(push);
  • 往箱子里面取东西叫做出栈(pop);
  • 箱子的底部叫做栈底(bottom);
  • 箱子的顶部叫做栈顶(top)。

说到栈的特性,肯定会有一句经典的言语来概括:先进后出(LIFO, Last In First Out)

Stack这种数据结构用途很广泛,在计算机的使用中,大量的运用了栈,比如编译器中的词法分析器、Java虚拟机、软件中的撤销操作(Undo)、浏览器中的回退操作,编译器中的函数调用实现等等。

  ...