国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

java實現(xiàn)單鏈表增刪改查的實例代碼詳解

2024-05-06 15:35:16
字體:
供稿:網(wǎng)友
package 數(shù)據(jù)結(jié)構(gòu)算法.鏈表;/* *定義節(jié)點 * 鏈表由節(jié)點構(gòu)成 */public class Node<E> {  private E e;  //數(shù)據(jù)data  private Node<E> next; //指向下一個節(jié)點  public Node() {  }  public Node(E e) {    this.e = e;  }  public Node<E> getNext() {    return next;  }  public void setNext(Node<E> next) {    this.next = next;  }  public E getE() {    return e;  }  public void setE(E e) {    this.e = e;  }}
package 數(shù)據(jù)結(jié)構(gòu)算法.鏈表;/* * 定義實現(xiàn)類MyLinkedList * 實現(xiàn)鏈表的基本功能:增刪改查 */public class MyLinkedList<E> {  //聲明頭節(jié)點尾節(jié)點  private Node<E> head;  private Node<E> last;  //鏈表的大小  private int size;  private int modcount; //計算被修改的次數(shù)  public MyLinkedList() {    head = new Node<E>();//實例化頭結(jié)點    last = head;  }  /*   *返回單鏈表中存儲的元素總數(shù)   */  public int size() {    return size;  }  /*   *獲取指定索引位置的節(jié)點對象   */  public Node<E> get(int index) {    if (index < 0 || index > size - 1)      return null;    Node<E> node = head.getNext();//將頭結(jié)點的下一個節(jié)點賦給Node    for (int i = 0; i < index; i++) {      node = node.getNext();//獲取node的下一個節(jié)點    }    return node;  }  /*   *獲取指定索引位置的數(shù)據(jù)   */  public E getValue(int index) {    if (index < 0 || index > size - 1)      return null;    Node<E> node = get(index);    return node.getE();  }  /*   *增加元素   */  public void add(E e) {    Node<E> node = new Node<E>(e); //以e實例化一個節(jié)點    last.setNext(node);//往尾節(jié)點后追加節(jié)點    last = node;//該節(jié)點設(shè)為最后一個節(jié)點    size++;    modcount++;  }  /*   *指定位置插入元素,返回插入的節(jié)點數(shù)據(jù)   */  public E add(int index, E e) {    if (index < 0 || index > size - 1)      return null;    Node<E> node = new Node<E>(e); //實例化一個節(jié)點    //找到插入的原節(jié)點    Node<E> oldNode = get(index);    if (index == 0) {//當索引為0時      head.setNext(node);    } else {      //找到插入節(jié)點的上一個      Node<E> bNode = get(index - 1);      bNode.setNext(node);    }    node.setNext(oldNode);    size++;    modcount++;    return oldNode.getE();  }  /*   *刪除指定的節(jié)點e,并返回刪除節(jié)點的數(shù)據(jù)   */  public E delete(int index) {    if (index < 0 || index > size - 1)      return null;    if (index == 0) {//當索引為1,令頭結(jié)點的下一個節(jié)點為頭結(jié)點      Node<E> node = head.getNext();      head.setNext(node.getNext());    }    //獲取要刪除節(jié)點的前一個節(jié)點    Node<E> bNode = get(index - 1);    //獲取要刪除的節(jié)點    Node<E> Node = bNode.getNext();    //獲取要刪除節(jié)點的下一個節(jié)點    Node<E> nNode = Node.getNext();    //刪除該節(jié)點    bNode.setNext(nNode);    //清除Node的下一個節(jié)點    Node.setNext(null);    size--;    modcount++;    return Node.getE();//返回節(jié)點中的數(shù)據(jù)域  }  /*   *修改指定位置的數(shù)據(jù)域并返回修改后的數(shù)據(jù)   */  public E set(int index, E e) {    if (index < 0 || index > size - 1)      return null;    //獲取指定位置的原節(jié)點    Node<E> node = get(index);    node.setE(e);    modcount++;    return node.getE();  }}            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 桑植县| 武定县| 高邑县| 新龙县| 河北省| 隆林| 沭阳县| 顺平县| 遵义市| 安龙县| 来安县| 岗巴县| 五大连池市| 乌拉特中旗| 黄龙县| 藁城市| 科尔| 沙河市| 休宁县| 澎湖县| 武山县| 永福县| 河源市| 婺源县| 乌兰浩特市| 林西县| 德阳市| 鱼台县| 濮阳县| 永济市| 阳信县| 崇信县| 日土县| 三台县| 开封县| 盖州市| 琼结县| 阿巴嘎旗| 江门市| 额尔古纳市| 北海市|