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

【數(shù)據(jù)結(jié)構(gòu) | 入門】線性表與鏈表 (問題引入&實(shí)現(xiàn)&算法優(yōu)化)

這篇具有很好參考價(jià)值的文章主要介紹了【數(shù)據(jù)結(jié)構(gòu) | 入門】線性表與鏈表 (問題引入&實(shí)現(xiàn)&算法優(yōu)化)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

???♂? 個(gè)人主頁: @計(jì)算機(jī)魔術(shù)師
????? 作者簡(jiǎn)介:CSDN內(nèi)容合伙人,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者。

本文是浙大數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記專欄

一、問題引入 - 如何用編程表達(dá)多項(xiàng)式

這里我們引入一個(gè)問題,最常見的多項(xiàng)式,我們?nèi)绾问褂镁幊虒⒍囗?xiàng)式表示出來呢?
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

方法一 - 順序存儲(chǔ)結(jié)構(gòu)

我們可以使用數(shù)組來表示,但是會(huì)隨著一個(gè)問題,如下圖底部所表示的多項(xiàng)式,我們需要多大的數(shù)組來表示呢?顯然需要使用2001個(gè)數(shù)組來表示,缺只有兩項(xiàng)多項(xiàng)式,會(huì)有非常大一部分為0,會(huì)很浪費(fèi)空間

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

方法二- 順序存儲(chǔ)結(jié)構(gòu)表示非零項(xiàng)

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表
這樣我們就可以只存儲(chǔ)存在的多項(xiàng)式,減少了大量空間的浪費(fèi),那么難點(diǎn)來了,怎么進(jìn)行加減操作呢? 要求是按指數(shù)大小有序存儲(chǔ)
我們按照次方排序,不相同時(shí)往下放,相同時(shí)系數(shù)相加即可,
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

方法三 - 鏈表結(jié)構(gòu)存儲(chǔ)非零項(xiàng)

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表
我們還可以使用鏈表來實(shí)現(xiàn),加減也是和上面的方法一樣

二、什么是線性表

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

2.1 抽象類型描述

(描述分為 數(shù)據(jù)對(duì)象集操作集`)

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

三、 線性表的順序存儲(chǔ)實(shí)現(xiàn)

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

3.3 主要操作的實(shí)現(xiàn)

初始化與查找

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

插入(首先需要全部元素往后挪)

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

刪除操作
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

四、 線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表
其中問題在于我們只知道一個(gè)鏈表頭,那我們?nèi)绾沃涝摼€性表的長(zhǎng)度為多少?,

4.3 主要操作的實(shí)現(xiàn)

實(shí)現(xiàn)方法是遍歷鏈表長(zhǎng)
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

查找 (在鏈表中查找值比數(shù)組麻煩,也需要便利鏈表)
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表
插入

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表
刪除操作
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表
需要注意的是刪除第一個(gè)結(jié)點(diǎn)的操作,由于第一個(gè)結(jié)點(diǎn)沒有上一個(gè)結(jié)點(diǎn)(頭節(jié)點(diǎn)不算)所以將后面的結(jié)點(diǎn)往前挪,如果不是第一個(gè)節(jié)點(diǎn),則將結(jié)點(diǎn)指針指向往后指向一位

五、 廣義表

為了表示二元多項(xiàng)式,我們可以將二元多項(xiàng)式看作只關(guān)于 x x x得一元多項(xiàng)式,如下(每個(gè)鏈表鐘第一個(gè)地址代表著參數(shù),第二個(gè)值代表x的冪
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

我們使用 c語言所提供的聯(lián)合實(shí)現(xiàn)
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

六、多重鏈表

廣義表其實(shí)就是特殊的多重鏈表
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

我們看一個(gè)矩陣的例子(和之前存貯多項(xiàng)式一樣,用數(shù)組存儲(chǔ)面對(duì)非常多的系數(shù)為0時(shí),非常浪費(fèi)空間)
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表
我們抓住關(guān)鍵信息,構(gòu)造結(jié)點(diǎn),其中如下,左上角的Term為入口點(diǎn),兩個(gè)指針指向行頭結(jié)點(diǎn)和列頭結(jié)點(diǎn),
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表

我們便可通過聯(lián)合將非0元素與0元素合并為一個(gè)tag
講數(shù)據(jù)結(jié)構(gòu)鏈表課程導(dǎo)入,數(shù)據(jù)結(jié)構(gòu)與算法章,數(shù)據(jù)結(jié)構(gòu),鏈表,算法,c語言,線性表文章來源地址http://www.zghlxwxcb.cn/news/detail-812236.html

  ?謝謝你的閱讀,您的點(diǎn)贊和收藏就是我創(chuàng)造的最大動(dòng)力!?

到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu) | 入門】線性表與鏈表 (問題引入&實(shí)現(xiàn)&算法優(yōu)化)的文章就介紹完了。如果您還想了解更多內(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)文章

  • 數(shù)據(jù)結(jié)構(gòu)—LinkedList與鏈表

    數(shù)據(jù)結(jié)構(gòu)—LinkedList與鏈表

    目錄 一、鏈表 1.?鏈表的概念及結(jié)構(gòu) 1. 單向或者雙向 2. 帶頭或者不帶頭 3. 循環(huán)或者非循環(huán) 二.LinkedList的使用 ?1.LinkedList概念及結(jié)構(gòu) 2. LinkedList的構(gòu)造 3.?LinkedList的方法 三. ArrayList和LinkedList的區(qū)別 ? ????????鏈表是一種 物理存儲(chǔ)結(jié)構(gòu)上非連續(xù) 存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的 邏輯

    2024年02月04日
    瀏覽(26)
  • 【數(shù)據(jù)結(jié)構(gòu)】鏈表與LinkedList

    【數(shù)據(jù)結(jié)構(gòu)】鏈表與LinkedList

    作者主頁: paper jie 的博客 本文作者:大家好,我是paper jie,感謝你閱讀本文,歡迎一建三連哦。 本文錄入于《JAVA數(shù)據(jù)結(jié)構(gòu)》專欄,本專欄是針對(duì)于大學(xué)生,編程小白精心打造的。筆者用重金(時(shí)間和精力)打造,將javaSE基礎(chǔ)知識(shí)一網(wǎng)打盡,希望可以幫到讀者們哦。 其他專欄

    2024年02月08日
    瀏覽(86)
  • 數(shù)據(jù)結(jié)構(gòu)(Java實(shí)現(xiàn))LinkedList與鏈表(上)

    數(shù)據(jù)結(jié)構(gòu)(Java實(shí)現(xiàn))LinkedList與鏈表(上)

    鏈表 邏輯結(jié)構(gòu) 無頭單向非循環(huán)鏈表:結(jié)構(gòu)簡(jiǎn)單,一般不會(huì)單獨(dú)用來存數(shù)據(jù)。實(shí)際中更多是作為其他數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),如哈希桶、圖的鄰接表等等。 無頭雙向鏈表:在Java的集合框架庫中LinkedList底層實(shí)現(xiàn)就是無頭雙向循環(huán)鏈表。 鏈表的實(shí)現(xiàn) 創(chuàng)建一個(gè)鏈表 遍歷單鏈表 、 得到

    2024年02月11日
    瀏覽(30)
  • 數(shù)據(jù)結(jié)構(gòu)(Java實(shí)現(xiàn))LinkedList與鏈表(下)

    數(shù)據(jù)結(jié)構(gòu)(Java實(shí)現(xiàn))LinkedList與鏈表(下)

    ** ** 結(jié)論 讓一個(gè)指針從鏈表起始位置開始遍歷鏈表,同時(shí)讓一個(gè)指針從判環(huán)時(shí)相遇點(diǎn)的位置開始繞環(huán)運(yùn)行,兩個(gè)指針都是每次均走一步,最終肯定會(huì)在入口點(diǎn)的位置相遇。 LinkedList的模擬實(shí)現(xiàn) 單個(gè)節(jié)點(diǎn)的實(shí)現(xiàn) 尾插 運(yùn)行結(jié)果如下: 也可以暴力使用 全部代碼 MyLinkedList IndexOut

    2024年02月11日
    瀏覽(22)
  • 【數(shù)據(jù)結(jié)構(gòu)(三)】鏈表與LinkedList

    【數(shù)據(jù)結(jié)構(gòu)(三)】鏈表與LinkedList

    ?博主主頁: 33的博客? ??文章專欄分類:數(shù)據(jù)結(jié)構(gòu)?? ??我的代碼倉庫: 33的代碼倉庫?? ?????? 關(guān)注我?guī)銓W(xué)更多數(shù)據(jù)結(jié)構(gòu)知識(shí) 在上一篇文章中,我們已經(jīng)認(rèn)識(shí)了順序表,通過源碼我們知道ArrayList底層是使用數(shù)組來存儲(chǔ)元素,當(dāng)在ArrayList任意位置插入或者刪除元素時(shí),

    2024年04月13日
    瀏覽(94)
  • 《數(shù)據(jù)結(jié)構(gòu)與算法》之隊(duì)列與鏈表復(fù)習(xí)

    《數(shù)據(jù)結(jié)構(gòu)與算法》之隊(duì)列與鏈表復(fù)習(xí)

    我們?cè)谏弦淮螌W(xué)習(xí)了堆棧的數(shù)據(jù)結(jié)構(gòu)以后,可以了解到它是受限制的操作,比如我們操作只能在棧頂,現(xiàn)在我們要學(xué)習(xí)的東西叫做隊(duì)列,它也是受限制的一種數(shù)據(jù)結(jié)構(gòu),它的特點(diǎn)是隊(duì)頭只出數(shù)據(jù),而隊(duì)尾只入數(shù)據(jù), 它的結(jié)構(gòu)就和它的名字,像我們平時(shí)排隊(duì)一樣先來的人肯定要

    2024年02月08日
    瀏覽(31)
  • 【數(shù)據(jù)結(jié)構(gòu)】線性表與順序表

    【數(shù)據(jù)結(jié)構(gòu)】線性表與順序表

    ? 作者:小胡_不糊涂 ?? 作者主頁:小胡_不糊涂的個(gè)人主頁 ?? 收錄專欄:淺談數(shù)據(jù)結(jié)構(gòu) ?? 持續(xù)更文,關(guān)注博主少走彎路,謝謝大家支持 ?? 線性表(linear list) 是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列。 它是一種在實(shí)際中廣泛使用的數(shù)據(jù)結(jié)構(gòu),常見的線性表:順序表

    2024年02月07日
    瀏覽(34)
  • 【編織時(shí)空四:探究順序表與鏈表的數(shù)據(jù)之旅】

    【編織時(shí)空四:探究順序表與鏈表的數(shù)據(jù)之旅】

    鏈表的分類 帶頭雙向循環(huán)鏈表接口實(shí)現(xiàn) 順序表和鏈表的區(qū)別 緩存利用率參考存儲(chǔ)體系結(jié)構(gòu) 以及 局部原理性。 實(shí)際中鏈表的結(jié)構(gòu)非常多樣,以下情況組合起來就有8種鏈表結(jié)構(gòu): 1. 單向或者雙向 2. 帶頭或者不帶頭 3. 循環(huán)或者非循環(huán)? 雖然有這么多的鏈表的結(jié)構(gòu),但是我們實(shí)

    2024年02月12日
    瀏覽(84)
  • 【編織時(shí)空三:探究順序表與鏈表的數(shù)據(jù)之旅】

    【編織時(shí)空三:探究順序表與鏈表的數(shù)據(jù)之旅】

    鏈表OJ題 思路一:刪除頭結(jié)點(diǎn)時(shí)另做考慮(由于頭結(jié)點(diǎn)沒有前一個(gè)結(jié)點(diǎn)) 思路二:添加一個(gè)虛擬頭結(jié)點(diǎn),刪除頭結(jié)點(diǎn)就不用另做考慮 思路:通過三個(gè)指針的操作,每次將當(dāng)前節(jié)點(diǎn)反轉(zhuǎn)并向前移動(dòng) ? 思路:頭插法 思路:快慢指針的前進(jìn)方向相同,且它們步伐的「差」是恒定

    2024年02月11日
    瀏覽(95)
  • 【數(shù)據(jù)結(jié)構(gòu)】_4.List接口實(shí)現(xiàn)類LinkedList與鏈表

    【數(shù)據(jù)結(jié)構(gòu)】_4.List接口實(shí)現(xiàn)類LinkedList與鏈表

    目錄 1.鏈表的結(jié)構(gòu)與特點(diǎn) 1.1 鏈表的結(jié)構(gòu): 1.2 鏈表的特點(diǎn): 2. 不帶頭單鏈表的模擬實(shí)現(xiàn) 3. 單鏈表OJ 3.1 題目1:移除鏈表元素:? 3.2 題目2:反轉(zhuǎn)一個(gè)單鏈表 3.3 題目3:返回鏈表的中間結(jié)點(diǎn) 3.4 題目4:鏈表的倒數(shù)第k個(gè)結(jié)點(diǎn) 3.5 題目5:合并兩個(gè)有序鏈表 3.6 題目6:鏈表的回文結(jié)構(gòu)

    2024年02月15日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包