zoukankan      html  css  js  c++  java
  • java:堆栈,队列,枚举,链表

    Stack类
    栈:(水杯喝水,先进后出)
    栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。他按照先进后出的原则存储数据



    Enumeration(枚举)
    1,hasMoreElements()    测试此枚举是否包含更多的元素
    2,nextElements()    如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素

    -----------------------------
    代码演示:
    package day07;
    import java.util.Date;
    import java.util.Enumeration;
    import java.util.Stack;
    /*****
     * 栈,堆,队列,链表演示
     * @author yw.wang
     *
     */
    public class Test06 {
    public static void main(String[] args) {
        Stack ss = new Stack();
        ss.push(1);
        ss.push('a');
        ss.push(12.3f);
        ss.push(145.6d);
        Date dd = new Date();
        ss.push(dd);
        //System.out.println(ss);
        //pop()方法表示移除栈顶部的对象,并作为函数的值返回该对象,所以每打印一次,元素少一个
        /*System.out.println(ss.pop());
        System.out.println(ss.pop());
        System.out.println(ss.pop());
        //peek:    查看 堆栈顶部的对象,但是不从堆栈中移除它
        System.out.println(ss.peek());
        //empty    :    测试堆栈是否为空,是空返回true
        System.out.println(ss.empty());
        */
        Enumeration item = ss.elements();//得到stack中的枚举对象
        while(item.hasMoreElements())//显示枚举中的所有元素
        {//遍历输出
            Object oo = item.nextElement();
            System.out.println(oo);
        }
    }
    }

    ------------------------------------------------------
    队列:
    队列(Queue)简称队,他也是一种运算受限的线性表,其限制是仅仅允许在表的一端经行插入,而在表的另一端经行删除,我们把经行插入的一端当做队尾,经行删除的一端当做队首
    向队列中插入新的元素称为进队或者入队,新元素进队后就称为新的队尾元素,元素离队后,其后继元素就成为队首元素


    Queue类:

    offer()    添加一个元素并返回true,如果队列已满,则返回false

    poll()    移除并返回队列头部的元素,如果队列为空,则返回null

    peek()    返回队列头部的元素,如果队列为空,则返回null



    -----------------------------
    代码演示:
    package day07;
    import java.util.LinkedList;
    import java.util.Queue;
    /***
     *  队列演示
     * @author yw.wang
     *
     */
    public class Test07 {
    public static void main(String[] args) {
        Queue qq = new LinkedList();
        //offer:添加一个元素
        qq.offer(1);
        qq.offer(12.3d);
        qq.offer("abcd");
        //移除并查看第一个元素
        System.out.println(qq.poll());
        System.out.println(qq.poll());
        // 查看不移除第一个元素
        System.out.println(qq.peek());
        System.out.println(qq.peek());
        
        
    }
    }

    ------------------------------------------------------------------------------------
    链表:

    链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,聊表由一系列节点组成,(链表中的每个元素称为节点),节点可以在运行时动态生成,每个节点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比线性表顺序结构,操作复杂。



    -------------------------
    代码演示:
    package day07;
    import java.util.LinkedList;
    /******
     * 用linkedList演示链表
     * @author yw.wang
     *
     */
    public class Test08 {
    public static void main(String[] args) {
        LinkedList ll = new LinkedList();
        ll.add(1);
        ll.add('a');
        ll.add("niemii");
        ll.add("");
        ll.add(6);
        ll.add("fuck");
        System.out.println(ll);
        ll.add(1,"fuckyou ");
        System.out.println(ll);
        
        ll.addFirst("first");
        ll.addLast("sheet");
        System.out.println(ll);
        
        //删除链表中的所有节点,使当前链表成为空链表
        //ll.clear();
    //    System.out.println(ll);
        
        //删除指定位置index上的节点
        ll.remove(1);
        System.out.println(ll);
        
        //删除首次出现含有数据o的结点
        ll.remove("fuck");
        System.out.println(ll);
        
        ll.removeFirst();//删除第一个节点,并返回这个节点中的对象
        ll.removeLast();//删除最后一个节点,并返回这个节点中的对象
    }
    }















  • 相关阅读:
    POST请求
    怎样在ios开发中设置tableview的cell颜色
    error LNK2005 已经在***.obj中定义
    IOS开发之UIView的基本使用
    [置顶] 浅谈Android的资源编译过程
    IOS开发之UIView总结
    鉴别不使用的索引
    浅谈Jquery的使用下篇
    Go如何使用实现继承的组合
    做一个小淘气轮廓--文章和论文专辑
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/5a1565598148101ca3e0f53fea9c98bc.html
Copyright © 2011-2022 走看看