日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

多種數(shù)據(jù)結(jié)構(gòu)的Java實現(xiàn)

 moonboat 2009-02-11

多種數(shù)據(jù)結(jié)構(gòu)的Java實現(xiàn)

class Node {
  Object item; Node next;
    Node (Object v) {
     item = v; next = null;
  }
}

頭指針,空尾指針
初始化:head = null;
在x后插入t:
if ( x == null)
{ head = t; head.next = null; }
else { t.next = x.next; x.next = t; }
移走x之后的結(jié)點:t = x.next; x.next = t.next;
循環(huán)遍歷:for ( t = head; t != null; t = t.next )

檢查鏈表是否為空:if ( head == null )
空頭結(jié)點,空尾指針
初始化:head = new Node(); head.next = null;
在x后插入t:t.next = x.next; x.next = t;
移走x之后的結(jié)點:t = x.next; x.next = t.next;
循環(huán)遍歷:for ( t = head.next; t != null; t = t.next )
檢查鏈表是否為空:if ( head.next == null )
空頭結(jié)點,空尾結(jié)點
初始化:head = new Node(); z = new Node(); head.next = z; z.next = z;
在x后插入t:t.next = x.next; x.next = t;
移走x之后的結(jié)點:t = x.next; x.next = t.next;
循環(huán)遍歷:for ( t = head.next; t != z; t = t.next )
檢查鏈表是否為空:if ( head.next == z )
循環(huán)鏈表
第一次插入:head.next = head;
在x后插入t:t.next = x.next; x.next = t;
移走x之后的結(jié)點:t = x.next; x.next = t.next;
循環(huán)遍歷:t = head; do { t = t.next; } while ( t != head );
檢查是否只有一個數(shù)據(jù)項:if ( head.next == head )

堆棧

數(shù)組實現(xiàn)
class Stack {
  private Object[] s;
  private int n;
  Stack ( int maxN ) {
    s = new Object[maxN]; n = 0;
  }
  boolean isEmpty() { return ( n == 0 ); }
  void push ( Object item ) { s[n++] = item; }
  Object pop() {
    Object t = s[--n]; s[n] = null; return t;
  }
}


鏈表實現(xiàn)
class Stack {
  private Node head;
  private class Node {
    Object item; Node next;
    Node ( Object item, Node next ) {
      this.item = item; this.next = next;
    }
  }
  Stack ( Object maxN ) { head = null; }
  boolean isEmpty() { return ( head ==null ); }
  void push ( Object item ) { head = new Node(item, head); }
  Object pop() {
    Object v = head.item;
    Node t = head.next;
    head = t;
    return v;
  }
}

FIFO隊列的鏈表實現(xiàn)
class Queue {
  private class Node {
    Object item; Node next;
    Node ( Object item ) {
      this.item = item; this.next = null;
    }
  }
  Private Node head, tail;
  Queue ( Object max ) { head = null; tail = null; }
  boolean isEmpty() { return ( head ==null ); }
  void put ( Object item ) {
    Node t = tail;
    tail = new Node(item);
    if ( empty() )
      head = tail;
    else t.next = tail
  }
  Object get() {
    Object v = head.item;
    Node t = head.next;
    head = t;
    return v;
  }
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多