匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 1 0 年前

java鏈結反轉

這是程式碼使用java

在list類別裡有兩個add函式,分別是 新增和插入.

head指向鏈結的頭 front指向鏈結的尾

例: 1 -> 2 ->3

那反轉小弟想不出來.

求助各位高手~

class newNode

{

public int data;

public newNode next;

public newNode(int d)

{

data = d;

next = null;

}

}

class list

{

public newNode head = null;

public newNode front = null;

public void add(int data)//新增

{

newNode node = new newNode(data);

if(head == null)

{

head = node;

front = node;

}

else

{

front.next = node;

front = node;

}

}

public void add(int data,int ins)/插入 ,data 代表新增的資料 ,ins代表要插入的位址

{

newNode node = new newNode(data);

newNode temp = head;

while(temp.next != null)

{

if(temp.data == ins)

{

newNode t = temp.next;

temp.next = node;

node.next = t;

}

temp = temp.next;

}

}}

已更新項目:

main函式

public static void main (String args[]) //主函數

{

list lister = new list();

lister.rev();//反轉

}

只打算用class list

的成員 public newNode head = null;

public newNode front = null;

來實做rev( ) 反轉說呢

1 個解答

評分
  • 1 0 年前
    最佳解答

    你程式中使用如 head, temp, next都是使用類別變數,若你要在主程式中呼叫newNode 類別 或是 list類別 所new出的物件是個類別的變數無法顯示數值

    我將你的程式改成如下你參考看看

    import java.util.ArrayList;

    import java.util.Collections;

    public class newNode {

    public int data;

    public int next=0;

    public int node =0;

    public int head = 0;

    public int front = 0;

    public static void main(String[] args){ //程式主方法

    ArrayList n = new ArrayList();

    n.add(1); //呼叫函式中add的方法新增

    n.add(2); //呼叫函式中add的方法新增

    n.add(3); //呼叫函式中add的方法新增

    n.add(2,4);//呼叫函式中add插入的方法,插入第二個位置,數值為4

    System.out.println("陣列原始排序前 : " + n);

    Collections.reverse(n);//利用Collections的reverse()反轉陣列集合內容

    System.out.println("陣列反轉排序後 : " + n);

    }

    public void add(int data){ //新增

    if(head == 0) {

    head = node;

    front = node;

    } else {

    next = node;

    front = node;

    }

    }

    public void add(int data,int ins){ //插入 ,data 代表新增的資料 ,ins代表要插入的位址

    int temp = head;

    while(next !=0) {

    if(data == ins) {

    int t = temp;

    next = node;

    node = t;

    }

    temp = next;

    }

    }

    }

    圖片參考:http://img844.imageshack.us/img844/3305/0xx.jpg

    參考資料: 加菲貓
還有問題?馬上發問,尋求解答。