国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

單向帶頭鏈表的添加修改刪除操作

這篇具有很好參考價(jià)值的文章主要介紹了單向帶頭鏈表的添加修改刪除操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

單向帶頭鏈表的添加修改刪除操作

public class HeroNodeDemo {
    public static void main(String[] args) {
        HeroNode hero1 = new HeroNode(1, "松江");
        HeroNode hero2 = new HeroNode(2, "武松");
        HeroNode hero3 = new HeroNode(3, "及時(shí)雨");
        HeroNode hero4 = new HeroNode(4, "吳用");
        HeroNode hero5 = new HeroNode(4, "常毅");
        SingledList singledList = new SingledList();
        singledList.add(hero1);
        singledList.add(hero2);
        singledList.add(hero3);
        singledList.add(hero4);
        singledList.delete(3);
        singledList.show();
    }


}
/**
 * 創(chuàng)建一個(gè)管理節(jié)點(diǎn)的類
 */
class SingledList {
    /**
     *  初始化一個(gè)頭節(jié)點(diǎn),頭節(jié)點(diǎn)不能儲(chǔ)有效數(shù)據(jù),因?yàn)轭^節(jié)點(diǎn)可以幫助我們確定節(jié)點(diǎn)的初始位置
     *  因此頭節(jié)點(diǎn)不能動(dòng)
     */
    HeroNode head = new HeroNode(0, "");

    /**
     * 定義一個(gè)用于添加節(jié)點(diǎn)的方法
     * @param heroNode
     */
    public void add(HeroNode heroNode) {
        // 因?yàn)轭^節(jié)點(diǎn)不能動(dòng),所以設(shè)置一個(gè)指針節(jié)點(diǎn)
        HeroNode temp = head;
        // 使用循環(huán),遍歷到最后一個(gè)節(jié)點(diǎn)
        while (true) {
            if (temp.next == null) {
                break;
            }
            temp = temp.next;
        }
        temp.next = heroNode;
    }

    /**
     * 定義一個(gè)用于修改節(jié)點(diǎn)的方法,根據(jù)節(jié)點(diǎn)的編號(hào)進(jìn)行修改,即節(jié)點(diǎn)編號(hào)不可更改。
     */
    public void update(HeroNode heroNode) {
        // 定義一個(gè)輔助節(jié)點(diǎn)
        HeroNode temp = head;
        // 進(jìn)行鏈表是否為空判斷
        if (head.next == null) {
            System.out.println("鏈表為空");
            return;
        }
        // 表示節(jié)點(diǎn)編號(hào)是否被找到
        boolean flag = false;
        // 使用循環(huán)去找節(jié)點(diǎn)編號(hào)
        while (true) {
            if (temp.no == heroNode.no) {
                flag = true;
                break;
            }
            if (temp.next == null) {
                break;
            }
            temp = temp.next;
        }
        // 如果找到節(jié)點(diǎn),就去修改值
        if (flag) {
            temp.name = heroNode.name;
        } else {
            System.out.println("輸入有誤");
        }
    }

    /**
     * 遍歷節(jié)點(diǎn)的方法
     */
    public void show() {
        // 通過頭節(jié)點(diǎn)判斷鏈表是否為空
        HeroNode temp = head;
        while (true) {
            if (temp.next == null) {
                break;
            }
            // 每次輸出確保是可以進(jìn)行輸出的
            HeroNode heroInfo = temp.next;
            System.out.println(heroInfo);
            temp = temp.next;
        }
    }

    /**
     * 根據(jù)節(jié)點(diǎn)的編號(hào)刪除對(duì)應(yīng)的節(jié)點(diǎn)
     * @param no
     */
    public void delete(int no) {
        HeroNode temp = head;
        while (true) {
            if (temp.next == null) {
                System.out.println("要?jiǎng)h除的節(jié)點(diǎn)不存在");
                break;
            }
            if (temp.next.no == no) {
                temp.next = temp.next.next;
                break;
            }
            temp = temp.next;

        }
    }
}

/**
 * 每個(gè)類實(shí)例就是一個(gè)節(jié)點(diǎn)
 */
class HeroNode {
    public int no;
    public String name;
    public HeroNode next;
    public HeroNode(int no, String name) {
        this.no = no;
        this.name = name;
    }

    @Override
    public String toString() {
        return "HeroNode{" +
                "no=" + no +
                ", name='" + name + '\'' +
                '}';
    }
}

?單向帶頭鏈表的添加修改刪除操作

雙向鏈表的添加操作文章來源地址http://www.zghlxwxcb.cn/news/detail-430383.html

public void add(HeroNode heroNode) {
        // 因?yàn)槲补?jié)點(diǎn)不能動(dòng),所以設(shè)置一個(gè)指針節(jié)點(diǎn)
        HeroNode temp = last;
        // 新添加節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)為temp所在的節(jié)點(diǎn)
        HeroNode heroNode1 = new HeroNode(heroNode.no, heroNode.name, temp, null);
        // 進(jìn)行判斷若鏈表中只有一個(gè)元素,則將first指針指向該元素
        if (last == null) {
            first = heroNode1;
        } else {
            // 如果存在元素,就將元素追加到鏈表后面
            temp.next = heroNode1;
        }
        // 進(jìn)行指針后移
        last = heroNode1;
    }

到了這里,關(guān)于單向帶頭鏈表的添加修改刪除操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包