java中連結串列功能的實現
今天我們學習了java的連結串列資料結構的實現,建立一個Node類,裡面定義資料和一個Node類,然後是構造方法傳值。
類裡面定義4個方法,分別可以獲取和設定類的Node類指向和資料。
然後再建立一個MyLinkList類來定義我自己的操作連結串列資料結構的方法,分別由增刪查改的功能。
今天我只是實現了:1.獲取連結串列長度 2.增加資料 3.查詢節點 4.插入資料 5.修改資料 。
刪除資料我還沒有實現。
下面是我的程式碼:
這是我操作資料結構的程式碼。package 我的連結串列; public class MyLinkList { //建立頭結點 private Node head; public int size(){ if(head == null){ return 0; } int size = 1; Node node = head; while(node.getNext() != null){ node = node.getNext(); size++; } return size; } //增加一個節點 public void add(String value){ Node newNode = new Node(value); //如果頭結點為空,直接新增到頭結點 if(head == null){ head = newNode; return ; } //否則新增到末尾 Node node = head; while(node.getNext() != null){ node = node.getNext(); } node.setNext(newNode); } //刪除一個節點 public boolean delete(String value){ return false; } public boolean delete(int index){ return false; } //查詢一個節點 public String getValue(int index){ if(index>size()||index<0){ try { throw new Exception("下標越界"); } catch (Exception e) { e.printStackTrace(); } return null; } int count = 0; Node node = head; while(count != index){ node = node.getNext(); count++; } return node.getValue(); } //插入一個節點 public boolean insert(String value,int index){ if(index<0||index>size()){ try { throw new Exception("輸入下標越界"); } catch (Exception e) { e.printStackTrace(); } return false; } if(size() == 0){ head = new Node(value); return true; }else if(index == 0){ Node newNode = new Node(value); Node node = head; head = newNode; head.setNext(node); return true; } Node newNode = new Node(value); Node node = head; int count = 0; while(count!=index-1){ node = node.getNext(); count++; } Node nodeNext = node.getNext(); node.setNext(newNode); newNode.setNext(nodeNext); return true; } //修改一個節點 public boolean update(String value,int index){ if(index>size()||index<0){ try { throw new Exception("下標越界"); } catch (Exception e) { e.printStackTrace(); } } int count = 0; Node node = head; while(count != index){ node = node.getNext(); count++; } node.setValue(value); return true; } }
然後我用資料測試結果如下圖:
今天暫時先搞這麼多,洗洗睡。
相關推薦
java中連結串列功能的實現
今天我們學習了java的連結串列資料結構的實現,建立一個Node類,裡面定義資料和一個Node類,然後是構造方法傳值。 類裡面定義4個方法,分別可以獲取和設定類的Node類指向和資料。 然後再建立一個MyLinkList類來定義我自己的操作連結串列資料結構的方法,分別由增刪
JAVA中連結串列的實現
以下程式碼是建立一個連結串列並輸出,其中主要用到了內部類,連結串列的實現是面試中常常遇到的問題,除了連結串列輸出外也可能遇到連結串列的刪除、查詢等,參照連結串列的輸出,其他的功能實現並不難。 import java.util.ArrayList; import java.u
Java 使用連結串列來實現佇列功能
/** * 連結串列元素定義 * Create by zxb on 2017/8/27 */ public class Element<T> { private Element<T> next; private T valu
連結串列的c語言實現以及根據linux核心中連結串列的實現過程
轉自 : http://blog.csdn.net/lickylin/article/details/8010618 連結串列,就是用一組任意的儲存單元儲存線性表元素的一種資料結構。連結串列又分為單鏈表、雙向連結串列和迴圈連結串列等。 下面程式碼是連結串列的兩種實現方式
Java中連結串列相關演算法
如下為連結節點,後續都用此表示連結節點 class ListNode{ int value; ListNode next; public ListN
Java雙向連結串列的實現
最近在複習Java的基礎知識,看到了List時,想起學習C++時,曾用結構體構造有頭連結串列,所以好奇如何使用Java構造連結串列,遂有了如下程式碼: 實現了連結串列的雙向新增,雙向遍歷,刪除值; 本例中,頭結點和尾節點是單獨出來的,value屬性為null
Java用連結串列實現棧
上一篇實現了佇列,這一篇我們實現棧。 棧是後入先出的資料結構。 連結串列中插入資料有頭插法和尾插法,本篇我們使用頭插法。 不多說直接上程式碼 連結串列的節點定義和上一篇使用的是同一個,可以參考上一篇。 public class StackImpl<T> { p
Java用連結串列實現佇列
佇列--先入先出 棧---後入先出 連結串列實現佇列和棧。首先我們需要構建一個連結串列。連結串列有哪幾要素? 1、連結串列本身的value 2、連結串列的next指標,next指標指的還是同樣型別的值。 下邊看程式碼 public class Element&l
基於java自帶連結串列結構實現迴圈連結串列
背景 有些場景下,需要迴圈連結串列,如某些狀態是從一個到下一個,最後再回到開始。此種情況下,可以採用迴圈連結串列來實現。 程式碼 package com.cxyzy.tencentfacerec; import java.util.Iterator; import java.u
【Java】連結串列中儲存物件的問題
在刷《劍指OFFER》的時候,自己犯了一個錯誤,發現:在連結串列中儲存一個物件時,如果該物件是不斷變化的,則應該建立一個新的物件複製該物件的內容(而不是指向同一個物件),將這個新的物件儲存到連結串列中。如果直接儲存該物件的話,連結串列中的物件也會不斷變化。基本資料型別和String則沒有這種問題。 其實
java連結串列及實現leetcode題
package leetcode; public class AddTwoNumbers { /** * 兩個連結串列相加 * input: (2 -> 4 -> 3) +(5->6->4) * output: 7->0->8
Java版資料結構之迴圈連結串列的實現
簡介 在指定結點後新增一個結點 刪除指定結點的下一個結點 獲取下一個結點 獲取結點資料 public class LoopNode { int data;//資料域 LoopNode next;//下一個結點 public Loop
20-java 物件連結串列空沒空呢 java中判斷list是否為空的用法
寫了一個 物件連結串列,往裡面add了一些物件,最後我想看下連結串列是否為空,用 == null 為假,也看不出, 看下長度? 好吧, size() = 1; 列印 null , 那到底是不是空 啊, 仔細想下,連結串列裡面應該不空,size( )
Java 單向連結串列和單向迴圈連結串列的程式碼實現
這個連結串列,以前上學的時候,學c語言,還是資料結構的時候,學過。也許也實現過吧。下面我就簡單記錄下這個連結串列的實現。 單向連結串列跟單向迴圈連結串列的差別就是:單向連結串列是有結束位的,指向null的時候,就到結尾了,但是單向迴圈連結串列,他就是一個圈,要是不設定指定位
Java資料結構——迴圈連結串列的實現
一、描述 迴圈連結串列:表中的最後一個節點的指標域指向頭結點,整個連結串列形成一個環。 迴圈連結串列判空條件:有的說是判斷p或p->next是否等於頭指標,有的說判斷tail是否等於head,有的說判斷head是否為空,這其實要根據實際情況來判斷。若是
Java連結串列的實現
傳統的物件陣列一旦宣告則長度不可改變,因此,操作起來較為繁雜。 連結串列從本質上講可以理解為“動態的物件陣列”。連結串列可以實現物件的增加、刪除、查詢等等一系列的操作,可以實現動態擴充。如下為連結串列的實現: package cn.mldn.java; // 1
Java中異或運算實現兩個整數的交換以及其功能函式實現
今天學習到一種超酷炫的交換兩個整數的方法,給各位分享一下。異或運算屬於位運算的一種,首先簡單介紹一下異或預算的語法規則。 假設a與b為不相等的兩個整數。 (1)a^a=0; (2)a^b
java中自定義鎖實現synchronized功能
public class Test {private static long count = 0;private Lock lock = new Lock();private int m = 0;private int a = 0;private int b = 0;pub
java使用連結串列實現棧(先進後出)
public class LinkStack <Item> implements Iterable<Item>{ private Node first;//棧頂
java的雙向連結串列簡單實現
package com.test; public class SecondTest { public static void main(String[] args) { DoubleList test=new DoubleList(); test.Inse