日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

专升本数据结构复习

發(fā)布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 专升本数据结构复习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

數(shù)據(jù)結(jié)構(gòu)知識點(diǎn)總匯

主要參考書目:

  • 程海英老師的《數(shù)據(jù)結(jié)構(gòu)(C語言版)》教材
  • 嚴(yán)蔚敏,李冬梅,吳偉民.《數(shù)據(jù)結(jié)構(gòu)(C語言版)》
  • 推薦視頻:西北大學(xué) 數(shù)據(jù)結(jié)構(gòu)-耿國華老師

    說明:這是本人專升本上岸一年后寫的,本篇包含知識點(diǎn)和例題總結(jié)。因為是當(dāng)時自己手碼的,所以知識點(diǎn)有冗余和順序錯位。如果發(fā)現(xiàn)有錯誤之處,歡迎評論區(qū)留言,看到后及時改正,謝謝!最后祝大家好好學(xué)習(xí),積極向上,早日上岸!

    ① 數(shù)據(jù)結(jié)構(gòu)(邏輯結(jié)構(gòu))其4類基本結(jié)構(gòu):集合線性結(jié)構(gòu)樹形結(jié)構(gòu)圖狀結(jié)構(gòu)網(wǎng)狀結(jié)構(gòu)

    ② 物理結(jié)構(gòu)(存儲結(jié)構(gòu))其4種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)鏈?zhǔn)酱鎯Y(jié)構(gòu)索引存儲結(jié)構(gòu)散列存儲結(jié)構(gòu)

    ③ 算法5個重要特性:有窮性、確定性、可行性、輸入 和 輸出。
    ?? 通常從四個方面評價算法的質(zhì)量:正確性、易讀性、強(qiáng)壯性 和 高效率。

    ④ 線性表是由n≥0個數(shù)據(jù)元素組成的 有限序列。其特點(diǎn)為邏輯關(guān)系上相鄰的兩個元素在物理位置上也相鄰。

    ⑤ 在順序表中實現(xiàn)的基本運(yùn)算:
    ??插入:平均移動結(jié)點(diǎn)次數(shù)為 n/2;平均時間復(fù)雜度均為O(n)。
    ??刪除:平均移動結(jié)點(diǎn)次數(shù)為 (n-1)/2;平均時間復(fù)雜度均為O(n)。

    ⑥ 存儲位置計算:每個元素需占用L個存儲單元第一個單元的存儲地址作為數(shù)據(jù)元素的存儲位置線性表的第i個數(shù)據(jù)元素ai的存儲位置為LOC(ai)=LOC(a1)+(i-1)*L ,a1的存儲位置,通常稱做線性表的起始位置或基地址。

    ⑦ 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu):數(shù)據(jù)元素ai的存儲映像稱為結(jié)點(diǎn),包括2個域:存數(shù)據(jù)的 數(shù)據(jù)域、存后繼存儲位置的 指針域

    ⑧ 線性鏈表(單鏈表)特點(diǎn):每個結(jié)點(diǎn)只包含1個指針域。在單鏈表的第一個結(jié)點(diǎn)之前附設(shè)的一個結(jié)點(diǎn),稱之為 頭結(jié)點(diǎn)。

    ⑨ 假設(shè)L是LinkList型變量,則L為單鏈表的頭指針,它指向表中第一個結(jié)點(diǎn)。
    ??L->next 為第一個結(jié)點(diǎn)地址,L->next=NULL為 空表。
    ??回收結(jié)點(diǎn):free(q)

    ⑩ 棧:是限定僅在 棧頂(表尾)進(jìn)行插入或刪除操作 的線性表。表頭端稱為棧底,不含有元素的空表稱為空棧;棧又稱為 后進(jìn)先出 的線性表。

    ? 隊列:是一種 先進(jìn)先出 的線性表,它只允許在表的一端進(jìn)行插入,而另一端刪除元素。允許插入的一端叫做隊尾,允許刪除的一端則稱為隊頭。

    ? 鏈隊列:用鏈表示的隊列。一個隊列需要頭指針和尾指針才能確定唯一。

    ⑩ 棧:是限定僅在 棧頂(表尾)進(jìn)行插入或刪除操作 的線性表。表頭端稱為棧底,不含有元素的空表稱為空棧;棧又稱為 后進(jìn)先出 的線性表。

    ? 隊列:是一種 先進(jìn)先出 的線性表,它只允許在表的一端進(jìn)行插入,而另一端刪除元素。允許插入的一端叫做隊尾,允許刪除的一端則稱為隊頭。

    ? 鏈隊列:用鏈表示的隊列。一個隊列需要頭指針和尾指針才能確定唯一。

    ? 循環(huán)隊列:兩個指針front指示隊列頭元素和rear指示隊列尾元素的位置。初始化建空隊列時,令front = rear = 0,每當(dāng)插入新的隊列尾元素時,“尾指針增1”;每當(dāng)刪除隊列頭元素時,“頭指針增1”。


    ? 串:是由零個或多個字符組成的有限序列。

    ? 數(shù)組的存儲位置計算:假設(shè)每個數(shù)據(jù)元素需占用L個存儲單元,則二維數(shù)組A中任一元素A[ij]的存儲位置可由下式確定:

    ??以行序為主序的存儲結(jié)構(gòu):LOC(i,j)=LOC(0,0)+(n*i+j)*L;(n為行數(shù))

    ??以列序為主序的存儲結(jié)構(gòu):LOC(i,j)=LOC(0,0)+(n*j+i)*L;(n為列數(shù))

    ? 廣義表:是線性表的推廣,在廣義表的定義中,ai可以是單個元素,也可以是廣義表,分別稱為廣義表LS的原子和子表。

    ? 二叉樹的性質(zhì):
    ??性質(zhì)1:在二叉樹的第K層上至多有 2k-1 個結(jié)點(diǎn)(K≥1)。
    ??性質(zhì)2:深度為k的二叉樹至多 2k-1 個結(jié)點(diǎn)(k≥1)。
    ??????深度為k的二叉樹至少有k個結(jié)點(diǎn)(k≥1)。
    ??????深度為k的完全二叉樹至少有 2k-1 個結(jié)點(diǎn)(k≥1)。
    ??性質(zhì)3:對任何一棵二叉樹T,如果其終端結(jié)點(diǎn)數(shù)為N0,度為2的結(jié)點(diǎn)數(shù)為N2,則 N0=N2+1。總結(jié)點(diǎn)個數(shù) N=N0+N1+N2。
    ??性質(zhì)4:具有n個結(jié)點(diǎn)的完全二叉樹的深度為 [log2n]+1。

    ? 滿二叉樹:一顆深度為k且有 2的k次方減1個結(jié)點(diǎn)的二叉樹。

    ? 完全二叉樹:深度為k的,有n個結(jié)點(diǎn)的二叉樹,當(dāng)且僅當(dāng)其每一個結(jié)點(diǎn)都與深度為k的滿二叉樹中編號從1至n的結(jié)點(diǎn)一一對應(yīng)。

    ? 樹轉(zhuǎn)換成二叉樹:連兄弟,留長子,刪孩子。
    ??注意:由于樹根沒有兄弟結(jié)點(diǎn),固樹轉(zhuǎn)換為二叉樹后,二叉樹根結(jié)點(diǎn)的右子樹必為空。

    ① 森林轉(zhuǎn)換成二叉樹:連樹根及兄弟,留長子,刪孩子。

    ② 二叉樹轉(zhuǎn)換成樹:連左孩子的右孩子及其右孩子…,刪原樹右孩子。

    ③ 赫夫曼樹:又稱最優(yōu)樹,是一類帶權(quán)路徑長度最短的樹。
    WPL=23+43+52+71=35

    ④ 赫夫曼編碼:在赫夫曼樹上,左分支代表0,右分支代表1。由根結(jié)點(diǎn)到指定結(jié)點(diǎn)的路徑(從上到下把0、1連起來),就是該結(jié)點(diǎn)的赫夫曼編碼;如上圖(d)中a為0,b為10,c為110,d為111。

    ⑤無向完全圖:有 n(n-1)/2 條邊的無向圖。
    ?有向完全圖:有 n(n-1) 條邊的有向圖。

    ⑥鄰接矩陣:無向圖的鄰接矩陣關(guān)于主對角線對稱,在整個矩陣中非零元素的個數(shù)等于邊個數(shù)的2倍,第i行和第i列中非零元素的個數(shù)等于該結(jié)點(diǎn)的度。

    ⑦ 鄰接表:無向圖的鄰接矩陣關(guān)于主對角線對稱,在整個矩陣中非零元素的個數(shù)等于邊個數(shù)的2倍,第i行和第i列中非零元素的個數(shù)等于該結(jié)點(diǎn)的度。

    ⑧ 深度優(yōu)先遍歷:


    ⑨ 廣度優(yōu)先遍歷:

    ⑩ 最小生成樹:
    普里姆算法(Prim):連相鄰權(quán)值最小的。

    克魯斯卡爾算法(Kruskal):先連權(quán)值最小的,再依次連。

    ? 拓?fù)渑判?#xff1a;由某個集合上的一個偏序得到該集合上的一個全序的操作。
    ?順序查找法平均查找長度:ASL=(n+1)/2。
    ?折半查找法(二分查找法)平均查找長度:ASL=(n+1)/n*log2(n+1)-1
    ?索引順序表查找法(分塊查找法)平均查找長度:ASL≈log2(n/s+1)+s/2。

    ? 直接插入排序:將一個記錄插入到已排好序的有序表中,從而得到一個新的、記錄數(shù)增1的有序表。

    ? 冒泡排序:首先將一個記錄的關(guān)鍵字和第二個記錄的關(guān)鍵字進(jìn)行比較,若為逆序(即L.r[1].key>L.r[2].key),則將兩個記錄交換之,然后比較第二個記錄和第三個記錄的關(guān)鍵字。以此類推,直至第n-1個記錄和第n個記錄的關(guān)鍵字進(jìn)行過比較為止。
    ? 快速排序:通過一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可分別對這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個序列有序。
    ① 順序表是隨機(jī)存儲結(jié)構(gòu),當(dāng)線性表的操作 主要是查找時,宜采用以插入和刪除操作為主的線性表宜采用 鏈表 做存儲結(jié)構(gòu)。若 插入和刪除主要發(fā)生在表的首尾兩端,則宜采用尾指針表示的單循環(huán)鏈表。

    ② 在順序棧中有“上溢”和“下溢”的現(xiàn)象,“上溢”是棧頂指針指出棧的外面是出錯狀態(tài),“下溢”可以表示棧為空棧,因此用來作為控制轉(zhuǎn)移的條件。

    ③ 隊列 是一種運(yùn)算受限的線性表,允許刪除的一端稱為隊頭(front),允許插入的一端稱為隊尾(rear) ,隊列的操作原則是先進(jìn)先出的,又稱作FIFO表。隊列也有順序存儲和鏈?zhǔn)酱鎯煞N存儲結(jié)構(gòu)。

    ④循環(huán)隊列:判定循環(huán)隊列是空還是滿,方法有三種:
    ?一種是另設(shè)一個布爾變量來判斷;
    ?第二種是少用一個元素空間,入隊時先測試((rear+1)%m = front)? 滿:空;
    ?第三種就是用一個計數(shù)器記錄隊列中的元素的總數(shù)。

    ⑤ 隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為鏈隊列,為了便于在表尾進(jìn)行插入(入隊)的操作,在表尾增加一個尾指針,一個鏈隊列就由一個頭指針和一個尾指針唯一地確定。鏈隊列不存在隊滿和上溢的問題。
    在鏈隊列的出隊算法中,要注意當(dāng)原隊中只有一個結(jié)點(diǎn)時,出隊后要同進(jìn)修改頭尾指針并使隊列變空。

    ⑥ 串是零個或多個字符組成的有限序列。
    ?空串:是指長度為零的串,也就是串中不包含任何字符(結(jié)點(diǎn))
    ?空白串:指串中包含一個或多個空格字符的串。

    ⑦ 子串在主串中的序號就是指子串在主串中首次出現(xiàn)的位置。空串是任意串的子串,任意串是自身的子串。

    ⑧ 串的基本運(yùn)算有:
    ?求串長strlen(char*s) 串復(fù)制strcpy(char*to,char*from)
    ?字符定位strchr(char*s,charc) 串聯(lián)接strcat(char*to,char*from)
    ?串比較charcmp(char*s1,char*s2)

    ⑨地址的計算方法:
    ?按行優(yōu)先順序排列的數(shù)組:LOCa(ij)=LOCa(11)+((i-1)*n+(j-1))*d
    ?按列優(yōu)先順序排列的數(shù)組:LOCa(ij)=LOCa(11)+((j-1)*n+(i-1))*d

    ⑩圖的存儲結(jié)構(gòu):
    ?鄰接矩陣表示法:用一個n階方陣來表示圖的結(jié)構(gòu)是唯一的;無向圖中鄰接矩陣是對稱的;有向圖中行是出度,列是入度。
    ?鄰接表表示法:用頂點(diǎn)表和鄰接表構(gòu)成不是唯一的;頂點(diǎn)表結(jié)構(gòu) vertex | firstedge,指針域存放鄰接表頭指針;鄰接表是用頭指針確定。

    ?圖的遍歷:
    ?深度優(yōu)先遍歷:借助于鄰接矩陣的列。使用棧保存已訪問結(jié)點(diǎn)。
    ?廣度優(yōu)先遍歷:借助于鄰接矩陣的行。使用隊列保存已訪問結(jié)點(diǎn)。

    ? 直接插入排序:

    ? 直接選擇排序:
    ? 冒泡排序:
    ? 快速排序:

    ① n個結(jié)點(diǎn)的二叉樹共有 2n 個指針域,其中有 n-1 個指針域是存放了地址,有 n+1 個指針是空指針。

    ② 在一個具有n個頂點(diǎn)的無向完全圖中,包含有 e 條邊,在一個具有n個頂點(diǎn)的有向完全圖中,包含有 2e 條邊。

    ③ 在堆排序的過程中,對任一分支結(jié)點(diǎn)進(jìn)行篩運(yùn)算的時間復(fù)雜度為 O(log2n),整個堆排序過程的時間復(fù)雜度為 O(nlog2n)。

    ④ AOV網(wǎng)是一種 有向無回路 的圖。



    ⑤ 設(shè)哈夫曼樹中的葉子結(jié)點(diǎn)總數(shù)為m,若用二叉鏈表作為存儲結(jié)構(gòu),則該哈夫曼樹中總共有 2m 個空指針域。(m個葉子節(jié)點(diǎn)的哈夫曼樹總共有2m-1個節(jié)點(diǎn))

    ⑥ 設(shè)順序循環(huán)隊列Q[0:M-1]的頭指針和尾指針分別為F和R,頭指針F總是指向隊頭元素的前一位置,尾指針R總是指向隊尾元素的當(dāng)前位置,則該循環(huán)隊列中的元素個數(shù)為 (R-F+M)%M。

    ⑦ 快速排序的最壞時間復(fù)雜度為 O(n2),平均時間復(fù)雜度為 O(nlog2n)。






    ⑧ 數(shù)據(jù)的物理結(jié)構(gòu)主要包括 順序存儲結(jié)構(gòu)鏈?zhǔn)酱鎯Y(jié)構(gòu) 兩種情況。

    ⑨ 二分查找的過程可以用一棵二叉樹來描述,該二叉樹稱為二叉判定樹。在有序表上進(jìn)行二分查找時的查找長度 不超過 二叉判定樹的高度 1+log2n。


    ⑩ 設(shè)有n個無序的記錄關(guān)鍵字,則直接插入排序的時間復(fù)雜度為 O(n2),快速排序的平均時間復(fù)雜度為 O(nlog2n)。

    ? 設(shè)指針變量p指向雙向循環(huán)鏈表中的結(jié)點(diǎn)X,則刪除結(jié)點(diǎn)X需要執(zhí)行的語句序列為 p>llink->rlink=p->rlink ; p->rlink->llink=p->rlink(設(shè)結(jié)點(diǎn)中的兩個指針域分別為llink和rlink)。

    ? 設(shè)有一個順序循環(huán)隊列中有M個存儲單元,則該循環(huán)隊列中最多能夠存儲 m-1 個隊列元素;當(dāng)前實際存儲 (R-F+M)%M 個隊列元素(設(shè)頭指針F指向當(dāng)前隊頭元素的前一個位置,尾指針指向當(dāng)前隊尾元素的位置)。

    ? 設(shè)某無向圖G中有n個頂點(diǎn),用鄰接矩陣A作為該圖的存儲結(jié)構(gòu),則頂點(diǎn)i和頂點(diǎn)j互為鄰接點(diǎn)的條件是 A[i][j]=1。


    ? 數(shù)據(jù)項是不可分割的構(gòu)成數(shù)據(jù)元素的最小單位;數(shù)據(jù)元素是數(shù)據(jù)的基本單位。

    ? 設(shè)一個有序的單鏈表中有n個結(jié)點(diǎn),現(xiàn)要求插入一個新結(jié)點(diǎn)后使得單鏈表仍然保持有序,則該操作的時間復(fù)雜度為 O(n)。
    兩方面:一是插入時間復(fù)雜度O(1);二是保持有序時間復(fù)雜度O(n)

    ? 設(shè)一棵m叉樹中度數(shù)為0的結(jié)點(diǎn)數(shù)為N0,度數(shù)為1的結(jié)點(diǎn)數(shù)為Nl,……,度數(shù)為m的結(jié)點(diǎn)數(shù)為Nm,則N0= l+N2+2N3+3N4+……+(m-1)Nm。
    【注解】由2叉樹的性質(zhì)引申出,對于任何一顆樹T,如果其終端結(jié)點(diǎn)樹為n0 度為i的結(jié)點(diǎn)數(shù)為ni,則n0=1+n2+2n3+···+(i-1)ni

    ? 設(shè)有一個順序共享棧S[0:n-1],其中第一個棧項指針top1的初值為-1,第二個棧頂指針top2的初值為n,則判斷共享棧滿的條件是 top1+1=top2。

    ? 在圖的鄰接表中用順序存儲結(jié)構(gòu)存儲表頭結(jié)點(diǎn)的優(yōu)點(diǎn)是 可以隨機(jī)訪問到任一個頂點(diǎn)的簡單鏈表。

    ?設(shè)一條單鏈表的頭指針變量為head且該鏈表沒有頭結(jié)點(diǎn),則其判空條件是 head==0。
    ?不帶頭結(jié)點(diǎn)是 head==NULL,帶頭結(jié)點(diǎn)是 head->next==NULL
    ?設(shè)帶有頭結(jié)點(diǎn)的單向循環(huán)鏈表的頭指針變量為head,則其判空條件是 head->next==head。

    ? 設(shè)二叉樹的先序遍歷序列和后序遍歷序列正好相反,則該二叉樹滿足的條件是 只有一個孩子節(jié)點(diǎn)(或 高度等于其結(jié)點(diǎn)數(shù))。

    ① 設(shè)指針變量front表示鏈?zhǔn)疥犃械年狀^指針,指針變量rear表示鏈?zhǔn)疥犃械年犖仓羔?#xff0c;指針變量s指向?qū)⒁腙犃械慕Y(jié)點(diǎn)X,則入隊列的操作序列為 rear->next=s ;rear=s。(注意:入隊要從隊尾入)

    ② 設(shè)指針變量p指向單鏈表中結(jié)點(diǎn)A,指針變量s指向被插入的新結(jié)點(diǎn)X,則進(jìn)行插入操作的語句序列為 s->next=p->next ; p->next=s(設(shè)結(jié)點(diǎn)的指針域為next)。

    ③ 設(shè)F和R分別表示順序循環(huán)隊列的頭指針和尾指針,則判斷該循環(huán)隊列為空的條件為 F==R

    ④ 設(shè)二叉樹中結(jié)點(diǎn)的兩個指針域分別為lchild和rchild,則判斷指針變量p所指向的結(jié)點(diǎn)為葉子結(jié)點(diǎn)的條件是
    p->lchild==NULL && p->rchild==NULL。

    ⑤ 散列表中解決沖突的兩種方法是 開放定址法鏈地址法


    ⑥ 設(shè)指針變量top指向當(dāng)前鏈?zhǔn)綏5臈m?#xff0c;則刪除棧頂元素的操作序列為 top=top->next;
    ?若指針變量top指向當(dāng)前順序棧的棧頂,則刪除棧頂元素的操作序列為 top=top-1

    ⑦ 設(shè)指針變量p指向雙向鏈表中的結(jié)點(diǎn)A,指針變量s指向被插入的結(jié)點(diǎn)X,則在結(jié)點(diǎn)A的后面插入結(jié)點(diǎn)X的操作序列為
    s->left=p;s->right=p->right;p->right=s; p->right->left=s;
    (設(shè)結(jié)點(diǎn)中的兩個指針域分別為left和right)。

    ⑧ 解決散列表沖突的兩種方法是 開放定址法鏈地址法

    ⑨ 設(shè)指針變量p指向單鏈表中結(jié)點(diǎn)A,指針變量s指向被插入的結(jié)點(diǎn)X,則在結(jié)點(diǎn)A的后面插入結(jié)點(diǎn)X需要執(zhí)行的語句序列:s->next=p->next ; p->next=s 。

    ⑩ 設(shè)指針變量head指向雙向鏈表中的頭結(jié)點(diǎn),指針變量p指向雙向鏈表中的第一個結(jié)點(diǎn),則指針變量p和指針變量head之間的關(guān)系是p=head->rlink 和head=p->llink(設(shè)結(jié)點(diǎn)中的兩個指針域分別為llink和rlink)。

    ? 設(shè)指針變量p指向雙向鏈表中結(jié)點(diǎn)A,指針變量s指向被插入的結(jié)點(diǎn)X,則在結(jié)點(diǎn)A的后面插入結(jié)點(diǎn)X的操作序列為
    s->left=p;s->right=p->right;p->right->left=s; p->right=s;。

    ? 設(shè)散列表中有m個存儲單元,散列函數(shù)H(key)= key % p,則p最好選擇 小于等于m的最大素數(shù)。

    ?設(shè)順序線性表的長度為30,分成5塊,每塊6個元素,如果采用分塊查找,則其平均查找長度為 6.5。
    ?設(shè)分塊查找中將長為 n 的表分成均等的 b 個塊,每塊 s 個元素,則 b = (n / s)上取整。
    ?如果索引表中采用順序查找,則ASL=(b+1)/2+(s+1)/2;
    ?如果索引表中采用折半查找,則ASL=(s+1)/2+log2(b+1)-1;

    ? 設(shè)指針p指向單鏈表中結(jié)點(diǎn)A,指針s指向被插入的結(jié)點(diǎn)X,則在結(jié)點(diǎn)A的前面插入結(jié)點(diǎn)X時的操作序列為:

  • s->next= p->next;2) p->next=s;3) t=p->data;
  • p->data= s->data;5) s->data=t;


    ?設(shè)某鏈表中最常用的操作是在鏈表的尾部插入或刪除元素,則選用下列 雙向循環(huán)鏈表 存儲方式最節(jié)省運(yùn)算時間。
    ?如果只是插入元素,單向循環(huán)列表就可以了;
    ?如果還需要刪除元素,就要雙向循環(huán)列表,可以最快的找到尾節(jié)點(diǎn)的前一個節(jié)點(diǎn)。
  • ? 有N個關(guān)鍵字排序,各排序最大最小情況如下:

    ? 快速排序算法的平均時間復(fù)雜度為 O(nlog2n),直接插入排序算法的平均時間復(fù)雜度為 O(n^2)。

    ? 設(shè)一棵m叉樹脂的結(jié)點(diǎn)數(shù)為n,用多重鏈表表示其存儲結(jié)構(gòu),則該樹中有 n(m-1)+1 個空指針域。
    【注解】m叉樹n個結(jié)點(diǎn),得出總的指針域為m*n,不為空的指針域就等于分枝數(shù),根結(jié)點(diǎn)沒有分支指向它,推出非空指針域為n-1,總指針域減非空指針域就等于空的指針域即m*n-(n-1)

    ? 設(shè)指針變量p指向單鏈表中結(jié)點(diǎn)A,則刪除結(jié)點(diǎn)A的語句序列為:
    q=p->next;p->data=q->data;p->next= q->next;feee(q);

    ① 數(shù)據(jù)結(jié)構(gòu)從邏輯上劃分為三種基本類型:線性結(jié)構(gòu),樹型結(jié)構(gòu) 和 圖型結(jié)構(gòu)。

    ② 設(shè)無向圖G中有n個頂點(diǎn)e條邊:則用鄰接矩陣作為圖的存儲結(jié)構(gòu)進(jìn)行深度優(yōu)先或廣度優(yōu)先遍歷時的時間復(fù)雜度為 O(n^2);
    ?用鄰接表作為圖的存儲結(jié)構(gòu)進(jìn)行深度優(yōu)先或廣度優(yōu)先遍歷的時間復(fù)雜度為 O(n+e)。



    ③ 鄰接表是圖的一種 鏈?zhǔn)酱鎯Y(jié)構(gòu)

    ④ 樹最適合用來表示 元素之間具有分支層次關(guān)系的數(shù)據(jù)。

    ⑤ 在一個單鏈表中,若要刪除由指針q所指向結(jié)點(diǎn)的后繼結(jié)點(diǎn)(若存在),則執(zhí)行 p=q->next;q->next=p->next 操作。

    ⑥ 常對數(shù)組進(jìn)行的兩種基本操作是 索引修改

    ⑦ 在一個單鏈表中,已知q所指結(jié)點(diǎn)是p所指結(jié)點(diǎn)的直接前驅(qū),若在q和p之 間插入s所指結(jié)點(diǎn),則執(zhí)行 q->next=s;?s->next=p 操作。

    ⑧ 設(shè)有兩個串p和q,求q在p中首次出現(xiàn)的位置的運(yùn)算稱作 模式匹配。

    ⑨ 一個高度為h的滿二叉樹共有n個結(jié)點(diǎn),其中有m個葉子結(jié)點(diǎn),則有
    n=2m-1 成立。

    ⑩ 實現(xiàn)圖的廣度優(yōu)先搜索遍歷算法需要使用 隊列,深度優(yōu)先搜索遍歷算法需要使用 棧。

    ? 順序表中邏輯上相鄰的元素的物理位置必定相鄰。單鏈表中邏輯上相鄰的元素的物理位置不一定相鄰。

    ? 樹的先序?qū)?yīng)二叉樹的先序,樹的后序?qū)?yīng)二叉樹的中序。

    ? 在?n(n>0)?個元素的順序棧中刪除1個元素的時間復(fù)雜度為:?O(1)。
    ?
    ?設(shè)?SQ?為循環(huán)隊列,存儲在數(shù)組?d[m]?中,則?SQ?出隊操作對其隊頭指針?front?的 修改是?front?=?(front+1)%m??。
    ?對于一個以順序?qū)崿F(xiàn)的循環(huán)隊列Q[0…m-1],隊頭、隊尾指針分別為f、r,其判空的條件是?r=f,判滿的條件是 (r+1)%m=f。

    ① 設(shè)計一個判別表達(dá)式中括號是否匹配出現(xiàn)的算法,采用 棧 的數(shù)據(jù)結(jié)構(gòu)最佳。

    ② 設(shè)廣義表L=((a,b,c)),則L的長度為1,深度為2。

    ③ 衡量查找算法效率的主要標(biāo)準(zhǔn)是 平均查找長度

    ④ 棧和隊列都是 限制存取點(diǎn)的線性結(jié)構(gòu)。

    ⑤ 在稀疏矩陣的三元組順序表中,每個三元組表示 矩陣中非零元素的行號、列號和數(shù)據(jù)值。

    ⑥ 順序結(jié)構(gòu)邏輯上相鄰的結(jié)點(diǎn)物理上也是相鄰的。因此,其存儲密度大,存儲空間利用串高。

    ⑦ 含有n個結(jié)點(diǎn)的二叉樹采用二叉鏈表存儲時,空指針域的個數(shù)為 n+1,非空指針個數(shù)為 n-1。

    ⑧ 在數(shù)據(jù)結(jié)構(gòu)中,從存儲結(jié)構(gòu)上可以將之分為 順序存儲和非順序存儲;從邏輯結(jié)構(gòu)上可以將之分為 線性結(jié)構(gòu)和非線性結(jié)構(gòu)。

    ⑨ 深度優(yōu)先遍歷類似二叉樹的 先序遍歷;廣度優(yōu)先遍歷類似二叉樹的 層次遍歷。

    ⑩ n個頂點(diǎn)的有向圖最多有 n(n-1)條邊;無向圖最多有 n(n-1)/2 條邊。

    ? 如果要求用線性表既能較快地查找,又能適應(yīng)動態(tài)變化的要求,則可采用 分塊查找。

    ? 任意一棵二叉樹的葉子結(jié)點(diǎn)在其先序、中序和后序序列中的相對位置 不發(fā)生變化。

    ? 在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是 s->next=p->next;p->next=s。

    ? 某算法的時間復(fù)雜度是O(n^2),表明該算法的 執(zhí)行時間與n^2成正比。

    ? 對于一個具有n個頂點(diǎn)和e條邊的無向圖,若采用鄰接表表示,則表頭向量的大小為 n,占用的存儲空間為 2e。

    ? 對于順序表,訪問某結(jié)點(diǎn)的時間復(fù)雜度為 O(1),刪除某結(jié)點(diǎn)的時間復(fù)雜度為 O(n)。

    ? 以數(shù)據(jù)集{4,5,6,7,10,12,18}為結(jié)點(diǎn)權(quán)值,畫出構(gòu)造的哈弗曼樹,并計算其帶權(quán)路徑長度。

    ?廣義表(a,(b,c),d,e)的表頭為 a。
    ?已知廣義表L=(a,(b,(c,(d)), e), f ),則:
    ?L1=Tail(L)=((b,(c,(d)), e), f )
    ?L2=Head(L1)= (b,(c,(d)), e)
    ?L3=Tail(L2)=((c,(d)), e)
    ?L4=Head(L3)=(c,(d))
    ?L5=Head(L4)= c

    ? 樹最適合用來表示的結(jié)構(gòu)是 元素間具有分支層次關(guān)系的結(jié)構(gòu)。

    ? 圖G是一個非連通無向圖,共有28條邊,則該圖至少有 9 個頂點(diǎn)。

    ① 棧的特點(diǎn)是 一個線性結(jié)構(gòu),數(shù)據(jù)先進(jìn)后出,且只能在棧頂進(jìn)行增刪操作。

    ② 與數(shù)據(jù)元素本身的形式、內(nèi)容、相對位置、個數(shù)無關(guān)的是數(shù)據(jù)的 邏輯結(jié)構(gòu)。

    ③ 數(shù)據(jù)結(jié)構(gòu)被形式定義為(D, R),其中D是 數(shù)據(jù)元素 的有限集合,R是D上的 關(guān)系 有限集合。

    ④ 當(dāng)利用大小為N的數(shù)組順序存儲一個棧時,假定用top= =N表示棧空,則向這個棧插入一個元素時,首先應(yīng)執(zhí)行 top-- 語句修改top指針。

    ⑤ 設(shè)有一個字符串S=“abcdefgh”,問該串的最大子串個數(shù)為 37。

    ⑥ 若StrIndex(S,T)表示求T在S中的位置的操作,則對于S=“Beijing and Nanjing”,T=“jing”,StrIndex(S,T)的結(jié)果為4。

    ⑦ 字符串按存儲方式可以分為:順序存儲、鏈接存儲和 堆分配存儲。

    ⑧ 在C語言中,以字符 \0表示串值的終結(jié)。

    ⑨ A[N, N]是對稱矩陣,將下三角(含對角線)以行序存儲到一維數(shù)組arr[N(N+1)/2]中,則對任一上三角元素arr[i, j]對應(yīng)arr[k]的下標(biāo)k是:解析如下

    ⑩ 有一個100*90的稀疏矩陣,非零元素有10個,設(shè)每個整型數(shù)占2個字節(jié),則用三元組表示該矩陣時,所需的字節(jié)數(shù)是 66。

    ? 已知廣義表LS=((a, b, c),(d, e, f)),對其運(yùn)用Head和Tail運(yùn)算,取出其中原子e的運(yùn)算是 Head(Tail(Head(Tail(LS))))

    ? 畫出廣義表((((a),b)),(((), d),(e,f)))的鏈?zhǔn)酱鎯Y(jié)構(gòu)圖示。

    ? 引入二叉線索樹的目的是 加快查找結(jié)點(diǎn)的前驅(qū)或后繼的速度。

    ? 利用二叉鏈表存儲一般樹,則根結(jié)點(diǎn)的右指針是 空;因為左孩子右兄弟,根節(jié)點(diǎn)無兄弟。

    ? 深度優(yōu)先遍歷類似于二叉樹的 先序遍歷;廣度優(yōu)先遍歷類似于二叉樹的 層次遍歷。

    ? 用鄰接表表示圖進(jìn)行廣度優(yōu)先遍歷時,通常借助 隊列 來實現(xiàn)算法。
    用鄰接表表示圖進(jìn)行深度優(yōu)先遍歷時,通常借助 棧 來實現(xiàn)算法。

    ? 拓?fù)渑判?方法可以判斷出一個有向圖是否有環(huán)。

    ? 圖中的一條路徑長度為k,該路徑所含的頂點(diǎn)數(shù)為 K+1。

    ? 數(shù)據(jù)的最小單位是 數(shù)據(jù)項。

    ? 設(shè)一個有序的單鏈表中有 n 個結(jié)點(diǎn), 現(xiàn)要求插入一個新結(jié)點(diǎn)后使得單鏈表仍然保持有序, 則該操作的時間復(fù)雜度為 O(n)。

    ① 在圖的鄰接表中用順序存儲結(jié)構(gòu)存儲表頭結(jié)點(diǎn)的優(yōu)點(diǎn)是 可以隨機(jī)訪問到任意點(diǎn)的簡單鏈表。

    ② 設(shè)一棵 m叉樹中度數(shù)為 0 的結(jié)點(diǎn)數(shù)為 N0,度數(shù)為 1 的結(jié)點(diǎn)數(shù)為 Nl,……,度數(shù)為 m的結(jié) 點(diǎn)數(shù)為 Nm,則 N0= l+N 2+2N3+3N4+…… +(m-1)Nm 。

    ③ 設(shè)有一個 n 階的下三角矩陣 A,如果按照行的順序?qū)⑾氯蔷仃囍械脑?#xff08;包括對角線 上元素)存放在 n(n+1) 個連續(xù)的存儲單元中,則 A[i][j] 與 A[0][0] 之間有 i*(i+1)/2+j -1或i*(i+1)/2+i個數(shù)據(jù)元素。

    ④設(shè)一條單鏈表的頭指針變量為 head且該鏈表沒有頭結(jié)點(diǎn),則其判空條件是 head==0。

    head為指向表頭結(jié)點(diǎn)的指針,分別寫出帶有頭結(jié)點(diǎn)的單鏈表、單項循環(huán)鏈表和雙向循環(huán)鏈表判空的條件:
    單鏈表 NULL==head->next
    單向循環(huán) head==head->next
    雙向循環(huán) head==head->next&&head==head->prior

    ⑤ head為指向表頭結(jié)點(diǎn)的指針,分別寫出不帶有頭結(jié)點(diǎn)的單鏈表、單項循環(huán)鏈表和雙向循環(huán)鏈表判空的條件:
    單鏈表 NULL==head
    單向循環(huán) head==head->next
    雙向循環(huán) head==head->next&&head==head->prior

    ⑥ 設(shè)F和R分別表示順序循環(huán)隊列的頭指針和尾指針,則判斷該循環(huán)隊列為空的條件為F==R。

    ⑦ 散列表中解決沖突的兩種方法是 開放地址法鏈接法

    ⑧ 設(shè)指針變量 top 指向當(dāng)前鏈?zhǔn)綏5臈m?#xff0c;則刪除棧頂元素的操作序列為 top=top->next。

    ⑨ 設(shè)關(guān)鍵字序列為 (Kl ,K2,?, K n) ,則用篩選法建初始堆必須從第 n/2 個元素開始進(jìn)行篩選。

    ⑩ 建立一個長度為 n 的有序單鏈表的時間復(fù)雜度為 O(n^2)。

    ? 設(shè)順序表的長度為 n,則順序查找的平均比較次數(shù)為 (n+1)/2。

    ? 設(shè)順序線性表的長度為 30,分成 5 塊,每塊 6 個元素,如果采用分塊查找,則其平均查 找長度為 6.5。

    ? 在堆排序中,對n個記錄建立初始堆需要調(diào)用 n/2 次調(diào)整算法。

    ? 已知一棵完全二叉樹中共有768結(jié)點(diǎn),則該樹中共有 384 個葉子結(jié)點(diǎn)。

    ? 一個一維數(shù)組a[10]中存儲著有序表(15,26,34,39,45,56,58,63,74,76),根據(jù)折半搜索所對應(yīng)的判定樹,寫出該判定樹中度為1的結(jié)點(diǎn)個數(shù),并求出在等概率情況下進(jìn)行成功搜索時的平均搜索長度。度為1的結(jié)點(diǎn)個數(shù):3;平均搜索長度:29/10。

    ? 一維數(shù)組中有n個數(shù)組元素,則讀取第i個數(shù)組元素的平均時間復(fù)雜度為 O(1)。
    解析:數(shù)組是隨機(jī)訪問的數(shù)據(jù)結(jié)構(gòu),平均時間復(fù)雜度為O(1)

    ? 含n個頂點(diǎn)的無向連通圖中至少含有 n-1 條邊。

    ? 順序表中,邏輯上相鄰的元素,其物理位置也相鄰,在鏈表中,邏輯上相鄰的元素,其物理位置不一定相鄰。

    ? 利用三元組表存放稀疏矩陣中的非零元素,則在三元組表中每個三元組元素對應(yīng)一個非零元素的行號、列號和 值。

    ? 數(shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯關(guān)系上描述數(shù)據(jù),它與數(shù)據(jù)的 存儲(或存儲結(jié)構(gòu)) 無關(guān),是獨(dú)立于計算機(jī)的。

    ① 區(qū)分循環(huán)隊列的滿與空,有三種方法,它們是 少用一個存儲單元、設(shè)置一個標(biāo)志位 和 設(shè)置一個計數(shù)器。

    ② 根據(jù)線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中每一個結(jié)點(diǎn)包含的指針個數(shù),將線性鏈表分成 單鏈表和雙鏈表。

    ③ 數(shù)據(jù)結(jié)構(gòu)中評價算法的兩個重要指標(biāo)是 時間復(fù)雜度 和 空間復(fù)雜度。

    ④ 最大容量為n的循環(huán)隊列,隊尾指針是rear,隊頭是front,則隊空的條件是 rear==front;隊滿條件是 (rear+1)%n==front;當(dāng)前隊列中的元素個數(shù)為 (rear-front+n)%n。

    ⑤ 一個遞歸算法必須包括 終止條件和遞歸部分。

    ⑥ 循環(huán)隊列存儲在數(shù)組A[0…m]中,則入隊時的操作為 rear=(rear+1) mod (m+1)。

    ⑦ 設(shè)計一個判別表達(dá)式中左,右括號是否配對出現(xiàn)的算法,采用 棧 數(shù)據(jù)結(jié)構(gòu)最佳。

    ⑧元素的移動次數(shù)與關(guān)鍵字的初始排列次序無關(guān)的是:基數(shù)排序
    ?元素的比較次數(shù)與初始序列無關(guān)是:選擇排序
    ?算法的時間復(fù)雜度與初始序列無關(guān)的是:直接選擇排序

    ⑨ 若一個棧以向量V[1…n]存儲,初始棧頂指針top為n+1,則下面x進(jìn)棧的正確操作是:top=top-1; V[top]=x。

    ⑩ 利用帶頭結(jié)點(diǎn)的二叉鏈表存儲樹,則根結(jié)點(diǎn)的右指針是 空。二叉鏈表:左孩子右兄弟,根節(jié)點(diǎn)沒有兄弟,所以為空 。

    ? 設(shè)二叉排序樹的高度為h,則在該樹中查找關(guān)鍵字key最多需要比較 h次。

    ? 入棧操作和入隊列操作在鏈?zhǔn)酱鎯Y(jié)構(gòu)上實現(xiàn)時不需要考慮棧溢出的情況。正確,鏈?zhǔn)酱鎯Y(jié)構(gòu)是動態(tài)分配空間的。

    ? 用鄰接矩陣作為圖的存儲結(jié)構(gòu)時,則其所占用的存儲空間與圖中頂點(diǎn)數(shù)有關(guān)。圖的鄰接矩陣存儲所占用空間大小只與頂點(diǎn)個數(shù)有關(guān),更準(zhǔn)確地說,設(shè)頂點(diǎn)n個,則與n^2成正比

    ? 設(shè)一維數(shù)組中有n個數(shù)組元素,則讀取第i個數(shù)組元素的平均時間復(fù)雜度為 O(1)。

    ? 堆是完全二叉樹,完全二叉樹不一定是堆。

    ? 不論線性表采用順序存儲結(jié)構(gòu)還是鏈?zhǔn)酱鎯Y(jié)構(gòu),刪除值為X的結(jié)點(diǎn)的時間復(fù)雜度均為O(n)。

    ? 設(shè)一組初始記錄關(guān)鍵字序列(k1,k2,……,kn)是堆,則對i=1,2,…,n/2而言滿足的條件為 ki<=k2i && ki<=k2i+1。

    ? 設(shè)一組初始記錄關(guān)鍵字序列為(345,253,674,924,627),則用基數(shù)排序需要進(jìn)行3趟的分配和回收才能使得初始關(guān)鍵字序列變成有序序列。

    ? 設(shè)有序順序表中有n個數(shù)據(jù)元素,則利用二分查找法查找數(shù)據(jù)元素X的最多比較次數(shù)不超過 log2n+1。
    ? 畫出廣義表LS=(( ) , (e) , (a , (b , c , d )))的頭尾鏈表存儲結(jié)構(gòu)。
    21 設(shè)散列表的地址范圍是[ 0…9 ],散列函數(shù)為H(key)= (key 2 +2)MOD 9,并采用鏈表處理沖突,請畫出元素7、4、5、3、6、2、8、9依次插入散列表的存儲結(jié)構(gòu)。
    H(4)=H(5)=0,H(3)=H(6)=H(9)=2,H(8)=3,H(2)=H(7)=6

    ① 二分查找的過程可以用一棵二叉樹來描述,該二叉樹稱為二叉判定樹。在有序表上進(jìn)行二分查找時的查找長度不超過二叉判定樹的高度1+log2n。

    ② 設(shè)某鏈表中最常用的操作是在鏈表的尾部插入或刪除元素,則選用下列 雙向循環(huán)鏈表 存儲方式最節(jié)省運(yùn)算時間。

    ③ 將兩個各有n個元素的有序表歸并成一個有序表,其最少的比較次數(shù)是n次,最多2n-1次。

    ④循環(huán)隊列存儲在數(shù)組A[0…m]中,則入隊時的操作為 rear=(rear+1)%(m+1)
    ?入隊是:rear=(rear+1)%(m+1) //m+1 代表有m+1個空間 。。它是0到m的數(shù)組
    ?出隊是: front =(front+1)%(m+1)

    ⑤ 循環(huán)隊列放在一維數(shù)組A[0…M-1]中,end1指向隊頭元素,end2指向隊尾元素的后一個位置。假設(shè)隊列兩端均可進(jìn)行入隊和出隊操作,隊列中最多能容納M-1個元素。初始時為空。則 隊空:end1==end2;隊滿:end1==(end2+1)mod M

    ⑥ 一個棧的入棧序列為1,2,3,…,n,其出棧序列是p1,p2,p3…,pn。若p2=3,則p3可能取值的個數(shù)是 n-1;

    ⑦ 圖的BFS生成樹的樹高小或相等DFS生成樹的樹高。

    例題】線性 表( a1, a2,…, an)采用順序存儲結(jié)構(gòu)。試問:
    (1) 在等 概率 的 前提下, 平均 每 插入 一個 元素 需要 移動 的 元素 個數(shù) 為 多少?
    (2) 若 元素 插在 ai 與 ai+ 1 之間( 0 ≤ i ≤ n- 1) 的 概率 為, 則 平均 每 插入 一個 元素 所要 移動 的 元素 個數(shù) 又是 多少?






    ① 線性表的順序存儲結(jié)構(gòu)是一種 隨機(jī)存取 的存儲結(jié)構(gòu),線性結(jié)構(gòu)的鏈?zhǔn)酱鎯κ且环N 順序存取 的存儲結(jié)構(gòu)。

    ② 數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計算的 操作對象 以及它們之間的 關(guān)系 和運(yùn)算等的學(xué)科。

    ③ 一個數(shù)據(jù)結(jié)構(gòu)在計算機(jī) 存儲器內(nèi)的表示 稱為存儲結(jié)構(gòu)。

    ④ 鏈棧和順序棧相比較,有一個較為明顯的優(yōu)點(diǎn)是 通常不會出現(xiàn)棧滿的情況。

    ⑤ 引入循環(huán)隊列的目的是為了克服 “假溢出”現(xiàn)象。

    ⑥ 區(qū)分循環(huán)隊列的滿與空,只有兩種方法,它們是 犧牲一個存儲單元 和 設(shè)標(biāo)記。

    ⑦ 設(shè)循環(huán)隊列存放在向量data[0…M]中,則隊頭指針front 在循環(huán)意義下的出隊操作可表示為 front=(front+1)%(M+1),若用犧牲一個單元的辦法來區(qū)分隊滿和隊空(設(shè)隊尾指針rear),則隊滿的條件為 front==(rear+1)%(M+1)。

    ⑧ 對于長度為n且順序存儲的線性表,在任何位置上操作都是等概率的情況下,插入一個元素需要平均移動表中的元素個數(shù) ;刪除一個元素平均需要移動表中元素 。

    ⑨ 在一個不帶頭結(jié)點(diǎn)的單鏈表中,在表頭插入或刪除與在其他位置上插入或刪除其操作過程 不相同。

    ⑩ 在線性表的順序存儲中,元素之間的邏輯關(guān)系是通過 存儲位置 決定的;在線性表的鏈?zhǔn)酱鎯χ?#xff0c;元素之間的邏輯關(guān)系是通過 指針 決定的。

    ? 單鏈表表示法的基本思想是用 指針 表示結(jié)點(diǎn)的邏輯關(guān)系。

    ? 數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素間的邏輯關(guān)系,數(shù)據(jù)的存儲結(jié)構(gòu)是數(shù)據(jù)在計算機(jī)中的表示(又稱映像)方法,是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存儲實現(xiàn)。

    ? 數(shù)據(jù)的物理結(jié)構(gòu)包括 數(shù)據(jù)元素 的表示和數(shù)據(jù)元素間關(guān)系的表示。

    ? 程序=數(shù)據(jù)結(jié)構(gòu)+算法。

    ?線性表L=(a1, a2, …, an)用數(shù)組表示,假定刪除表中任一元素的概率相同,則刪除一個元素平均需要移動元素的 (n-1)/2;
    ?線性表L=(a1, a2, …, an)用數(shù)組表示,假定刪除表中任一元素的概率相同,則插入一個元素平均需要移動元素的 n/2。

    ? 一個字符串中 任意個連續(xù)的字符組成的子序列 稱為該串的子串。

    ? 設(shè)T和P是兩個給定的串,在T中尋找等于P的子串的過程稱為 模式匹配,又稱P為 模式串。

    ? 串是一種特殊的線性表,其特殊性表現(xiàn)在 其數(shù)據(jù)元素都是字符;

    ? 串的兩種最基本的存儲方式是 順序存儲、鏈?zhǔn)酱鎯?#xff1b;

    ? 兩個串相等的充分必要條件是 兩串的長度相等且兩串中對應(yīng)位置的字符也相等。

    ① 若度為m的哈夫曼樹中,其葉結(jié)點(diǎn)個數(shù)為n,則非葉結(jié)點(diǎn)的個數(shù)為 [(n-1)/(m-1)](向上取整)

    ② 樹的后根遍歷序列等同于該樹對應(yīng)的二叉樹的 中序序列。

    ③ 若二叉樹采用二叉鏈表存儲結(jié)構(gòu),要交換其所有分支結(jié)點(diǎn)左、右子樹的位置,利用 后序 遍歷方法最合適。

    ④ 一棵非空的二叉樹的先序遍歷序列與后序遍歷序列正好相反,則該二叉樹一定滿足 只有一個葉子結(jié)點(diǎn)。

    ⑤ 某二叉樹的前序序列和后序序列正好相反,則該二叉樹一定是 高度等于其結(jié)點(diǎn)數(shù) 的二叉樹。

    ⑥ 線索二叉樹是一種 物理或存儲 結(jié)構(gòu)。

    ⑦ n個結(jié)點(diǎn)的線索二叉樹上含有的線索數(shù)為 n+l(即空指針域個數(shù))。

    ⑧ 中序線索樹 的遍歷仍需要棧的支持。

    ⑨ 設(shè)F是一個森林,B是由F變換得的二叉樹。若F中有n個非終端結(jié)點(diǎn),則B中右指針域為空的結(jié)點(diǎn)有 n+1 個。

    ⑩ 個有n個結(jié)點(diǎn)的圖,最少有 1個連通分量,最多有 n個連通分量。

    ? 用有向無環(huán)圖描述表達(dá)式(A+B)*((A+B)/A),至少需要頂點(diǎn)的數(shù)目為 5。

    ? 如果含n個頂點(diǎn)的圖形形成一個環(huán),則它有 n 棵生成樹。

    ? 對稀疏圖最好用 克魯斯卡爾(Kruskal) 算法求最小生成樹,對稠密圖最好用 普里姆(Prim) 算法求最小生成樹。

    ? 判斷一個無向圖是一棵樹的條件是 n個頂點(diǎn),n-1條邊的無向連通圖。

    ? 有向圖G的強(qiáng)連通分量是指 有向圖的極大強(qiáng)連通子圖。

    ? N個頂點(diǎn)的無向連通圖至少有N-1條邊,則鄰接矩陣中至少有2(N-1)個非零元素。

    ? 在AOE網(wǎng)中,從源點(diǎn)到匯點(diǎn)路徑上各活動時間總和最長的路徑稱為 關(guān)鍵路徑。

    ? AOV網(wǎng)中,結(jié)點(diǎn)表示 活動,邊表示 活動間的優(yōu)先關(guān)系;AOE網(wǎng)中,結(jié)點(diǎn)表示 事件,邊表示 活動邊上的權(quán)代表活動持續(xù)時間。

    ? 二叉查找樹的查找效率與二叉樹的 樹型 有關(guān), 在 呈單枝樹 時其查找效率最低,

    ? 堆排序是 選擇 類排序,堆排序平均執(zhí)行的時間復(fù)雜度 O(nlog2n) ;需要附加的存儲空間復(fù)雜度分是O(1)

    ① 設(shè)一維數(shù)組中有 n 個數(shù)組元素,則讀取第 i 個數(shù)組元素的平均時間復(fù)雜度為 O(1)

    ② 在二叉排序樹中插入一個結(jié)點(diǎn)的時間復(fù)雜度為 O(n)

    ③ 設(shè)二叉樹的先序遍歷序列和后序遍歷序列正好相反,則該二叉樹滿足的條件是 高度等于其結(jié)點(diǎn)數(shù)。

    總結(jié)

    以上是生活随笔為你收集整理的专升本数据结构复习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。