電大數(shù)據(jù)結(jié)構(gòu)(本)形成性考核冊(作業(yè)14)_第1頁
電大數(shù)據(jù)結(jié)構(gòu)(本)形成性考核冊(作業(yè)14)_第2頁
電大數(shù)據(jù)結(jié)構(gòu)(本)形成性考核冊(作業(yè)14)_第3頁
電大數(shù)據(jù)結(jié)構(gòu)(本)形成性考核冊(作業(yè)14)_第4頁
電大數(shù)據(jù)結(jié)構(gòu)(本)形成性考核冊(作業(yè)14)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)(本)形成性考核作業(yè)冊使用說明本作業(yè)冊是中央廣播電視大學(xué)計算機(jī)科與技術(shù)專業(yè)(本科)數(shù)據(jù)結(jié)構(gòu)(本)課程形成性考核的依據(jù),與數(shù)據(jù)結(jié)構(gòu)(本科)教材(李偉生主編,中央電大出版社出版)配套使用。數(shù)據(jù)結(jié)構(gòu)(本)課程是中央廣播電視大學(xué)計算機(jī)科學(xué)技術(shù)專業(yè)的一門統(tǒng)設(shè)必修、學(xué)位課程,4學(xué)分,共72學(xué)時。其中實驗24學(xué)時,開設(shè)一學(xué)期。本課程的特點是綜合性、實踐性強(qiáng),內(nèi)容抽象,在專業(yè)中具有承上啟下的作用。因此,在學(xué)習(xí)本課程時,要注意理論聯(lián)系實際,結(jié)合教學(xué)內(nèi)容進(jìn)行上機(jī)實踐,認(rèn)真完成作業(yè)和實驗內(nèi)容。本課程的總成績按百分制記分,其中形成性考核所占的比例為30%,終結(jié)性考試占70(閉卷,答題時限為90分鐘)。課程總成

2、績達(dá)到60分及以上者為合格,可以獲得該課程的學(xué)分。本課程的學(xué)位課程學(xué)分為70分,即課程總成績達(dá)到70分及以上者有資格申請專業(yè)學(xué)位。本課程共設(shè)計了4次形考作業(yè),每次形考作業(yè)均包括實驗內(nèi)容,由各地電大根據(jù)學(xué)生對作業(yè)中各種題型練習(xí)和實驗的完成情況進(jìn)行考核。對于實驗內(nèi)容要求按實驗要求認(rèn)真完成,并提交實驗報告。數(shù)據(jù)結(jié)構(gòu)(本)課程作業(yè)作業(yè)1(本部分作業(yè)覆蓋教材第1-2章的內(nèi)容)一、單項選擇題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)和外部機(jī)構(gòu)2下列說法中,不正確的是( )。a數(shù)據(jù)元素是數(shù)據(jù)的基本單位 b數(shù)據(jù)項是數(shù)據(jù)中不

3、可分割的最小可標(biāo)識單位 c數(shù)據(jù)可有若干個數(shù)據(jù)元素構(gòu)成 d數(shù)據(jù)項可由若干個數(shù)據(jù)元素構(gòu)成3一個存儲結(jié)點存儲一個( )。a數(shù)據(jù)項 b數(shù)據(jù)元素 c數(shù)據(jù)結(jié)構(gòu) d數(shù)據(jù)類型4數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機(jī)無關(guān)的是數(shù)據(jù)的( )。a存儲結(jié)構(gòu) b物理結(jié)構(gòu)c邏輯結(jié)構(gòu) d物理和存儲結(jié)構(gòu)5下列的敘述中,不屬于算法特性的是( )。a有窮性 b輸入性 c可行性 d可讀性6算法分析的目的是( )。 a找出數(shù)據(jù)結(jié)構(gòu)的合理性 b研究算法中的輸入和輸出的關(guān)系 c分析算法的效率以求改進(jìn) d分析算法的易懂性和文檔性7數(shù)據(jù)結(jié)構(gòu)是一門研究計算機(jī)中( )對象及其關(guān)系的科學(xué)。a數(shù)值運算 b非數(shù)值運算c集合 d非集合 8算法的時間復(fù)雜度與( )有

4、關(guān)。 a所使用的計算機(jī) b與計算機(jī)的操作系統(tǒng) c與算法本身 d與數(shù)據(jù)結(jié)構(gòu)9設(shè)有一個長度為n的順序表,要在第i個元素之前(也就是插入元素作為新表的第i個元素),則移動元素個數(shù)為( )。 an-i+1 bn-i cn-i-1 di10設(shè)有一個長度為n的順序表,要刪除第i個元素移動元素的個數(shù)為( )。 an-i+1 bn-i cn-i-1 di11在一個單鏈表中,p、q分別指向表中兩個相鄰的結(jié)點,且q所指結(jié)點是p所指結(jié)點的直接后繼,現(xiàn)要刪除q所指結(jié)點,可用語句( )。 ap=q-next bp-next=q cp-next=qnext dq-next=null12在一個單鏈表中p所指結(jié)點之后插入一個

5、s所指的結(jié)點時,可執(zhí)行( )。 ap-next= s; snext= pnext bp-next=snext; cp=s-next ds-next=p-next; p-next=s;13非空的單向循環(huán)鏈表的尾結(jié)點滿足( )(設(shè)頭指針為head,指針p指向尾結(jié)點)。 a.p-next= =null bp= =null cp-next= =head dp= = head 14鏈表不具有的特點是( )。 a可隨機(jī)訪問任一元素 b插入刪除不需要移動元素 c不必事先估計存儲空間 d所需空間與線性表長度成正比15帶頭結(jié)點的鏈表為空的判斷條件是( )(設(shè)頭指針為head)。ahead = =nullbhea

6、d-next= =null chead-next= =headdhead!=null16在一個單鏈表中,p、q分別指向表中兩個相鄰的結(jié)點,且q所指結(jié)點是p所指結(jié)點的直接后繼,現(xiàn)要刪除q所指結(jié)點,可用語句( )。ap=q-nextbp-next=qcp-next=q-nextdq-next=null17在一個鏈隊中,假設(shè)f和r分別為隊頭和隊尾指針,則刪除一個結(jié)點的運算為( )。 ar=f-next; br=r-next; cf=f-next; df=r-next;18在一個鏈隊中,假設(shè)f和r分別為隊頭和隊尾指針,則插入s所指結(jié)點的運算為( )。 af-next=s; f=s; br-next=s

7、;r=s; cs-next=r;r=s; ds-next=f;f=s;19.一個順序表第一個元素的存儲地址是90,每個元素的長度為2,則第6個元素的地址是( )。a98 b100 c102 d10620有關(guān)線性表的正確說法是( )。a每個元素都有一個直接前驅(qū)和一個直接后繼 b線性表至少要求一個元素c表中的元素必須按由小到大或由大到下排序 d除了一個和最后一個元素外,其余元素都有一個且僅有一個直接前驅(qū)和一個直接后繼二、填空題1在一個長度為n的順序存儲結(jié)構(gòu)的線性表中,向第i(1in+1)個元素之前插入新元素時,需向后移動 個數(shù)據(jù)元素。2從長度為n的采用順序存儲結(jié)構(gòu)的線性表中刪除第i(1in+1)個

8、元素 ,需向前移動 個元素。3數(shù)據(jù)結(jié)構(gòu)按結(jié)點間的關(guān)系,可分為4種邏輯結(jié)構(gòu): 、 、 、 。4數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的表示稱為 或 。5除了第1個和最后一個結(jié)點外,其余結(jié)點有且只有一個前驅(qū)結(jié)點和后繼結(jié)點的數(shù)據(jù)結(jié)構(gòu)為 ,每個結(jié)點可有任意多個前驅(qū)和后繼結(jié)點數(shù)的結(jié)構(gòu)為 。6算法的5個重要特性是 、 、 、 、 。7數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素存在多對多的關(guān)系稱為_ _結(jié)構(gòu)。8數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素存在一對多的關(guān)系稱為_ _結(jié)構(gòu)。9數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素存在一對一的關(guān)系稱為_ _結(jié)構(gòu)。10要求在n個數(shù)據(jù)元素中找其中值最大的元素,設(shè)基本操作為元素間的比較。則比較的次數(shù)和算法的時間復(fù)雜度分別為_ _和 _ _ 。11

9、在一個單鏈表中p所指結(jié)點之后插入一個s所指結(jié)點時,應(yīng)執(zhí)行_ _和p-next=s;的操作。12設(shè)有一個頭指針為head的單向循環(huán)鏈表,p指向鏈表中的結(jié)點,若p-next= =_ _,則p所指結(jié)點為尾結(jié)點。13在一個單向鏈表中,要刪除p所指結(jié)點,已知q指向p所指結(jié)點的前驅(qū)結(jié)點。則可以用操作_ _。14設(shè)有一個頭指針為head的單向鏈表,p指向表中某一個結(jié)點,且有p-next= =null,通過操作_ _,就可使該單向鏈表構(gòu)造成單向循環(huán)鏈表。15每個結(jié)點只包含一個指針域的線性表叫 。16線性表具有 和 兩種存儲結(jié)構(gòu)。17數(shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯關(guān)系上描述數(shù)據(jù),它與數(shù)據(jù)的關(guān)系 無關(guān),是獨立于計算機(jī)的。

10、18在雙向循環(huán)鏈表的每個結(jié)點中包含 指針域,其中next指向它的 ,prior指向它的 ,而頭結(jié)點的prior指向 ,尾結(jié)點的next指向 。19單向循環(huán)鏈表是單向鏈表的一種擴(kuò)充,當(dāng)單向鏈表帶有頭結(jié)點時,把單向鏈表中尾結(jié)點的指針域由空指針改為 ;當(dāng)單向鏈表不帶頭結(jié)點時,則把單向鏈表中尾結(jié)點的指針域由空指針改為指向 。20線性鏈表的邏輯關(guān)系時通過每個結(jié)點指針域中的指針來表示的。其邏輯順序和物理存儲順序不再一致,而是一種 存儲結(jié)構(gòu),又稱為 。 三、問答題1簡述數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)的區(qū)別與聯(lián)系,它們?nèi)绾斡绊懰惴ǖ脑O(shè)計與實現(xiàn)?2解釋順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的特點,并比較順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)

11、的優(yōu)缺點。3什么情況下用順序表比鏈表好?4頭指針、頭結(jié)點、第一個結(jié)點(或稱首元結(jié)點)的區(qū)別是什么?5解釋帶頭結(jié)點的單鏈表和不帶頭結(jié)點的單鏈表的區(qū)別。四、程序填空題1下列是用尾插法建立帶頭結(jié)點的且有n個結(jié)點的單向鏈表的算法,請在空格內(nèi)填上適當(dāng)?shù)恼Z句。node *create1(n)/* 對線性表(1,2,.,n),建立帶頭結(jié)點的單向鏈表 */ node *head,*p,*q; int i; p=(node *)malloc(sizeof(node); head=p; q=p; p-next=null; for(i=1;inext=null; (2) ; for(i=1;idata=i; if(

12、i=1) (3) ; else(4) ;(5) ; return(head);3下列是在具有頭結(jié)點單向列表中刪除第i個結(jié)點,請在空格內(nèi)填上適當(dāng)?shù)恼Z句。int delete(node *head,int i)node *p,*q; int j; q=head;j=0; while(q!=null)&(jnext;j+; if(q=null) return(0);(1) ; (2) ; free(p); return(1);五、完成:實驗1線性表根據(jù)實驗要求(見教材p201-202)認(rèn)真完成本實驗,并提交實驗報告。數(shù)據(jù)結(jié)構(gòu)(本)課程作業(yè)2(本部分作業(yè)覆蓋教材第3-5章的內(nèi)容)一、單項選擇題1若讓元

13、素1,2,3依次進(jìn)棧,則出棧順序不可能為( )。a3,2,1 b2,1,3 c3,1,2 d1,3,22一個隊列的入隊序列是1,2,3,4。則隊列的輸出序列是( )。a4,3,2,1 b1,2,3,4 c1,4,3,2 d3,2,4,13向順序棧中壓入新元素時,應(yīng)當(dāng)( )。a先移動棧頂指針,再存入元素 b先存入元素,再移動棧頂指針 c先后次序無關(guān)緊要 d同時進(jìn)行4在一個棧頂指針為top的鏈棧中,將一個p指針?biāo)傅慕Y(jié)點入棧,應(yīng)執(zhí)行( )。atop-next=p; bp-next=top-next; top-next=p;cp-next=top; top=p; dp-next=top-next;

14、top=top-next;5在一個棧頂指針為top的鏈棧中刪除一個結(jié)點時,用 x保存被刪結(jié)點的值,則執(zhí)行( )。ax=top;top=top-next; bx=top-data;ctop=top-next; x=top-data; dx=top-data; top=top-next;6一般情況下,將遞歸算法轉(zhuǎn)換成等價的非遞歸算法應(yīng)該設(shè)置( )。a棧 b隊列c堆棧或隊列 d數(shù)組7表達(dá)式a*(b+c)-d的后綴表達(dá)式是( )。 aabcd*+- babc+*d- cabc*+d- d-+*abcd8判斷一個順序隊列sq(最多元素為m0)為空的條件是( )。 asq-rear-sq-front= m

15、0 bsq-rear-sq-front-1= = m0 csq-front=sq-rear dsq-front=sq-rear+19判斷一個循環(huán)隊列q(最多元素為m0)為空的條件是( )。 aq-front=q-rear bq-front!=q-rear cq-front=(q-rear+1)% m0 dq-front!= (q-rear+1)%m0 10判斷一個循環(huán)隊列q(最多元素為m0)為空的條件是( )。 aq-front=q-rear bq-front!=q-rear cq-front=(q-rear+1)% m0 dq-front!= (q-rear+1)% m0 11判斷棧s滿(元

16、素個數(shù)最多n個)的條件是( )。 as-top=0 bs-top!=0 cs-top=n-1 ds-top!=n-1 12一個隊列的入隊順序是a,b,c,d,則離隊的順序是( )。 aa,d,cb ba,b,c,d cd,c,b,a dc,b,d,a13如果以鏈表作為棧的存儲結(jié)構(gòu),則退棧操作時( )。 a必須判斷棧是否滿 b判斷棧元素類型 c必須判斷棧是否空 d對棧不作任何判斷14在解決計算機(jī)主機(jī)與打印機(jī)之間速度不匹配問題時通常設(shè)置一個打印數(shù)據(jù)緩沖區(qū),主機(jī)將要輸出的數(shù)據(jù)依次寫入緩沖區(qū)中,而打印機(jī)則從緩沖區(qū)中取出數(shù)據(jù)打印,該緩沖區(qū)應(yīng)該是一個( )結(jié)構(gòu)。a堆棧 b隊列 c數(shù)組 d先性表15一個遞歸

17、算法必須包括( )。a遞歸部分b終止條件和遞歸部分 c迭代部分 d終止條件和迭代部分16從一個棧頂指針為top的鏈棧中刪除一個結(jié)點時,用變量x保存被刪結(jié)點的值,則執(zhí)行( )。 ax=top-data; top=top-next; bx=top-data; ctop=top-next; x=top-data; dtop=top-next; x=data;17在一個鏈隊中,假設(shè)f和r分別為隊頭和隊尾指針,則刪除一個結(jié)點的運算為( )。 ar=f-next; br=r-next; cf=f-next; df=r-next;18在一個鏈隊中,假設(shè)f和r分別為隊頭和隊尾指針,則插入s所指結(jié)點的運算為(

18、)。 af-next=s; f=s; br-next=s;r=s; cs-next=r;r=s; ds-next=f;f=s;19.以下陳述中正確的是( )。a串是一種特殊的線性表 b串的長度必須大于零c串中元素只能是字母 d空串就是空白串20設(shè)有兩個串p和q,其中q是p的子串,q在p中首次出現(xiàn)的位置的算法稱為( )。a求子串 b連接 c匹配 d求串長 21串是( )。 a不少于一個字母的序列 b任意個字母的序列 c不少于一個字符的序列 d有限個字符的序列 22串的長度是指( )。a串中所含不同字母的個數(shù) b串中所含字符的個數(shù)c串中所含不同字符的個數(shù) d串中所含非空格字符的個數(shù)23. 若串s=

19、“english”,其子串的個數(shù)是( )。 a9 b16 c 36 d2824下面關(guān)于串的敘述中,不正確的是( )。a串是字符的有限序列 b空串是由空格構(gòu)成的串 c模式匹配是串的一種重要運算 d串即可以采用順序存儲,也可以采用鏈?zhǔn)酱鎯?25串與普通的線性表相比較,它的特殊性體現(xiàn)在( )。a順序的存儲結(jié)構(gòu) b鏈接的存儲結(jié)構(gòu) c數(shù)據(jù)元素是一個字符 d數(shù)據(jù)元素可以任意26空串與空格串( )。a相同 b不相同 c可能相同 d無法確定27兩個字符串相等的條件是( )。 a兩串的長度相等 b兩串包含的字符相同 c兩串的長度相等,并且兩串包含的字符相同 d兩串的長度相等,并且對應(yīng)位置上的字符相同28在實際應(yīng)

20、用中,要輸入多個字符串,且長度無法預(yù)定。則應(yīng)該采用( )存儲比較合適( )。a鏈?zhǔn)?b 順序 c堆結(jié)構(gòu) d無法確定 29.一維數(shù)組a采用順序存儲結(jié)構(gòu),每個元素占用6個字節(jié),第6個元素的存儲地址為100,則該數(shù)組的首地址是( )。a64 b28c70 d9030稀疏矩陣采用壓縮存儲的目的主要是( )。a表達(dá)變得簡單 b對矩陣元素的存取變得簡單 c去掉矩陣中的多余元素 d減少不必要的存儲空間的開銷31一個非空廣義表的表頭( )。 a不可能是原子 b只能是子表 c只能是原子 d可以是子表或原子 32常對數(shù)組進(jìn)行的兩種基本操作是( )。a建立與刪除 b索引與、和修改c查找和修改 d查找與索引33. 設(shè)

21、二維數(shù)組a56按行優(yōu)先順序存儲在內(nèi)存中,已知a00 起始地址為1000,每個數(shù)組元素占用5個存儲單元,則元素a44的地址為( )。 a1140 b1145 c 1120 d112534設(shè)有一個20階的對稱矩陣a,采用壓縮存儲的方式,將其下三角部分以行序為主序存儲到一維數(shù)組b中(數(shù)組下標(biāo)從1開始),則矩陣中元素a9,2在一維數(shù)組b中的下標(biāo)是( )。a41 b32 c18 d3835一個非空廣義表的表頭( )。a不可能是子表 b只能是子表 c只能是原子 d可以是子表或原子二、填空題1棧是限定在表的一端進(jìn)行插入和刪除操作的線性表,又稱為 。2隊列的特性是 。3往棧中插入元素的操作方式是:先 ,后 。

22、4刪除棧中元素的操作方式是:先 ,后 。5循環(huán)隊列隊頭指針在隊尾指針 位置,隊列是“滿”狀態(tài)6在隊列的順序存儲結(jié)構(gòu)中,當(dāng)插入一個新的隊列元素時,尾指針 ,當(dāng)刪除一個元素隊列時,頭指針 。7循環(huán)隊列的引入,目的是為了克服 。8向順序棧插入新元素分為三步:第一步進(jìn)行 判斷,判斷條件是 ;第二步是修改 ;第三步是把新元素賦給 。同樣從順序棧刪除元素分為三步:第一步進(jìn)行 判斷,判斷條件是 。第二步是把 ;第三步 。9假設(shè)以s和x分別表示入棧和出棧操作,則對輸入序列a,b,c,d,e一系列棧操作ssxsxssxxx之后,得到的輸出序列為 。10一個遞歸算法必須包括 和 。11判斷一個循環(huán)隊列l(wèi)u(最多元

23、素為m0)為空的條件是 。12在將中綴表達(dá)式轉(zhuǎn)換成后綴表達(dá)式和計算后綴表達(dá)式的算法中,都需要使用棧,對于前者,進(jìn)入棧中的元素為表達(dá)式中的 ,而對于后者,進(jìn)入棧的元素為 ,中綴表達(dá)式(a+b)/c-(f-d/c)所對應(yīng)的后綴表達(dá)式是 。 16向一個棧頂指針為h的鏈棧中插入一個s所指結(jié)點時,可執(zhí)行_和h=s;操作。(結(jié)點的指針域為next)17從一個棧頂指針為h的鏈棧中刪除一個結(jié)點時,用x保存被刪結(jié)點的值,可執(zhí)行x=h-data;和_。(結(jié)點的指針域為next)18在一個鏈隊中,設(shè)f和r分別為隊頭和隊尾指針,則插入s所指結(jié)點的操作為_和r=s; (結(jié)點的指針域為next)19在一個鏈隊中,設(shè)f和r

24、分別為隊頭和隊尾指針,則刪除一個結(jié)點的操作為_。 (結(jié)點的指針域為next) 20串是一種特殊的線性表,其特殊性表現(xiàn)在組成串的數(shù)據(jù)元素都是 。21串的兩種最基本的存儲方式是 和 。22空串的長度是 ;空格串的長度是 。23需要壓縮存儲的矩陣可分為 矩陣和 矩陣兩種。24設(shè)廣義表l=(),(),則表頭是 ,表尾是 ,l的長度是 。25廣義表a(a,b,c),(d,e,f))的表尾為 。26兩個串相等的充分必要條件是_ _。27設(shè)有n階對稱矩陣a,用數(shù)組s進(jìn)行壓縮存儲,當(dāng)ij時,a的數(shù)組元素aij相應(yīng)于數(shù)組s的數(shù)組元素的下標(biāo)為_ _。(數(shù)組元素的下標(biāo)從1開始)28對稀疏矩陣進(jìn)行壓縮存儲,矩陣中每個

25、非零元素對應(yīng)的三元組包括該元素的_、_和_三項信息。三、問答題1簡述棧和一般線性表的區(qū)別。2簡述隊列和一般線性表的區(qū)別。3鏈棧中為何不設(shè)頭結(jié)點?4利用一個棧,則:(1)如果輸入序列由a,b,c組成,試給出全部可能的輸出序列和不可能的輸出序列。(2)如果輸入序列由a,b,c,d組成,試給出全部可能的輸出序列和不可能的輸出序列。5用s表示入棧操作,x表示出棧操作,若元素入棧順序為1234,為了得到1342出棧順序,相應(yīng)的s和x操作串是什么?6有5個元素,其入棧次序為:a、b、c、d、e,在各種可能的出棧次序中,以元素c、d最先的次序有哪幾個?7寫出以下運算式的后綴算術(shù)運算式 3x2+x-1/x+5

26、 (a+b)*c-d/(e+f)+g8在什么情況下可以用遞歸解決問題?在寫遞歸程序時應(yīng)注意什么?9 簡述廣義表和線性表的區(qū)別和聯(lián)系。四、程序填空題1在下面空格處填寫適當(dāng)?shù)恼Z句,以使下面的循環(huán)隊列的入隊和出隊算法完整。define true 1;define false 0;define maxsize 100;typedef charelemtype;typedef struct elemtype queue maxsize; int front,rear; sequeuetype;sequeuetype q;int encqueue(sequeuetype*q,elemtype x)if (

27、 ( 1 ) )printf(the cicular queue is full!n);return(false);else (2) (3) return(true); /*encqueue*/elemtype del_cqueue(sequeuetype *q) if ( (4) ) printf(the queue is empty !n) return(null); else (5) return(q-queueq-front); /*del_cqueue*/ 2.在下面空格處填寫適當(dāng)?shù)恼Z句,以使下面的鏈?zhǔn)疥犃腥〕鲈氐乃惴ㄍ暾?int write(linkqueue *q) queu

28、enode *p; if (q-front=q-rear) /*隊空*/ printf(“underflow”); exit(0); while (q-front-next != null) p=q-front-next; (1) printf(“%4d”,p-data); (2) (3) ; /*隊空時,頭尾指針指向頭結(jié)點*/ 五、綜合題 1設(shè)棧s和隊列q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5和e6依次通過s,一個元素出棧后即進(jìn)隊列q,若6個元素出隊的序列是e2,e4,e3,e6,e5,e1,則棧s的容量至少應(yīng)該是多少? 2假設(shè)用循環(huán)單鏈表實現(xiàn)循環(huán)隊列,該隊列只使用一個尾指針rea

29、r,其相應(yīng)的存儲結(jié)構(gòu)和基本算法如下;(1)初始化隊列initqueue(q):建立一個新的空隊列q。(2)入隊列enqueue(q,x):將元素x插入到隊列q中。(3)出隊列delqueue(q):從隊列q中退出一個元素。(4)取隊首元素gethead(q):返回當(dāng)前隊首元素。(5)判斷隊列是否為空:emptyqueue(q)。(6)顯示隊列中元素:dispqueue(q)。六、完成:實驗2棧、隊列、遞歸程序設(shè)計根據(jù)實驗要求(見教材p203)認(rèn)真完成本實驗,并提交實驗報告。數(shù)據(jù)結(jié)構(gòu)(本)課程作業(yè)作業(yè)3(本部分作業(yè)覆蓋教材第6-7章的內(nèi)容)一、單項選擇題1.假定一棵二叉樹中,雙分支結(jié)點數(shù)為15,

30、單分支結(jié)點數(shù)為30,則葉子結(jié)點數(shù)為( )。a15 b16 c17 d472二叉樹第k層上最多有( )個結(jié)點。 a2k b2k-1 c2k-1 d2k-1 3二叉樹的深度為k,則二叉樹最多有( )個結(jié)點。a2k b2k-1c2k-1 d2k-14. 設(shè)某一二叉樹先序遍歷為abdec,中序遍歷為dbeac,則該二叉樹后序遍歷的順序是( )。 aabdec bdebac cdebca dabedc5樹最適合于用來表示( )。a線性結(jié)構(gòu)的數(shù)據(jù) b順序結(jié)構(gòu)的數(shù)據(jù) c元素之間無前驅(qū)和后繼關(guān)系的數(shù)據(jù) d元素之間有包含和層次關(guān)系的數(shù)據(jù) 6設(shè)a,b為一棵二叉樹的兩個結(jié)點,在后續(xù)遍歷中,a在b前的條件是( )。a

31、a在b上方 ba在b下方 ca在b左方 da在b右方7權(quán)值為1,2,6,8的四個結(jié)點構(gòu)成的哈夫曼樹的帶權(quán)路徑長度是( )。a18 b28 c19 d298將含有150個結(jié)點的完全二叉樹從根這一層開始,每一層從左到右依次對結(jié)點進(jìn)行編號,根結(jié)點的編號為1,則編號為69的結(jié)點的雙親結(jié)點的編號為( )。a33 b34 c35 d369如果將給定的一組數(shù)據(jù)作為葉子數(shù)值,所構(gòu)造出的二叉樹的帶權(quán)路徑長度最小,則該樹稱為( )。a哈夫曼樹 b平衡二叉樹 c二叉樹 d完全二叉樹10下列有關(guān)二叉樹的說法正確的是( )。a二叉樹中度為0的結(jié)點的個數(shù)等于度為2的結(jié)點的個數(shù)加1b二叉樹中結(jié)點個數(shù)必大于0c完全二叉樹中,

32、任何一個結(jié)點的度,或者為0或者為2 d二叉樹的度是211在一棵度為3的樹中,度為3的結(jié)點個數(shù)為2,度為2的結(jié)點個數(shù)為1,則度為0的結(jié)點個數(shù)為( )。a4 b5 c6 d712在一棵度具有5層的滿二叉樹中結(jié)點總數(shù)為( )。a31 b32 c33 d1613. 利用n個值作為葉結(jié)點的權(quán)生成的哈夫曼樹中共包含有( )個結(jié)點。 a. n b. n+1 c. 2*n d. 2*n-1 14. 利用n個值作為葉結(jié)點的權(quán)生成的哈夫曼樹中共包含有( )個雙支結(jié)點。 a. n b. n-1 c. n+1 d. 2*n-1 15. 利用3、6、8、12這四個值作為葉子結(jié)點的權(quán),生成一棵哈夫曼樹,該樹中所有葉子的最

33、長帶權(quán)路徑長度為( )。 a. 18 b. 16 c. 12 d. 3016在一棵樹中,( )沒有前驅(qū)結(jié)點。a分支結(jié)點 b葉結(jié)點 c樹根結(jié)點 d空結(jié)點17在一棵二叉樹中,若編號為i的結(jié)點存在右孩子,則右孩子的順序編號為( )。 a2i b2i-1 d2i+1 c2i+2 18設(shè)一棵哈夫曼樹共有n個葉結(jié)點,則該樹有( )個非葉結(jié)點。 an bn-1 cn+1 d2n19設(shè)一棵有n個葉結(jié)點的二叉樹,除葉結(jié)點外每個結(jié)點度數(shù)都為2,則該樹共有( )個結(jié)點。 a2n b2n-1 c2n+1 d2n+2 20一棵完全二叉樹共有5層,且第5層上有六個結(jié)點,該樹共有( )個結(jié)點。 a20 b21 c23 d3

34、021在一個圖g中,所有頂點的度數(shù)之和等于所有邊數(shù)之和的( )倍。 a1/2 b1 c2 d4 22在一個有像圖中,所有頂點的入度之和等于所有頂點的出度之和的( )倍。 a鄰接矩陣表示法 b鄰接表表示法 c逆鄰接表表示法 d鄰接表和逆鄰接表 23在圖的存儲結(jié)構(gòu)表示中,表示形式唯一的是( )。 an bn+1 cn-1 dn/224一個具有n個頂點的無向完全圖包含( )條邊。 an(n-1) bn(n+1) c n(n-1)/2 d n(n+1)/225一個具有n個頂點的有向完全圖包含( )條邊。 an(n-1) bn(n+1) c n(n-1)/2 d n(n+1)/226對于具有n個頂點的圖

35、,若采用鄰接矩陣表示,則該矩陣的大小為( )。 an bn2 cn-1 d(n-1)227對于一個具有n個頂點和e條邊的無向圖,若采用鄰接表表示,則表頭向量的大小為( )。 an be c2n d2e28對于一個具有n個頂點和e條邊的無向圖,若采用鄰接表表示,則所有頂點鄰接表中的結(jié)點總數(shù)為( )。 an be c2n d2e29在有向圖的鄰接表中,每個頂點鄰接表鏈接著該頂點所有( )鄰接點。 a入邊 b 出邊 c入邊和出邊 d 不是入邊也不是出邊 30在有向圖的逆鄰接表中,每個頂點鄰接表鏈接著該頂點所有( )鄰接點。 a入邊 b出邊 c入邊和出邊 d不是入邊也不是出邊31鄰接表是圖的一種( )

36、。 a順序存儲結(jié)構(gòu) b鏈?zhǔn)酱鎯Y(jié)構(gòu) c索引存儲結(jié)構(gòu) d散列存儲結(jié)構(gòu) 32如果從無向圖的任一頂點出發(fā)進(jìn)行一次深度優(yōu)先搜索即可訪問所有頂點,則該圖一定是( )。 a完全圖 b連通圖 c有回路 d一棵樹33下列有關(guān)圖遍歷的說法不正確的是( )。a連通圖的深度優(yōu)先搜索是一個遞歸過程b圖的廣度優(yōu)先搜索中鄰接點的尋找具有“先進(jìn)先出”的特征c非連通圖不能用深度優(yōu)先搜索法d圖的遍歷要求每一頂點僅被訪問一次 34無向圖的鄰接矩陣是一個( )。 a對稱矩陣 b 零矩陣 c上三角矩陣 d對角矩陣35圖的深度優(yōu)先遍歷算法類似于二叉樹的( )遍歷。a先序 b 中序 c后序 d層次36已知下圖所示的一個圖,若從頂點v1出發(fā),按深度優(yōu)先搜索法進(jìn)行遍歷,則可能得到的一種頂點序列為( )。 av1v2v4v8v3v5v6v7 bv1v2v4v5v8v3v6v7 cv1v2v4v8v5v3v6v7 dv1v3v6v7v2v4v5v8v6v7v1v2v3v8v4v5二、填空題1結(jié)點的度是指結(jié)點所擁有的 。2樹的度是指 。3度大于0的結(jié)點稱作 或 。4度等于0的結(jié)點稱作 或 。5在一棵樹中,每個結(jié)點的 或者說每個結(jié)點的 稱為該結(jié)點的 ,簡稱為孩子。6一個結(jié)點稱為其

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論