freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)(c語言版)(第2版)課后習(xí)題答案(已修改)

2025-07-01 23:37 本頁面
 

【正文】 數(shù)據(jù)結(jié)構(gòu)(C語言版)(第2版) 課后習(xí)題答案 李冬梅 目 錄第1章 緒論 1第2章 線性表 5第3章 棧和隊(duì)列 13第4章 串、數(shù)組和廣義表 26第5章 樹和二叉樹 33第6章 圖 43第7章 查找 54第8章 排序 6574第1章 緒論1.簡述下列概念:數(shù)據(jù)、數(shù)據(jù)元素、數(shù)據(jù)項(xiàng)、數(shù)據(jù)對象、數(shù)據(jù)結(jié)構(gòu)、邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)、抽象數(shù)據(jù)類型。答案:數(shù)據(jù):是客觀事物的符號表示,指所有能輸入到計算機(jī)中并被計算機(jī)程序處理的符號的總稱。如數(shù)學(xué)計算中用到的整數(shù)和實(shí)數(shù),文本編輯所用到的字符串,多媒體程序處理的圖形、圖像、聲音、動畫等通過特殊編碼定義后的數(shù)據(jù)。數(shù)據(jù)元素:是數(shù)據(jù)的基本單位,在計算機(jī)中通常作為一個整體進(jìn)行考慮和處理。在有些情況下,數(shù)據(jù)元素也稱為元素、結(jié)點(diǎn)、記錄等。數(shù)據(jù)元素用于完整地描述一個對象,如一個學(xué)生記錄,樹中棋盤的一個格局(狀態(tài))、圖中的一個頂點(diǎn)等。數(shù)據(jù)項(xiàng):是組成數(shù)據(jù)元素的、有獨(dú)立含義的、不可分割的最小單位。例如,學(xué)生基本信息表中的學(xué)號、姓名、性別等都是數(shù)據(jù)項(xiàng)。數(shù)據(jù)對象:是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。例如:整數(shù)數(shù)據(jù)對象是集合N={0,177。1,177。2,…},字母字符數(shù)據(jù)對象是集合C={‘A’,‘B’,…,‘Z’, ‘a(chǎn)’,‘b’,…,‘z’},學(xué)生基本信息表也可是一個數(shù)據(jù)對象。數(shù)據(jù)結(jié)構(gòu):是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。換句話說,數(shù)據(jù)結(jié)構(gòu)是帶“結(jié)構(gòu)”的數(shù)據(jù)元素的集合,“結(jié)構(gòu)”就是指數(shù)據(jù)元素之間存在的關(guān)系。邏輯結(jié)構(gòu):從邏輯關(guān)系上描述數(shù)據(jù),它與數(shù)據(jù)的存儲無關(guān),是獨(dú)立于計算機(jī)的。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)可以看作是從具體問題抽象出來的數(shù)學(xué)模型。存儲結(jié)構(gòu):數(shù)據(jù)對象在計算機(jī)中的存儲表示,也稱為物理結(jié)構(gòu)。抽象數(shù)據(jù)類型:由用戶定義的,表示應(yīng)用問題的數(shù)學(xué)模型,以及定義在這個模型上的一組操作的總稱。具體包括三部分:數(shù)據(jù)對象、數(shù)據(jù)對象上關(guān)系的集合和對數(shù)據(jù)對象的基本操作的集合。2.試舉一個數(shù)據(jù)結(jié)構(gòu)的例子,敘述其邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)兩方面的含義和相互關(guān)系。答案:例如有一張學(xué)生基本信息表,包括學(xué)生的學(xué)號、姓名、性別、籍貫、專業(yè)等。每個學(xué)生基本信息記錄對應(yīng)一個數(shù)據(jù)元素,學(xué)生記錄按順序號排列,形成了學(xué)生基本信息記錄的線性序列。對于整個表來說,只有一個開始結(jié)點(diǎn)(它的前面無記錄)和一個終端結(jié)點(diǎn)(它的后面無記錄),其他的結(jié)點(diǎn)則各有一個也只有一個直接前趨和直接后繼。學(xué)生記錄之間的這種關(guān)系就確定了學(xué)生表的邏輯結(jié)構(gòu),即線性結(jié)構(gòu)。這些學(xué)生記錄在計算機(jī)中的存儲表示就是存儲結(jié)構(gòu)。如果用連續(xù)的存儲單元(如用數(shù)組表示)來存放這些記錄,則稱為順序存儲結(jié)構(gòu);如果存儲單元不連續(xù),而是隨機(jī)存放各個記錄,然后用指針進(jìn)行鏈接,則稱為鏈?zhǔn)酱鎯Y(jié)構(gòu)。即相同的邏輯結(jié)構(gòu),可以對應(yīng)不同的存儲結(jié)構(gòu)。3.簡述邏輯結(jié)構(gòu)的四種基本關(guān)系并畫出它們的關(guān)系圖。答案:(1)集合結(jié)構(gòu)數(shù)據(jù)元素之間除了“屬于同一集合”的關(guān)系外,別無其他關(guān)系。例如,確定一名學(xué)生是否為班級成員,只需將班級看做一個集合結(jié)構(gòu)。(2)線性結(jié)構(gòu)數(shù)據(jù)元素之間存在一對一的關(guān)系。例如,將學(xué)生信息數(shù)據(jù)按照其入學(xué)報到的時間先后順序進(jìn)行排列,將組成一個線性結(jié)構(gòu)。(3)樹結(jié)構(gòu)數(shù)據(jù)元素之間存在一對多的關(guān)系。例如,在班級的管理體系中,班長管理多個組長,每位組長管理多名組員,從而構(gòu)成樹形結(jié)構(gòu)。(4)圖結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)數(shù)據(jù)元素之間存在多對多的關(guān)系。例如,多位同學(xué)之間的朋友關(guān)系,任何兩位同學(xué)都可以是朋友,從而構(gòu)成圖形結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。其中樹結(jié)構(gòu)和圖結(jié)構(gòu)都屬于非線性結(jié)構(gòu)。 四類基本邏輯結(jié)構(gòu)關(guān)系圖4.存儲結(jié)構(gòu)由哪兩種基本的存儲方法實(shí)現(xiàn)?答案:(1)順序存儲結(jié)構(gòu)順序存儲結(jié)構(gòu)是借助元素在存儲器中的相對位置來表示數(shù)據(jù)元素之間的邏輯關(guān)系,通常借助程序設(shè)計語言的數(shù)組類型來描述。(2)鏈?zhǔn)酱鎯Y(jié)構(gòu)順序存儲結(jié)構(gòu)要求所有的元素依次存放在一片連續(xù)的存儲空間中,而鏈?zhǔn)酱鎯Y(jié)構(gòu),無需占用一整塊存儲空間。但為了表示結(jié)點(diǎn)之間的關(guān)系,需要給每個結(jié)點(diǎn)附加指針字段,用于存放后繼元素的存儲地址。所以鏈?zhǔn)酱鎯Y(jié)構(gòu)通常借助于程序設(shè)計語言的指針類型來描述。5.選擇題(1)在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成( )。A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu) B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu) D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)答案:C(2)與數(shù)據(jù)元素本身的形式、內(nèi)容、相對位置、個數(shù)無關(guān)的是數(shù)據(jù)的( )。A.存儲結(jié)構(gòu) B.存儲實(shí)現(xiàn)C.邏輯結(jié)構(gòu) D.運(yùn)算實(shí)現(xiàn)答案:C(3)通常要求同一邏輯結(jié)構(gòu)中的所有數(shù)據(jù)元素具有相同的特性,這意味著( )。 A.?dāng)?shù)據(jù)具有同一特點(diǎn)B.不僅數(shù)據(jù)元素所包含的數(shù)據(jù)項(xiàng)的個數(shù)要相同,而且對應(yīng)數(shù)據(jù)項(xiàng)的類型要一致C.每個數(shù)據(jù)元素都一樣D.?dāng)?shù)據(jù)元素所包含的數(shù)據(jù)項(xiàng)的個數(shù)要相等答案:B(4)以下說法正確的是( )。A.?dāng)?shù)據(jù)元素是數(shù)據(jù)的最小單位B.?dāng)?shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位C.?dāng)?shù)據(jù)結(jié)構(gòu)是帶有結(jié)構(gòu)的各數(shù)據(jù)項(xiàng)的集合D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)答案:D解釋:數(shù)據(jù)元素是數(shù)據(jù)的基本單位,數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小單位,數(shù)據(jù)結(jié)構(gòu)是帶有結(jié)構(gòu)的各數(shù)據(jù)元素的集合。(5)算法的時間復(fù)雜度取決于( )。A.問題的規(guī)模 B.待處理數(shù)據(jù)的初態(tài)C.計算機(jī)的配置 D.A和B答案:D解釋:算法的時間復(fù)雜度不僅與問題的規(guī)模有關(guān),還與問題的其他因素有關(guān)。如某些排序的算法,其執(zhí)行時間與待排序記錄的初始狀態(tài)有關(guān)。為此,有時會對算法有最好、最壞以及平均時間復(fù)雜度的評價。(6)以下數(shù)據(jù)結(jié)構(gòu)中,( )是非線性數(shù)據(jù)結(jié)構(gòu)A.樹 B.字符串 C.隊(duì)列 D.棧答案:A6.試分析下面各程序段的時間復(fù)雜度。(1)x=90。 y=100。while(y0)if(x100) {x=x10。y。}else x++。答案:O(1)解釋:程序的執(zhí)行次數(shù)為常數(shù)階。(2)for (i=0。 in。 i++)for (j=0。 jm。 j++)a[i][j]=0。答案:O(m*n)解釋:語句a[i][j]=0。的執(zhí)行次數(shù)為m*n。(3)s=0。 for i=0。 in。 i++)for(j=0。 jn。 j++) s+=B[i][j]。sum=s。答案:O(n2)解釋:語句s+=B[i][j]。的執(zhí)行次數(shù)為n2。(4)i=1。 while(i=n) i=i*3。答案:O(log3n) 解釋:語句i=i*3。的執(zhí)行次數(shù)為235。log3n(5)x=0。for(i=1。 in。 i++) for (j=1。 j=ni。 j++)x++。答案:O(n2)解釋:語句x++。的執(zhí)行次數(shù)為n1+n2+……+1= n(n1)/2。(6)x=n。 //n1y=0。while(x≥(y+1)* (y+1)) y++。答案:O()解釋:語句y++。的執(zhí)行次數(shù)為235。 第2章 線性表1.選擇題(1)順序表中第一個元素的存儲地址是100,每個元素的長度為2,則第5個元素的地址是( )。A.110 B.108 C.100 D.120答案:B解釋:順序表中的數(shù)據(jù)連續(xù)存儲,所以第5個元素的地址為:100+2*4=108。(2)在n個結(jié)點(diǎn)的順序表中,算法的時間復(fù)雜度是O(1)的操作是( )。A.訪問第i個結(jié)點(diǎn)(1≤i≤n)和求第i個結(jié)點(diǎn)的直接前驅(qū)(2≤i≤n) B.在第i個結(jié)點(diǎn)后插入一個新結(jié)點(diǎn)(1≤i≤n)C.刪除第i個結(jié)點(diǎn)(1≤i≤n)D.將n個結(jié)點(diǎn)從小到大排序答案:A解釋:在順序表中插入一個結(jié)點(diǎn)的時間復(fù)雜度都是O(n2),排序的時間復(fù)雜度為O(n2)或O(nlog2n)。順序表是一種隨機(jī)存取結(jié)構(gòu),訪問第i個結(jié)點(diǎn)和求第i個結(jié)點(diǎn)的直接前驅(qū)都可以直接通過數(shù)組的下標(biāo)直接定位,時間復(fù)雜度是O(1)。(3) 向一個有127個元素的順序表中插入一個新元素并保持原來順序不變,平均要移動 的元素個數(shù)為( )。A.8 B. C.63 D.7答案:B解釋:平均要移動的元素個數(shù)為:n/2。(4)鏈接存儲的存儲結(jié)構(gòu)所占存儲空間( )。A.分兩部分,一部分存放結(jié)點(diǎn)值,另一部分存放表示結(jié)點(diǎn)間關(guān)系的指針B.只有一部分,存放結(jié)點(diǎn)值C.只有一部分,存儲表示結(jié)點(diǎn)間關(guān)系的指針D.分兩部分,一部分存放結(jié)點(diǎn)值,另一部分存放結(jié)點(diǎn)所占單元數(shù)答案:A(5)線性表若采用鏈?zhǔn)酱鎯Y(jié)構(gòu)時,要求內(nèi)存中可用存儲單元的地址( )。A.必須是連續(xù)的 B.部分地址必須是連續(xù)的C.一定是不連續(xù)的 D.連續(xù)或不連續(xù)都可以答案:D(6)線性表L在( )情況下適用于使用鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn)。A.需經(jīng)常修改L中的結(jié)點(diǎn)值 B.需不斷對L進(jìn)行刪除插入 C.L中含有大量的結(jié)點(diǎn) D.L中結(jié)點(diǎn)結(jié)構(gòu)復(fù)雜答案:B解釋:鏈表最大的優(yōu)點(diǎn)在于插入和刪除時不需要移動數(shù)據(jù),直接修改指針即可。(7)單鏈表的存儲密度( )。A.大于1 B.等于1 C.小于1 D.不能確定答案:C解釋:存儲密度是指一個結(jié)點(diǎn)數(shù)據(jù)本身所占的存儲空間和整個結(jié)點(diǎn)所占的存儲空間之比,假設(shè)單鏈表一個結(jié)點(diǎn)本身所占的空間為D,指針域所占的空間為N,則存儲密度為:D/(D+N),一定小于1。(8)將兩個各有n個元素的有序表歸并成一個有序表,其最少的比較次數(shù)是( )。A.n B.2n1 C.2n D.n1答案:A解釋:當(dāng)?shù)谝粋€有序表中所有的元素都小于(或大于)第二個表中的元素,只需要用第二個表中的第一個元素依次與第一個表的元素比較,總計比較n次。(9)在一個長度為n的順序表中,在第i個元素(1≤i≤n+1)之前插入一個新元素時須向后移動( )個元素。A.ni B.ni+1 C.ni1 D.I答案:B(10) 線性表L=(a1,a2,……an),下列說法正確的是( )。A.每個元素都有一個直接前驅(qū)和一個直接后繼B.線性表中至少有一個元素C.表中諸元素的排列必須是由小到大或由大到小D.除第一個和最后一個元素外,其余每個元素都有一個且僅有一個直接前驅(qū)和直接后繼。答案:D(11) 創(chuàng)建一個包括n個結(jié)點(diǎn)的有序單鏈表的時間復(fù)雜度是( )。A.O(1) B.O(n) C.O(n2) D.O(nlog2n)答案:C解釋:單鏈表創(chuàng)建的時間復(fù)雜度是O(n),而要建立一個有序的單鏈表,則每生成一個新結(jié)點(diǎn)時需要和已有的結(jié)點(diǎn)進(jìn)行比較,確定合適的插入位置,所以時間復(fù)雜度是O(n2)。(12) 以下說法錯誤的是( )。 A.求表長、定位這兩種運(yùn)算在采用順序存儲結(jié)構(gòu)時實(shí)現(xiàn)的效率不比采用鏈?zhǔn)酱鎯Y(jié)構(gòu)時實(shí)現(xiàn)的效率低B.順序存儲的線性表可以隨機(jī)存取C.由于順序存儲要求連續(xù)的存儲區(qū)域,所以在存儲管理上不夠靈活D.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)優(yōu)于順序存儲結(jié)構(gòu) 答案:D解釋:鏈?zhǔn)酱鎯Y(jié)構(gòu)和順序存儲結(jié)構(gòu)各有優(yōu)缺點(diǎn),有不同的適用場合。(13) 在單鏈表中,要將s所指結(jié)點(diǎn)插入到p所指結(jié)點(diǎn)之后,其語句應(yīng)為( )。A.snext=p+1。 pnext=s。B.(*p).next=s。 (*s).next=(*p).next。C.snext=pnext。 pnext=snext。D.snext=pnext。 pnext=s。 答案:D (14) 在雙向鏈表存儲結(jié)構(gòu)中,刪除p所指的結(jié)點(diǎn)時須修改指針( )。A.pnextprior=pprior。 ppriornext=pnext。B.pnext=pnextnext。 pnextprior=p。C.ppriornext=p。 pprior=ppriorprior。D.pprior=pnextnext。 pnext=ppriorprior。答案:A(15) 在雙向循環(huán)鏈表中,在p指針?biāo)傅慕Y(jié)點(diǎn)后插入q所指向的新結(jié)點(diǎn),其修改指針的操作是( )。A.pnext=q。 qprior=p。 pnextprior=q。 qnext=q。B.pnext=q。 pnextprior=q。 qprior=p。 qnext=pnext。C.qprior=p。 qnext=pnext。 pnextprior=q。 pnext=q。D.qprior=p。 qnext=pnext。 pnext=q。 pnextprior=q。答案:C2.算法設(shè)計題(1)將兩個遞增的有序鏈表合并為一個遞增的有序鏈表。要求結(jié)果鏈表仍使用原來兩個鏈表的存儲空間, 不另外占用其它的存儲空間。表中不允許有重復(fù)的數(shù)據(jù)。[題目分析]合并后的新表使用頭指針Lc指向,pa和pb分別是鏈表La和Lb的工作指針,初始化為相應(yīng)鏈表的第一個結(jié)點(diǎn),從第一個結(jié)點(diǎn)開始進(jìn)行比較,當(dāng)兩個鏈表La和Lb均為到達(dá)表尾結(jié)點(diǎn)時,依次摘取其中較小者重新鏈接在Lc表的最后。如果兩個表中的元素相等,只摘取La表中的元素,刪除Lb表中的元素,這樣確保合并后表中無重復(fù)的元素。當(dāng)一個表到達(dá)表尾結(jié)點(diǎn),為空時,將非空表的剩余元素直接鏈接在Lc表的最后。[算法描述]void MergeList(LinkList amp
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1