亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

指針如何在單鏈表中工作?

指針如何在單鏈表中工作?

手掌心 2021-10-28 17:03:30
我有這個用于單向鏈表的代碼,它可以工作。理論上我理解單向鏈表的原理,但是說到代碼我不明白指針是如何工作的。我的問題是在這兩行代碼中,它是最后提到的代碼的一部分p.next = new Node<>(a[i], null);p = p.next;為什么我們通過 p 調用 next 并創建新節點,然后通過參數同時將 null 分配給 next。?然后給出應該為空的 p.next 的 p 值?我試圖打印出 p.next 和 next 以查看它們是否相同或存在差異,并且我在控制臺中獲得了 p.next 的地址,next 為 null。它們有何不同?我需要在這部分代碼中解釋一下節點和指針是如何創建的。public class EnkeltLenketListe<T> implements Liste<T> {private static final class Node<T>{    private T value;    private Node<T> next;    private Node(T value, Node<T> next)    {        this.next = next;        this.value = value;    }}private Node<T> head, tail;private int counter;public EnkeltLenketListe(T[] a){    this();    int i = 0; for (; i < a.length && a[i] == null; i++);    if (i < a.length)    {        head = new Node<>(a[i], null);        Node<T> p = head;        counter = 1;        for (i++; i < a.length; i++)        {            if (a[i] != null)            {                p.next = new Node<>(a[i], null);                p = p.next;                counter++;            }        }        tail = p;    }}
查看完整描述

1 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

這里有兩個指針需要考慮。指針 p 指向當前節點,即列表中的最后一個節點。p.next 指向添加新節點時的下一個節點。

p.next = new Node<>(a[i], null);

此行在下一個位置創建一個新節點(您將在列表末尾添加一個節點)。

p = p.next;

這一行告訴當前指針 p 指向列表末尾新創建的節點(它不為空,你只是在那里創建了一個新節點)。


查看完整回答
反對 回復 2021-10-28
  • 1 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號