<span id="plx27"><var id="plx27"></var></span>
<dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>
  • 歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
    裝配圖網(wǎng)
    ImageVerifierCode 換一換
    首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

    大學(xué)數(shù)據(jù)結(jié)構(gòu)演示文檔

    • 資源ID:359821       資源大?。?span id="rojz8p8" class="font-tahoma">657.50KB        全文頁(yè)數(shù):64頁(yè)
    • 資源格式: PPT        下載積分:10積分
    快捷下載 游客一鍵下載
    會(huì)員登錄下載
    微信登錄下載
    三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
    二維碼
    微信掃一掃登錄
    下載資源需要10積分
    郵箱/手機(jī):
    溫馨提示:
    用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
    支付方式: 支付寶    微信支付   
    驗(yàn)證碼:   換一換

     
    賬號(hào):
    密碼:
    驗(yàn)證碼:   換一換
      忘記密碼?
        
    友情提示
    2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
    3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
    4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
    5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

    大學(xué)數(shù)據(jù)結(jié)構(gòu)演示文檔

    .,第一章數(shù)據(jù)結(jié)構(gòu)與算法,1.1算法1.2數(shù)據(jù)結(jié)構(gòu)的基本概念1.3線性表及其順序存儲(chǔ)結(jié)構(gòu)1.4棧和隊(duì)列1.5線性鏈表1.6樹(shù)與二叉樹(shù)1.7查找技術(shù)1.8排序技術(shù),.,1.1算法,1.1.1 算法的基本概念算法:是指解題方案的準(zhǔn)確而完整的描述。 算法不等于程序,也不等于計(jì)算機(jī)方法,程序的編制不可能優(yōu)于算法的設(shè)計(jì)。1、算法的基本特征:是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,每一個(gè)規(guī)則都是有效的,是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。,.,1.1算法,特征包括:(1)可行性;(2)確定性,算法中每一步驟都必須有明確定義,不允許有模棱兩可的解釋,不允許有多義性;(3)有窮性,算法必須能在有限的時(shí)間內(nèi)做完,取能在執(zhí)行有限個(gè)步驟后終止,包括合理的執(zhí)行時(shí)間的含義;(4)擁有足夠的情報(bào)。,.,1.1算法,2、算法的基本要素:一是對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作;二是算法的控制結(jié)構(gòu)?;具\(yùn)算和操作包括:算術(shù)運(yùn)算、邏輯運(yùn)算、關(guān)系運(yùn)算、數(shù)據(jù)傳輸。一個(gè)算法一般都可以用順序、選擇、循環(huán)三種基本控制結(jié)構(gòu)組合而成。,.,1.1算法,1.1.2算法的復(fù)雜度 算法時(shí)間復(fù)雜度和算法空間復(fù)雜度。,.,1.1算法,1.算法的時(shí)間復(fù)雜度算法時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。算法的工作量用算法所執(zhí)行的基本運(yùn)算次數(shù)來(lái)度量,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問(wèn)題規(guī)模的函數(shù),即 算法的工作量=f(n)最壞情況復(fù)雜性:是指在規(guī)模為n時(shí),算法所執(zhí)行的基本運(yùn)算的最大次數(shù)。(例:O(n2))常見(jiàn)的時(shí)間復(fù)雜度,按數(shù)量級(jí)比較排列關(guān)系為:,.,1.1算法,2.算法空間復(fù)雜度算法空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。 一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過(guò)程中所需要的額外空間。,.,1.2數(shù)據(jù)結(jié)構(gòu)的基本概念,數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)研究的三個(gè)方面:(1)數(shù)據(jù)集合中和數(shù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);(2)在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu);(3)對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。 討論以上問(wèn)題的主要目的是為了提高數(shù)據(jù)的效率。所謂提高數(shù)據(jù)處理的效率,主要包括兩個(gè)方面:一是提高數(shù)據(jù)處理的速度,二是盡量節(jié)省在數(shù)據(jù)處理過(guò)程中所占用的計(jì)算機(jī)存儲(chǔ)空間。,.,數(shù)據(jù)的邏輯結(jié)構(gòu)包含:(1)表示數(shù)據(jù)元素的信息;(2)表示各數(shù)據(jù)元素之間的前后件關(guān)系。數(shù)據(jù)的邏輯結(jié)構(gòu)分為:線性結(jié)構(gòu)與非線性結(jié)構(gòu)線性結(jié)構(gòu)條件:(1)有且只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。非線性結(jié)構(gòu):不滿足線性結(jié)構(gòu)條件的數(shù)據(jù)結(jié)構(gòu)。,數(shù)據(jù)的邏輯結(jié)構(gòu),.,數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),.,1.3 線性表及其存儲(chǔ)結(jié)構(gòu),1.3.1 線性表的基本概念線性表由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素的位置只取決于自己的序號(hào),元素之間的相對(duì)位置是線性的。學(xué)生情登記表,.,在復(fù)雜線性表中,由若干項(xiàng)數(shù)據(jù)元素組成的數(shù)據(jù)元素稱為記錄,而由多個(gè)記錄構(gòu)成的線性表又稱為文件。非空線性表的結(jié)構(gòu)特征:(1)有且只有一個(gè)根結(jié)點(diǎn)a1,它無(wú)前件;(2)有且只有一個(gè)終端結(jié)點(diǎn)an,它無(wú)后件;(3)除根結(jié)點(diǎn)與終端結(jié)點(diǎn)外,其他所有結(jié)點(diǎn)有且只有一個(gè)前件,也有且只有一個(gè)后件。結(jié)點(diǎn)個(gè)數(shù)n稱為線性表的長(zhǎng)度,當(dāng)n=0時(shí),稱為空表。,.,線性表的順序存儲(chǔ)結(jié)構(gòu)具有以下兩個(gè)基本特點(diǎn):(1)線性表中所有元素的所占的存儲(chǔ)空間是連續(xù)的;(2)線性表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。ai的存儲(chǔ)地址為:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)為第一個(gè)元素的地址,k代表每個(gè)元素占的字節(jié)數(shù)。,線性表的順序存儲(chǔ)結(jié)構(gòu),.,順序表的基礎(chǔ)要點(diǎn),1、線性表是具有n個(gè)數(shù)據(jù)元素的有限序列。2、線性表的順序存儲(chǔ)結(jié)構(gòu)具有三個(gè)弱點(diǎn):在插入和刪除時(shí),需移動(dòng)大量元素由于難以估計(jì),必須預(yù)先分配較大的空間表的容量難以擴(kuò)充 (如何解決?)3、順序存儲(chǔ)結(jié)構(gòu)通過(guò)元素的相對(duì)存儲(chǔ)地址來(lái)表示元素之間的關(guān)系4、線性表順序存儲(chǔ)的優(yōu)點(diǎn)是可隨機(jī)存取元素。5、順序表中邏輯上相鄰的元素的物理位置必定緊鄰。 6、順序表是一種隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)。7、在順序表中插入或刪除一個(gè)元素時(shí),需要平均移動(dòng)表的一半元素,具有移動(dòng)的元素個(gè)數(shù)與該元素的位置有關(guān)。8、在長(zhǎng)度為n的順序表中插入一個(gè)元素的時(shí)間復(fù)雜度為O(n),刪除一個(gè)元素的時(shí)間復(fù)雜度為O(n)。,.,線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是指用一組任意的存儲(chǔ)單元(可以連續(xù),也可以不連續(xù))存儲(chǔ)線性表中的數(shù)據(jù)元素。因此,鏈表中結(jié)點(diǎn)的邏輯次序和物理次序不一定相同。為了能正確表示數(shù)據(jù)元素間的邏輯關(guān)系,對(duì)于每個(gè)數(shù)據(jù)元素不僅要表示它的具體內(nèi)容,還要附加一個(gè)表示它的直接后繼元素存儲(chǔ)位置的信息。這個(gè)信息稱為指針(pointer)或鏈(link)。這兩部分組成了鏈表中的結(jié)點(diǎn)結(jié)構(gòu):,指針域,用來(lái)存放結(jié)點(diǎn)的直接后繼的地址,數(shù)據(jù)域,用來(lái)存放結(jié)點(diǎn)的值,1.4 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)-鏈表,.,術(shù)語(yǔ)表示每個(gè)數(shù)據(jù)元素的兩部分信息組合在一起被稱為結(jié)點(diǎn);其中表示數(shù)據(jù)元素內(nèi)容的部分被稱為數(shù)據(jù)域(data);表示直接后繼元素存儲(chǔ)地址的部分被稱為指針或指針域(next)。,單聯(lián)表結(jié)構(gòu)示意圖,.,數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)結(jié)點(diǎn)對(duì)應(yīng)于一個(gè)存儲(chǔ)單元,這種存儲(chǔ)單元稱為存儲(chǔ)結(jié)點(diǎn),簡(jiǎn)稱結(jié)點(diǎn)。結(jié)點(diǎn)由兩部分組成:(1)用于存儲(chǔ)數(shù)據(jù)元素值,稱為數(shù)據(jù)域;(2)用于存放指針,稱為指針域,用于指向前一個(gè)或后一個(gè)結(jié)點(diǎn)。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來(lái)確定的。鏈?zhǔn)酱鎯?chǔ)方式即可用于表示線性結(jié)構(gòu),也可用于表示非線性結(jié)構(gòu)。,.,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)(1)線性表中的數(shù)據(jù)元素在存儲(chǔ)單元中的存放順序與邏輯順序不一定一致;(2)在對(duì)線性表操作時(shí),只能通過(guò)頭指針進(jìn)入鏈表,并通過(guò)每個(gè)結(jié)點(diǎn)的指針域向后掃描其余結(jié)點(diǎn),這樣就會(huì)造成尋找第一個(gè)結(jié)點(diǎn)和尋找最后一個(gè)結(jié)點(diǎn)所花費(fèi)的時(shí)間不等,具有這種特點(diǎn)的存取方式被稱為順序存取方式。,.,循環(huán)鏈表(circular linked list)循環(huán)鏈表是表中最后一個(gè)結(jié)點(diǎn)的指針指向頭結(jié)點(diǎn),使鏈表構(gòu)成環(huán)狀特點(diǎn):從表中任一結(jié)點(diǎn)出發(fā)均可找到表中其他結(jié)點(diǎn),提高查找效率,.,例題講解,.,鏈表不具有的特點(diǎn)是A) 不必事先估計(jì)存儲(chǔ)空間 B) 可隨機(jī)訪問(wèn)任一元素C) 插入刪除不需要移動(dòng)元素D) 所需空間與線性表長(zhǎng)度成正比用鏈表表示線性表的優(yōu)點(diǎn)是 A) 便于隨機(jī)存取 B) 花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少 C) 便于插入和刪除操作 D) 數(shù)據(jù)元素的物理順序與邏輯順序相同長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為 【1】 。,.,線性表L=(a1,a2,a3,ai,an),下列說(shuō)法正確的是A) 每個(gè)元素都有一個(gè)直接前件和直接后件B) 線性表中至少要有一個(gè)元素C) 表中諸元素的排列順序必須是由小到大或由大到小D) 除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件 在單鏈表中,增加頭結(jié)點(diǎn)的目的是 A) 方便運(yùn)算的實(shí)現(xiàn) B) 使單鏈表至少有一個(gè)結(jié)點(diǎn) C) 標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置 D) 說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn),.,循環(huán)鏈表的主要優(yōu)點(diǎn)是 A) 不再需要頭指針了 B) 從表中任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表 C) 在進(jìn)行插入、刪除運(yùn)算時(shí),能更好保證鏈表不斷開(kāi) D) 已知某個(gè)結(jié)點(diǎn)的位置能容易的找到它的直接前件線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是 A) 順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu) B) 隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu) C) 隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu) D) 任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu),.,下列對(duì)于線性鏈表的描述中正確的是_。A)存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的B)存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面C)存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面D)存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的下列敘述中正確的是_。A)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B)數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)C)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率,.,棧,是一種特殊的線性表。其特殊性在于限定插入和刪除數(shù)據(jù)元素的操作只能在線性表的表尾端進(jìn)行。如下所示: 進(jìn)行插入和刪除的表尾端是浮動(dòng)端,通常被稱為棧頂, an 為棧頂元素, 并用一個(gè)“棧頂指針”指示;而表頭端是固定端,通常被稱為棧底, a1 為棧底元素,。我們經(jīng)常將棧用下圖的形式描述:,a1, a2, a3, ., an 插入和刪除端,.,.,結(jié)論:后進(jìn)先出(Last In First Out),簡(jiǎn)稱為L(zhǎng)IFO線性表。 舉例1:家里吃飯的碗,通常在洗干凈后一個(gè)一個(gè)地落在一起存放,在使用時(shí),若一個(gè)一個(gè)地拿,一定最先拿走最上面的那只碗,而最后拿出最下面的那只碗。 舉例2:在建筑工地上,使用的磚塊從底往上一層一層地碼放,在使用時(shí),將從最上面一層一層地拿取。,.,棧的基本運(yùn)算,棧的基本運(yùn)算:(1)插入元素稱為入棧運(yùn)算;(2)刪除元素稱為退棧運(yùn)算;(3)讀棧頂元素是將棧頂元素賦給一個(gè)指定的變量,此時(shí)指針無(wú)變化,.,棧頂指針和棧中元素之間的關(guān)系,A,B,C,D,E,top 指向棧頂元素,棧的順序存儲(chǔ)及運(yùn)算,.,棧的鏈?zhǔn)酱鎯?chǔ)若是棧中元素的數(shù)目變化范圍較大或不清楚棧元素的數(shù)目,就應(yīng)該考慮使用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。人們將用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)表示的棧稱作“鏈?!?。鏈棧通常用一個(gè)無(wú)頭結(jié)點(diǎn)的單鏈表表示。如圖所示。由于棧的插入刪除操作只能在一端進(jìn)行,而對(duì)于單鏈表來(lái)說(shuō),在首端插入刪除結(jié)點(diǎn)要比尾端相對(duì)地容易一些,所以,我們將單鏈表的首端作為棧頂端,即將單鏈表的頭指針作為棧頂指針。,.,隊(duì)列及其基本運(yùn)算,隊(duì)列(Queue)也是一種運(yùn)算受限的線性表。它只允許在表的一端進(jìn)行插入,而在另一端進(jìn)行刪除。允許刪除的一端稱為隊(duì)頭(front),允許插入的一端稱為隊(duì)尾(rear)。例如:排隊(duì)購(gòu)物。操作系統(tǒng)中的作業(yè)排隊(duì)。先進(jìn)入隊(duì)列的成員總是先離開(kāi)隊(duì)列。因此隊(duì)列亦稱作先進(jìn)先出(First In First Out)的線性表,簡(jiǎn)稱FIFO表。,.,下圖是隊(duì)列的示意圖: a1a2an插入端和刪除端都是浮動(dòng)的。通常我們將插入端稱為隊(duì)尾,用一個(gè)“隊(duì)尾指針”指示;而刪除端被稱為隊(duì)頭,用一個(gè)“隊(duì)頭指針”指示。 結(jié)論:先進(jìn)先出(First In First Out),簡(jiǎn)稱為FIFO線性表。,出隊(duì),入隊(duì),.,隊(duì)列是指允許在一端(隊(duì)尾)進(jìn)入插入,而在另一端(隊(duì)頭)進(jìn)行刪除的線性表。Rear指針指向隊(duì)尾,front指針指向隊(duì)頭。隊(duì)列是“先進(jìn)行出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。隊(duì)列運(yùn)算包括(1)入隊(duì)運(yùn)算:從隊(duì)尾插入一個(gè)元素;(2)退隊(duì)運(yùn)算:從隊(duì)頭刪除一個(gè)元素。,隊(duì)列基本運(yùn)算,.,隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn):用一維數(shù)組實(shí)現(xiàn)sqM,J1,J2,J3,設(shè)兩個(gè)指針front,rear,約定:rear指示隊(duì)尾元素;front指示隊(duì)頭元素前一位置初值front=rear=-1,空隊(duì)列條件:front=rear入隊(duì)列:sq+rear=x;出隊(duì)列:x=sq+front;,.,存在問(wèn)題設(shè)數(shù)組維數(shù)為M,則:當(dāng)front=-1,rear=M-1時(shí),再有元素入隊(duì)發(fā)生溢出真溢出當(dāng)front-1,rear=M-1時(shí),再有元素入隊(duì)發(fā)生溢出假溢出解決方案:循環(huán)隊(duì)列(掌握計(jì)算隊(duì)列元素個(gè)數(shù)的方法)基本思想:把隊(duì)列設(shè)想成環(huán)形,讓sq0接在sqM-1之后,若rear+1=M,則令rear=0;,實(shí)現(xiàn):利用“?!边\(yùn)算入隊(duì): rear=(rear+1)%M; sqrear=x;出隊(duì): front=(front+1)%M; x=sqfront;隊(duì)滿、隊(duì)空判定條件 解決方案: 1.另外設(shè)一個(gè)標(biāo)志以區(qū)別隊(duì)空、隊(duì)滿 2.少用一個(gè)元素空間: 隊(duì)空:front=rear 隊(duì)滿:(rear+1)%M=front,.,隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)簡(jiǎn)稱為鏈隊(duì)列,它是限制僅在表頭刪除和表尾插入的單鏈表。顯然僅有單鏈表的頭指針不便于在表尾做插入操作,為此再增加一個(gè)尾指針,指向鏈表的最后一個(gè)結(jié)點(diǎn)。于是,一個(gè)鏈隊(duì)列由一個(gè)頭指針和一個(gè)尾指針唯一確定。添加頭節(jié)點(diǎn)。和順序隊(duì)列類似,我們也是將這兩個(gè)指針?lè)庋b在一起,,.,例題講解,.,按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是_。A)隊(duì)列 B)棧 C)雙向鏈表 D)二叉樹(shù)下列敘述中正確的是_。A)循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(jié)構(gòu)B)在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C)在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D)循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定,.,設(shè)某循環(huán)隊(duì)列的容量為50,頭指針Front=5 (指向隊(duì)頭元素的前一位置),尾指針rear=29(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有 個(gè)元素。設(shè)某循環(huán)隊(duì)列的容量為50,如果頭指針Front45(指向隊(duì)頭元素的前一位置),尾指針rear=10 (指向隊(duì)尾元素) 則該循環(huán)隊(duì)列中共有 個(gè)元素。 當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為 。,.,16 樹(shù)與二叉樹(shù),樹(shù)是一種簡(jiǎn)單的非線性結(jié)構(gòu),所有元素之間具有明顯的層次特性。 在樹(shù)結(jié)構(gòu)中,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn),沒(méi)有前件的結(jié)點(diǎn)只有一個(gè),稱為樹(shù)的根結(jié)點(diǎn),簡(jiǎn)稱樹(shù)的根。每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒(méi)有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。 在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件的個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。樹(shù)的最大層次稱為樹(shù)的深度。,.,(C)是有13個(gè)結(jié)點(diǎn)的樹(shù),其中A是根,其余結(jié)點(diǎn)分成3個(gè)子集: T1 、T2 、T3 。都是根A的子樹(shù),且本身也是一棵樹(shù)。例如: T1 其根為B,兩棵子樹(shù)為 T11 = F T12 = E, K, L , T12 又是一棵子樹(shù),樹(shù)根為F,K 和 L是E的兩個(gè)互不相交的子集。,4,.,A,(a),(b),(c),.,1.6.2二叉樹(shù)及其基本性質(zhì),二叉樹(shù)的特點(diǎn):(1)非空二叉樹(shù)只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有兩棵子樹(shù),且分別稱為該結(jié)點(diǎn)的左子樹(shù)與右子樹(shù)。,.,G H,D E F,B C,A,.,二叉樹(shù)的基本性質(zhì):,(1)在二叉樹(shù)的第k層上,最多有2k-1(k1)個(gè)結(jié)點(diǎn);(2)深度為m的二叉樹(shù)最多有2m-1個(gè)結(jié)點(diǎn);(3)度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè);(4)具有n個(gè)結(jié)點(diǎn)的二叉樹(shù),其深度至少為log2n+1,其中l(wèi)og2n表示取log2n的整數(shù)部分;(5)具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù)的深度為log2n+1;,.,滿二叉樹(shù)是指除最后一層外,每一層上的所有結(jié)點(diǎn)有兩個(gè)子結(jié)點(diǎn),則k層上有2k-1個(gè)結(jié)點(diǎn)深度為m的滿二叉樹(shù)有2m-1個(gè)結(jié)點(diǎn)。 完全二叉樹(shù)是指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干結(jié)點(diǎn)。,滿二叉樹(shù)和完全二叉樹(shù),.,.,一棵滿二叉樹(shù)一定是一棵完全二叉樹(shù),而一棵完全二叉樹(shù)不一定是滿二叉樹(shù)。,.,1.6.3二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)二叉樹(shù)也可以采用兩種存儲(chǔ)方式:順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。1. 順序存儲(chǔ)結(jié)構(gòu)這種存儲(chǔ)結(jié)構(gòu)適用于完全二叉樹(shù)。其存儲(chǔ)形式為:用一組連續(xù)的存儲(chǔ)單元依次自上而下、自左至右存儲(chǔ)完全二叉樹(shù)的結(jié)點(diǎn)元素,即 :按照完全二叉樹(shù)的每個(gè)結(jié)點(diǎn)編號(hào)的順序存放結(jié)點(diǎn)內(nèi)容。下面是一棵二叉樹(shù)及其相應(yīng)的存儲(chǔ)結(jié)構(gòu)。,.,a,b,c,d,e,f,g,h,i,j,k,l,完全二叉樹(shù),1 2 3 4 5 6 7 8 9 10 11 12,.,2 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 在順序存儲(chǔ)結(jié)構(gòu)中,利用編號(hào)表示元素的位置及元素之間孩子或雙親的關(guān)系,因此對(duì)于非完全二叉樹(shù),需要將空缺的位置用特定的符號(hào)填補(bǔ),若空缺結(jié)點(diǎn)較多,勢(shì)必造成空間利用率的下降。在這種情況下,就應(yīng)該考慮使用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。 常見(jiàn)的二叉樹(shù)結(jié)點(diǎn)結(jié)構(gòu)如下所示:,.,1.6.4二叉樹(shù)的遍歷所謂遍歷二叉樹(shù)就是按某種順序訪問(wèn)二叉樹(shù)中的每個(gè)結(jié)點(diǎn)一次且僅一次的過(guò)程。這里的訪問(wèn)可以是輸出、比較、更新、查看元素內(nèi)容等等各種操作。二叉樹(shù)的遍歷方式分為:前序遍歷、中序遍歷、后序遍歷,.,(1)先序遍歷若二叉樹(shù)為空,則結(jié)束遍歷操作;否則訪問(wèn)根結(jié)點(diǎn);先序遍歷左子樹(shù);先序遍歷右子樹(shù)。(2)中序遍歷若二叉樹(shù)為空,則結(jié)束遍歷操作;否則中序遍歷左子樹(shù);訪問(wèn)根結(jié)點(diǎn);中序遍歷右子樹(shù)。,.,(3)后序遍歷若二叉樹(shù)為空,則結(jié)束遍歷操作;否則后序遍歷左子樹(shù);后序遍歷右子樹(shù);訪問(wèn)根結(jié)點(diǎn)。下面是一棵二叉樹(shù)及其經(jīng)過(guò)三種遍歷得到的相應(yīng)序列。,.,G H,B C,A,先序序列:ABDGCEFH中序序列:DGBAECHF后序序列:GDBEHFCA,.,17 查找技術(shù),1.7.1順序查找順序查找是一種最簡(jiǎn)單的查找方法。順序查找的使用情況:(1)線性表為無(wú)序表;(2)表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。,.,1.7.2二分法查找二分法查找只適用于順序存儲(chǔ)的有序表。對(duì)于長(zhǎng)度為n的有序線性表,最壞情況只需比較log2n次。,.,1.8排序技術(shù),排序是指將一個(gè)無(wú)序序列整理成按值非遞減順序排列的有序序列。1.8.1交換排序所謂交換類排序法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行的排序的一種方法。,.,1.冒泡排序冒泡排序是一種最簡(jiǎn)單的交換類排序方法,它是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。冒泡排序法,需要比較的次數(shù)為n(n-1)/2; .快速排序最壞情況下,需要比較的次數(shù)為n(n-1)/2,.,.8.2插入排序簡(jiǎn)單插入排序法最壞情況需要n(n-1)/2次比較; .希爾排序法最壞情況需要O(n1.5)次比較。,.,. 選擇類排序法,(1)簡(jiǎn)單選擇排序法最壞情況需要n(n-1)/2次比較;(2)堆排序法最壞情況需要O(nlog2n)次比較。,.,在深度為7的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為_(kāi)。 A)32 B)31 C)64 D)63對(duì)下列二叉樹(shù):進(jìn)行中序遍歷的結(jié)果是_。 A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG,.,某二叉樹(shù)中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為_(kāi)。A)n+1 B)n-1 C)2n D)n/2 一棵二叉樹(shù)中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹(shù)中的總結(jié)點(diǎn)數(shù)為_(kāi)。 A)219 B)221 C)229 D)231一棵二叉樹(shù)的中序遍歷結(jié)果為DBEAFC,前序遍歷結(jié)果為ABDECF,則后序遍歷結(jié)果為 。設(shè)一棵完全二叉樹(shù)共有839個(gè)結(jié)點(diǎn),則該二叉樹(shù)中有 個(gè)葉子結(jié)點(diǎn)。,.,對(duì)于長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為_(kāi)。A)log2n B) n/2 C) n D) n+1下列敘述中正確的是_。A)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞的情況需要比較次數(shù)為n。B)對(duì)長(zhǎng)度為n的有序鏈序表進(jìn)行對(duì)分查找,最壞的情況需要比較次數(shù)為(n/2)。C)對(duì)長(zhǎng)度為n的有序鏈序表進(jìn)行對(duì)分查找,最壞的情況需要比較次數(shù)為(log2n)。D)對(duì)長(zhǎng)度為n的有序鏈序表進(jìn)行對(duì)分查找,最壞的情況需要比較次數(shù)為(nlog2n)。對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為 。,

    注意事項(xiàng)

    本文(大學(xué)數(shù)據(jù)結(jié)構(gòu)演示文檔)為本站會(huì)員(1**)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

    溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




    關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

    copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

    備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


    本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

    欧美久久久一区二区三区,国产精品亚洲一区二区无码,亚洲国产精品综合久久20声音,亚洲国产精品无码久久久蜜芽
    <span id="plx27"><var id="plx27"></var></span>
    <dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>