zoukankan      html  css  js  c++  java
  • 《Java数据结构与算法》笔记-CH5-链表-4用链表实现堆栈

      1 //用链表实现堆栈
      2 /**
      3  * 节点类
      4  */
      5 class LinkS {
      6     private long data;
      7     public LinkS next;
      8 
      9     public LinkS(long d) {
     10         this.data = d;
     11     }
     12 
     13     public String toString() {
     14         return String.valueOf(data);
     15     }
     16 }
     17 
     18 /**
     19  * 链表类
     20  */
     21 class LinkSList {
     22     private LinkS first;
     23 
     24     public LinkSList() {
     25         first = null;
     26     }
     27 
     28     public void insertFirst(LinkS node) {
     29         node.next = first;
     30         first = node;
     31     }
     32 
     33     public LinkS deleteFirst() {
     34         LinkS temp = first;
     35         first = first.next;
     36         return temp;
     37     }
     38 
     39     public boolean isEmpty() {
     40         return first == null;
     41     }
     42 
     43     public String toString() {
     44         if (isEmpty())
     45             return "[]";
     46         StringBuilder sb = new StringBuilder();
     47         sb.append("[");
     48         LinkS curr = first;
     49         while (curr != null) {
     50             sb.append(curr.toString()).append(",");
     51             curr = curr.next;
     52         }
     53         sb.deleteCharAt(sb.length() - 1);
     54         sb.append("]");
     55         return sb.toString();
     56     }
     57 }
     58 
     59 /**
     60  * 栈
     61  */
     62 class LinkStack {
     63     private LinkSList linkList;
     64 
     65     public LinkStack() {
     66         this.linkList = new LinkSList();
     67     }
     68 
     69     public void push(LinkS l) {
     70         this.linkList.insertFirst(l);
     71     }
     72 
     73     public LinkS pop() {
     74         return this.linkList.deleteFirst();
     75     }
     76 
     77     public boolean isEmpty() {
     78         return this.linkList.isEmpty();
     79     }
     80 
     81     public String toString() {
     82         return this.linkList.toString();
     83     }
     84 
     85     public void display() {
     86         System.out.println(toString());
     87     }
     88 }
     89 
     90 public class LinkStackDemo {
     91     public static void main(String[] args) {
     92         LinkStack stack = new LinkStack();
     93         for (int i = 0; i < 5; i++) {
     94             LinkS l = new LinkS(i);
     95             stack.push(l);
     96             stack.display();
     97         }
     98         while (!stack.isEmpty()) {
     99             System.out.print("pop出" + stack.pop());
    100             System.out.print("现在栈为:");
    101             stack.display();
    102         }
    103     }
    104 }
  • 相关阅读:
    11111 Generalized Matrioshkas
    Uva 442 Matrix Chain Multiplication
    Uva 10815 Andy's First Dictionary
    Uva 537 Artificial Intelligence?
    Uva 340 MasterMind Hints
    SCAU 9508 诸葛给我牌(水泥题)
    Uva 10420 List of Conquests(排序水题)
    Uva 409 Excuses, Excuses!
    10/26
    11/2
  • 原文地址:https://www.cnblogs.com/fstack/p/5617252.html
Copyright © 2011-2022 走看看