栈表简单实现--数据结构与算法纪录片第二记

栈的实现:

  

package linear.stack;

import java.lang.reflect.Array;

/** * @Description: 栈的实现 * @Auther: Weijie.Zhang * @Date: 2018/11/2 16:56 */public class Stack<T> {    private final static int DEFAULT_SIZE = 10;    private T[] array;    private int count;

public Stack(int size, Class<T> type) {        count = 0;        array = (T[]) Array.newInstance(type, size);    }

public Stack(Class<T> type) {        this(DEFAULT_SIZE, type);    }

//添加元素    public T push(T value) {        array[count] = value;        count++;        return value;    }

//删除元素    public T pop() {        return array[--count];    }

//返回栈顶元素值    public T pick() {        return array[count - 1];    }

//返回栈大小    public int size() {        return count;    }

//返回栈是否为空    public Boolean isEmpty() {        return this.size() > 0 ? true : false;    }

//打印栈    public void printStack() {        if (!this.isEmpty()) {            System.out.println("空栈");        }

for (int i = size() - 1; i > 0; i--) {            System.out.print(array[i] + "   ");        }    }

}

测试:
package linear.stack;

/** * @Description: TODO * @Auther: Weijie.Zhang * @Date: 2018/11/2 17:14 */public class MainTest {    public static void main(String[] args) {        Stack<Integer> stack = new Stack(Integer.class);        stack.printStack();        for (int i = 0; i < 10; i++) {            stack.push(i + 22);        }        System.out.println(stack.size());        System.out.println(stack.pick());        stack.pop();        System.out.println(stack.size());        stack.push(10000);        stack.printStack();    }}



原文地址:https://www.cnblogs.com/qugemingzihaonan13/p/9897426.html

时间: 2024-10-29 05:34:48

栈表简单实现--数据结构与算法纪录片第二记的相关文章

二叉树的简单实现--数据结构与算法纪录片第二记

这几天状态不好看不下去,所以停了一下.今天把二叉树的实现写了一下,把其中的原理也重新理解了一遍. package tree.bstree; /** * @Description: TODO * @Auther: Zhang * @Date: 2018/11/5 16:34 */public class BSTNode<T extends Comparable<T>> { private T key; private BSTNode<T> parentNode; priv

双向链表简单实现--数据结构与算法纪录片第一记

从这个月开始得准备春招的东西,所以打算重新学习数据结构与算法,以后的博客就以这个为主. 今天是线性结构中的双向链表. 代码实现与测试: DoubleLinkNode: package linear.doublelink; /** * @Description: 链表节点结构体 * @Auther: Weijie.Zhang * @Date: 2018/11/1 17:03 */public class DoubleLinkNode<T> { public T value; public Dou

javascript数据结构和算法 零(前记+序言)

前记 这本书Data Structure and Algorithm with Javascript 我将其翻译成<< javascript 数据结构和算法>> 为什么这么翻译?而不是翻译成"用javascript实现数据结构和算法" 原因有二: 一个,我觉的它更加简洁,第二个,我是想强调我们在这里使用的是javascript. 我不喜欢一些翻译的人把一个简单的语句进行加工,搞得晦涩难懂.我更喜欢外国人写书的 那种原汁原味.同样,我很喜欢外国人的那种分享精神,它

第2章 线性表《C#数据结构和算法》

( 1)除第一个位置的数据 元素外,其它数据元素位置的前面都只有一个数据元素:( 2)除最后一个位置的 数据元素外,其它数据元素位置的后面都只有一个元素.也就是说,数据元素是 一个接一个的排列.因此,可以把线性表想象为一种数据元素序列的数据结构. 2.1.1 线性表的定义 线性表(List) 线性表的接口如下所示. public interface IListDS<T> { int GetLength(); //求长度 void Clear(); //清空操作 bool IsEmpty();

《数据结构与算法》第二章 线性表

线性表 定义: 由n个特性相同 数据元素(即可有很多数据项)构成的有限序列,同时相邻数据元素之间存在 序偶 关系. 线性表中元素个数就是 表长 . 特点: ·存在唯一一个被称为 “第一个” 的数据元素(线性起点.起始结点): ·存在唯一一个被称为 “最后一个” 的数据元素(线性终点.终端结点): ·除第一个以外,结构中的每个数据元素均 只有一个前驱 : ·除最后一个外,结构中的每个数据元素均 只有一个后继 . 顺序表示和实现 线性表的顺序表示指的是用一组地址连续的存储单元一次存储线性表的数据元素

Java数据结构与算法(第二章数组)

数组是应用最广泛的数据存储结构.它被植入到大部分编程语言中. Java中数组的基础知识     创建数组 在Java中把它们当作对象来对待,因此在创建数组是必须使用new操作符:     int[] intArray;            //defines a reference to an array     ingArray = new int[100];    //creates the array, and                                  //set

HDFS简单的shell操作--大数据纪录片第二记

一.基本语法: bin/hadoop fs -具体命令 二.部分简单命令操作 1.显示命令的参数: help ls 2.显示该目录下所有文件: ls 目录 3.在hdfs上创建目录: mkdir 目录 4.从本地剪切到hdfs上: moveFromLocal 本地位置 hdfs上位置 5.追加一个文件A到已存在文件B末尾: appendToFile A B 6.显示文件内容: cat 文件 7.显示文件末尾: tail 文件所在位置 其实hdfs上的shell命令和linux下差不多,不继续列举

Java数据结构和算法之哈希表

五.哈希表 一般的线性表.树中,记录在结构中的相对位置是随机的即和记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列和关键字的比较.这一类查找方法建立在"比较"的基础上,查找的效率与比较次数密切相关.理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应.因而查找时,只需根据这个对应关系f找到给定值K的像f(K).若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,由此不需

程序员书单_数据结构和算法篇

大话数据结构 程杰 著 http://download.csdn.net/detail/shenzhq1980/9145645Java数据结构和算法.(第二版) http://download.csdn.net/detail/shenzhq1980/9145633