版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)結構(本)形成性考核作業(yè)冊使用說明本作業(yè)冊是中央廣播電視大學計算機科與技術專業(yè)(本科)數(shù)據(jù)結構(本)課程形成性考核的依據(jù),與數(shù)據(jù)結構(本科) 教材(李偉生主編,中央電大出版社出版)配套使用。數(shù)據(jù)結構(本)課程是中央廣播電視大學計算機科學技術專業(yè)的一門統(tǒng)設必修、學位課程, 4 學分,共 72 學時。其中實驗24 學時,開設一學期。本課程的特點是綜合性、實踐性強,內(nèi)容抽象,在專業(yè)中具有承上啟下的作用。因此,在學習本課程時,要注意理論聯(lián)系實際,結合教學內(nèi)容進行上機實踐,認真完成作業(yè)和實驗內(nèi)容。本課程的總成績按百分制記分, 其中形成性考核所占的比例為30%, 終結性考試占 70 (閉卷,答題時限為
2、 90 分鐘) 。課程總成績達到 60 分及以上者為合格,可以獲得該課程的學分。本課程的學位課程學分為 70 分,即課程總成績達到 70 分及以上者有資格申請專業(yè)學位。本課程共設計了 4 次形考作業(yè),每次形考作業(yè)均包括實驗內(nèi)容,由各地電大根據(jù)學生對作業(yè)中各種題型練習和實驗的完成情況進行考核。對于實驗內(nèi)容要求按實驗要求認真完成,并提交實驗報告。數(shù)據(jù)結構(本)課程作業(yè)作業(yè) 1(本部分作業(yè)覆蓋教材第1-2 章的內(nèi)容)一、單項選擇題1在數(shù)據(jù)結構中,從邏輯上可以把數(shù)據(jù)結構分為( ) 。A.動態(tài)結構和靜態(tài)結構.緊湊結構和非緊湊結構C.線性結構和非線性結構D.內(nèi)部結構和外部機構2下列說法中,不正確的是( )
3、 。A.數(shù)據(jù)元素是數(shù)據(jù)的基本單位B.數(shù)據(jù)項是數(shù)據(jù)中不可分割的最小可標識單位C.數(shù)據(jù)可有若干個數(shù)據(jù)元素構成D.數(shù)據(jù)項可由若干個數(shù)據(jù)元素構成3一個存儲結點存儲一個( ) 。A數(shù)據(jù)項B .數(shù)據(jù)元素C.數(shù)據(jù)結構 D .數(shù)據(jù)類型4數(shù)據(jù)結構中,與所使用的計算機無關的是數(shù)據(jù)的( ) 。A.存儲結構B .物理結構C.邏輯結構D.物理和存儲結構5下列的敘述中,不屬于算法特性的是() 。A有窮性B .輸入性C.可行性D.可讀性6 算法分析的目的是( ) 。A 找出數(shù)據(jù)結構的合理性 B 研究算法中的輸入和輸出的關系C.分析算法的效率以求改進 D .分析算法的易懂性和文檔性7數(shù)據(jù)結構是一門研究計算機中( )對象及其關
4、系的科學。A.數(shù)值運算B .非數(shù)值運算C.集合D.非集合)有關。8算法的時間復雜度與(A 所使用的計算機B 與計算機的操作系統(tǒng)C.與算法本身 D .與數(shù)據(jù)結構9設有一個長度為n 的順序表,要在第i 個元素之前(也就是插入元素作為新表的第 i 個元素) ,則移動元素個數(shù)為( ) 。A n-i+1 B n-i C n-i-1 D i10 設有一個長度為 n 的順序表,要刪除第i 個元素移動元素的個數(shù)為()。A n-i+1 B n-i C n-i-1 D i11 在一個單鏈表中, p、 q 分別指向表中兩個相鄰的結點,且q 所指結點是 p 所指結點的直接后繼,現(xiàn)要刪除q 所指結點,可用語句( )A
5、p=q->nextB p->next=qC p->next=q nextD q->next=NULL12 在一個單鏈表中p 所指結點之后插入一個s 所指的結點時,可執(zhí)行A p->next= s; snext= p next B p->next=s next;C p=s->nexts->next=p->next; p->next=s;13 非空的單向循環(huán)鏈表的尾結點滿足()(設頭指針為head,指針 p 指向尾結點)A. P->next= =NULL BC P->next= =head D14 鏈表不具有的特點是( )A 可
6、隨機訪問任一元素 P= =NULL P= = headB 插入刪除不需要移動元素C 不必事先估計存儲空間 D 所需空間與線性表長度成正比15 帶頭結點的鏈表為空的判斷條件是( ) (設頭指針為 head ) 。A head = =NULLB head->next= =NULLC head->next= =headD head!=NULL16在一個單鏈表中,p、 q 分別指向表中兩個相鄰的結點,且q 所指結點是 p 所指結點的直接后繼,現(xiàn)要刪除q 所指結點,可用語句( ) 。A p=q->nextB p->next=qC p->next=q->nextD q-
7、>next=NULL17 在一個鏈隊中,假設f 和 r 分別為隊頭和隊尾指針,則刪除一個結點的運算為( ) 。A r=f->next;B r=r->next;C f=f->next;D f=r->next;18 在一個鏈隊中,假設f 和 r 分別為隊頭和隊尾指針,則插入 s 所指結點的運算為( ) 。A f->next=s; f=s;B r->next=s;r=s;C s->next=r;r=s;D s->next=f;f=s;19 . 一個順序表第一個元素的存儲地址是90,每個元素的長度為2 ,則第6個元素的地址是(A. 98 B . 1
8、00 C . 102 D . 10620 .有關線性表的正確說法是()。A.每個元素都有一個直接前驅和一個直接后繼B.線性表至少要求一個元素C.表中的元素必須按由小到大或由大到下排序D.除了一個和最后一個元素外,其余元素都有一個且僅有一個直接前驅和一個直接后繼二、填空題1 .在一個長度為n的順序存儲結構的線性表中,向第 i(1 i n+1)個元素之 前插入新元素時,需向后移動 個數(shù)據(jù)元素。2 .從長度為n的采用順序存儲結構的線性表中刪除第i(1 i n+1)個元素,需向前移動 個元素。3 .數(shù)據(jù)結構按結點間的關系,可分為4種邏輯結 構:、4 .數(shù)據(jù)的邏輯結構在計算機中的表示稱為 或。5 .除了
9、第1個和最后一個結點外,其余結點有且只有一個前驅結點和后繼 結點的數(shù)據(jù)結構為 ,每個結點可有任意多個前驅和后繼結點數(shù) 的結構為。6 . 算 法 的 5 個 重 要 特 性7 .數(shù)據(jù)結構中的數(shù)據(jù)元素存在多對多的關系稱為 結構。8 .數(shù)據(jù)結構中的數(shù)據(jù)元素存在一對多的關系稱為 結構。9 .數(shù)據(jù)結構中的數(shù)據(jù)元素存在一對一的關系稱為 結構。10 .要求在n個數(shù)據(jù)元素中找其中值最大的元素,設基本操作為元素間的 比較。則比較的次數(shù)和算法的時間復雜度分別為 和。11 .在一個單鏈表中p所指結點之后插入一個 s所指結點時,應執(zhí)行 口 p->next=s;的操作。12 .設有一個頭指針為head的單向循環(huán)鏈
10、表,p指向鏈表中的結點,若 p->next= =,則 p所指結點為尾結點。13 .在一個單向鏈表中,要刪除 p所指結點,已知q指向p所指結點的前 驅結點。則可以用操作 。14 .設有一個頭指針為 head的單向鏈表,p指向表中某一個結點,且有 p->next= =NULL,通過操作 就可使該單向鏈表構造成單向循環(huán) 鏈表。15 .每個結點只包含一個指針域的線性表叫 。16 .線性表具有 和 兩種存儲結構。17 .數(shù)據(jù)的邏輯結構是從邏輯關系上描述數(shù)據(jù),它與數(shù)據(jù)的關系 無關,是獨立于計算機的。18 .在雙向循環(huán)鏈表的每個結點中包含 指針域,其中next指向它 的, prior 指向它的
11、,而頭結點的prior 指 向,尾結點的next指向。19 .單向循環(huán)鏈表是單向鏈表的一種擴充,當單向鏈表帶有頭結點時,把單向鏈表中尾結點的指針域由空指針改為 ;當單向鏈表不帶頭 結點時,則把單向鏈表中尾結點的指針域由空指針改為指向。20 .線性鏈表的邏輯關系時通過每個結點指針域中的指針來表示的。其邏輯順序和物理存儲順序不再一致,而是一種 存儲結構,又稱 為。三、問答題1 .簡述數(shù)據(jù)的邏輯結構和存儲結構的區(qū)別與聯(lián)系,它們?nèi)绾斡绊懰惴ǖ脑O計與實現(xiàn)?2 .解釋順序存儲結構和鏈式存儲結構的特點,并比較順序存儲結構和鏈式 存儲結構的優(yōu)缺點。3 .什么情況下用順序表比鏈表好?4 .頭指針、頭結點、第一個
12、結點(或稱首元結點)的區(qū)別是什么?5 .解釋帶頭結點的單鏈表和不帶頭結點的單鏈表的區(qū)別。四、程序填空題1.下列是用尾插法建立帶頭結點的且有n個結點的單向鏈表的算法,請在空格內(nèi)填上適當?shù)恼Z句。NODE *create1(n)/*對線,性表(1,2,.,n),建立帶頭結點的單向鏈表 */NODE *head,*p,*q;int i;p=(NODE *)malloc(sizeof(NODE);head=p; q=p; p->next=NULL;for(i=1;i<=n;i+)p=(NODE *)malloc(sizeof(NODE);(1);(3) ;(4) ;return(head);
13、2.下列是用頭插法建立帶頭結點的且有 n個結點的單向鏈表的算法,請在空格內(nèi)填上適當?shù)恼Z句。NODE *create2(n)/*對線卜t表(n,n-1,.,1),建立帶頭結點的線性鏈表*/NODE *head,*p,*q;int i;p=(NODE *)malloc(sizeof(NODE);(1) ;p->next=NULL;(2) ;for(i=1;i<=n;i+)p=(NODE *)malloc(sizeof(NODE);p->data=i;if(i=1)(3) ;else(4) ;(5) ; return(head);3.下列是在具有頭結點單向列表中刪除第i個結點,請在
14、空格內(nèi)填上適當?shù)恼Z句。int delete(NODE *head,int i)找到要刪除結點的直接前驅,并使 q指向它*/int j; q=head; j=0;while(q!=NULL)&&(j<i-1)/* q=q->next; j+; if(q=NULL) return(0); (1);(2);free(p); return(1); 五、完成:實驗1線性表根據(jù)實驗要求(見教材P201-202)認真完成本實驗,并提交實驗報告。數(shù)據(jù)結構(本)課程作業(yè) 2(本部分作業(yè)覆蓋教材第3-5章的內(nèi)容)一、單項選擇題1 .若讓元素1, 2,3依次進棧,則出棧順序不可能為(A.
15、 3, 2, 1 2, 1, 3C. 3, 1,2D. 1, 3, 22. 一個隊列的入隊序列是1, 2, 3, 4。則隊列的輸出序列是(A. 4, 3, 2, 1 B 1, 2, 3C. 1, 4, 3, 2 D 3, 2, 43.向順序棧中壓入新元素時,應當(A.先移動棧頂指針,再存入元素.先存入元素,再移動棧頂指針C.先后次序無關緊要4在一個棧頂指針為 top 的鏈棧中,將一個p 指針所指的結點入棧,應執(zhí)行( ) 。A top->next=p;B p->next=top->next; top->next=p;C p->next=top; top=p;D p-
16、>next=top->next; top=top->next;5 在一個棧頂指針為 top 的鏈棧中刪除一個結點時, 用 x 保存被刪結點的值,則執(zhí)行( ) 。A x=top;top=top->next;B x=top->data;C top=top ->next; x=top->data;D x=top->data; top=top->next;6一般情況下,將遞歸算法轉換成等價的非遞歸算法應該設置( ) 。隊列D.數(shù)組A.棧C.堆棧或隊列7表達式 a*(b+c)-d 的后綴表達式是( abc+*d- C abc*+d- D -+*abc
17、dsq (最多元素為m)為空的條件是()。A abcd*+- B8判斷一個順序隊列sq->rear-sq->front-1= = m0 sq->front=sq->rear+1A sq->rear-sq->front=m0BC sq->front=sq->rearD9 .判斷一個循環(huán)隊列 Q (最多元素為m)為空的條件是()Q->front!=Q->rearA Q->front=Q->rearC Q->front=(Q->rear+1)% mD Q->front!= (Q->rear+1)%m10
18、.判斷一個循環(huán)隊列Q (最多元素為m)為空的條件是()。A Q->front=Q->rearB Q->front!=Q->rearC Q->front=(Q->rear+1)% m0 D Q->front!= (Q->rear+1)% m011 .判斷棧S滿(元素個數(shù)最多n個)的條件是()。A s->top=0B s->top!=0C s->top=n-1D s->top!=n-112 一個隊列的入隊順序是a,b,c,d ,則離隊的順序是( ) 。A a,d,cb B a,b,c,d C d,c,b,a D c,b,d,a
19、13 如果以鏈表作為棧的存儲結構,則退棧操作時() 。A 必須判斷棧是否滿B 判斷棧元素類型C.必須判斷棧是否空D .對棧不作任何判斷14 在解決計算機主機與打印機之間速度不匹配問題時通常設置一個打印數(shù)據(jù)緩沖區(qū),主機將要輸出的數(shù)據(jù)依次寫入緩沖區(qū)中,而打印機則從緩沖區(qū)中取出數(shù)據(jù)打印,該緩沖區(qū)應該是一個( )結構。A.堆棧 B .隊列 C .數(shù)組 D .先性表15 一個遞歸算法必須包括( ) 。A.遞歸部分B.終止條件和遞歸部分C.迭代部分D .終止條件和迭代部分16 從一個棧頂指針為top 的鏈棧中刪除一個結點時,用變量x 保存被刪結點的值,則執(zhí)行( ) 。A x=top->data; t
20、op=top->next; B x=top->data;top=top->next; x=data;C top=top->next; x=top->data; D17在一個鏈隊中,假設f 和 r 分別為隊頭和隊尾指針,則刪除一個結點的運算為( ) 。A r=f->next; B r=r->next; C f=f->next; D f=r->next;18在一個鏈隊中,假設f 和 r 分別為隊頭和隊尾指針,則插入 s 所指結點的運算為( ) 。A f->next=s; f=s;BC s->next=r;r=s;D19. 以下陳述中
21、正確的是(A.串是一種特殊的線性表C.串中元素只能是字母20設有兩個串p 和 q ,其中法稱為( ) 。A.求子串BC 匹配D21 串是( )。A 不少于一個字母的序列C 不少于一個字符的序列22 串的長度是指() 。A.串中所含不同字母的個數(shù)C.串中所含不同字符的個數(shù) r->next=s;r=s; s->next=f;f=s;)。B 串的長度必須大于零D 空串就是空白串q 是 p 的子串, q 在 p 中首次出現(xiàn)的位置的算連接求串長B任意個字母的序列D有限個字符的序列B 串中所含字符的個數(shù)D 串中所含非空格字符的個數(shù)23 . 若串 S=“English ” ,其子串的個數(shù)是(A
22、9 B 16 C 36 D 2824下面關于串的敘述中,不正確的是() 。A.串是字符的有限序列B.空串是由空格構成的串C.模式匹配是串的一種重要運算D.串即可以采用順序存儲,也可以采用鏈式存儲25 串與普通的線性表相比較,它的特殊性體現(xiàn)在( ) 。A.順序的存儲結構B .鏈接的存儲結構C.數(shù)據(jù)元素是一個字符D .數(shù)據(jù)元素可以任意26 空串與空格串( ) 。A.相同 B.不相同C .可能相同 D .無法確定27 兩個字符串相等的條件是( ) 。A 兩串的長度相等B.兩串包含的字符相同C 兩串的長度相等,并且兩串包含的字符相同D 兩串的長度相等,并且對應位置上的字符相同28 在實際應用中, 要輸
23、入多個字符串, 且長度無法預定。 則應該采用 ()存儲比較合適( ) 。A.鏈式 B 順序 C.堆結構 D .無法確定29 .一維數(shù)組A采用順序存儲結構,每個元素占用6個字節(jié),第6個元素的存儲地址為100,則該數(shù)組的首地址是()。28A 6490C 7030稀疏矩陣采用壓縮存儲的目的主要是() 。A.表達變得簡單B.對矩陣元素的存取變得簡單C 去掉矩陣中的多余元素 D 減少不必要的存儲空間的開銷31 一個非空廣義表的表頭( )。A 不可能是原子B 只能是子表C 只能是原子D 可以是子表或原子32常對數(shù)組進行的兩種基本操作是() 。A.建立與刪除B.索引與、和修改C.查找和修改D.查找與索引33
24、 . 設二維數(shù)組A56 按行優(yōu)先順序存儲在內(nèi)存中,已知 A00 起始地址為1000, 每個數(shù)組元素占用5 個存儲單元, 則元素 A44 的地址為 () 。A 1140 B 1145 C 1120 D 112534 .設有一個20階的對稱矩陣A,采用壓縮存儲的方式,將其下三角部分以行序為主序存儲到一維數(shù)組 B 中(數(shù)組下標從1 開始) ,則矩陣中元素a9,2 在一維數(shù)組 B 中的下標是( ) 。A 41 B 32 C 18 D 3835一個非空廣義表的表頭() 。A.不可能是子表B .只能是子表C.只能是原子D .可以是子表或原子二、填空題1 棧是限定在表的一端進行插入和刪除操作的線 性表, 又
25、稱 為。2 .隊列的特性是。3 .往棧中插入元素的操作方式是:先, 后。4 .刪除棧中元素的操作方式是:先, 后。5 .循環(huán)隊列隊頭指針在隊尾指針 位置,隊列是“滿”狀態(tài)6 .在隊列的順序存儲結構中,當插入一個新的隊列元素時,尾指 針,當刪除一個元素隊列時,頭指針 。7 .循環(huán)隊列的引入,目的是為了克服 。8 .向順序棧插入新元素分為三步:第一步進行 判斷,判斷條件 是;第二步是修改 ;第三步是把新元素賦 給。同樣從順序棧刪除元素分為三步:第一步進行 判 斷,判斷條件是。第二步是把;第三9 .假設以S和X分別表示入棧和出棧操作,則對輸入序列 a,b,c,d,e 一系歹U棧操作SSXSXSSXX
26、X后,得至J的輸出序歹U為 。10 . 一個遞歸算法必須包括 和。11 .判斷一個循環(huán)隊列LU(最多元素為 m)為空的條件是 。12 .在將中綴表達式轉換成后綴表達式和計算后綴表達式的算法中,都需要使用棧,對于前者,進入棧中的元素為表達式中的 ,而對于后者,進入棧的元素為,中綴表達式(a+b)心(f-d/c)所對應的后綴表達式16 .向一個棧頂指針為h的鏈棧中插入一個s所指結點時,可執(zhí)行和h=s;操作。(結點的指針域為next)17 .從一個棧頂指針為h的鏈棧中刪除一個結點時,用 x保存被刪結點的 值,可執(zhí)行x=h->data;和。(結點的指針域為next)18 .在一個鏈隊中,設f和r
27、分別為隊頭和隊尾指針,則插入 s所指結點的操作為 和r=s;(結點的指針域為next)19 .在一個鏈隊中,設f和r分別為隊頭和隊尾指針,則刪除一個結點的 操作為。(結點的指針域為next)20 .串是一種特殊的線性表,其特殊性表現(xiàn)在組成串的數(shù)據(jù)元素都21 . 串的兩種最基本的存儲方式是和 022 .空串的長度是 ;空格串的長度是 。23 .需要壓縮存儲的矩陣可分為 矩陣和 矩陣兩種。24 .設廣義表L=(), (),則表頭是,表尾是, L的長度是。25 .廣義表 A (a,b,c ) ,(d,e,f)的表尾為 。26 .兩個串相等的充分必要條件是 。27 .設有n階對稱矩陣A,用數(shù)組s進行壓
28、縮存儲,當i j時,A的數(shù)組元素aj相應于數(shù)組s的數(shù)組元素的下標為(數(shù)組元素的下標從1開始)28 .對稀疏矩陣進行壓縮存儲,矩陣中每個非零元素對應的三元組包括該元素的、和三項信息。三、問答題1 .簡述棧和一般線性表的區(qū)別。2 .簡述隊列和一般線性表的區(qū)別。3 .鏈棧中為何不設頭結點?4 .利用一個棧,則:(1)如果輸入序列由A, B, C組成,試給出全部可能的輸出序列和不可能 的輸出序列。(2)如果輸入序列由 A B, C, D組成,試給出全部可能的輸出序列和不 可能的輸出序列。5 .用S表示入棧操作,X表示出棧操作,若元素入棧順序為1234,為了得到1342出棧順序,相應的S和X操作串是什么
29、?6 .有5個元素,其入棧次序為:A B、C、D、E,在各種可能的出棧次序中,以元素C、 D最先的次序有哪幾個?7 .寫出以下運算式的后綴算術運算式(1) 3x2+x-1/x+5(2) (A+B)*C-D/(E+F)+G8 .在什么情況下可以用遞歸解決問題?在寫遞歸程序時應注意什么?9 .簡述廣義表和線性表的區(qū)別和聯(lián)系。四、程序填空題1.在下面空格處填寫適當?shù)恼Z句,以使下面的循環(huán)隊列的入隊和出隊算法完整。define TRUE 1;define FALSE 0;define MAXSIZE 100;typedef charelemtype;typedef structElemtype queu
30、e MAXSIZE;int front,rear;sequeuetype;Sequeuetype Q;int encqueue(sequeuetype*Q,elemtype x)if ( ( 1JJPrintf( ''The cicular queue is full!n "); return(FALSE);else(3) return(TRUE); /*encqueue*/ elemtype del_cqueue(sequeuetype *Q)if ( (4)Printf('' The queue is empty !n")return(N
31、ULL);else(5)Return(Q-queueQ- >front);/*del_cqueue*/2.在下面空格處填寫適當?shù)恼Z句,以使下面的鏈式隊列取出元素的算法完整。int write(LinkQueue *q)QueueNode *p;if (q->front=q->rear)/* 隊空 */printf( "underflow ”);exit(0);while (q->front->next != NULL)p=q->front->next; printf("4d ,p ->data);(2) (3) ;/*隊空時,
32、頭尾指針指向頭結點*/五、綜合題1 .設棧S和隊列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5 和e6依次通過S, 一個元素出棧后即進隊列 Q,若6個元素出隊的序列是 e2,e4,e3,e6,e5,e1 ,則 棧S的容量至少應該是多少?2 .假設用循環(huán)單鏈表實現(xiàn)循環(huán)隊列,該隊列只使用一個尾指針rear ,其相應的存儲結構和基本算法如下;(1)初始化隊列initqueue(Q):建立一個新的空隊列Q。(2)入隊列enqueue(Q,x):將元素x插入到隊列Q中。(3)出隊列delqueue(Q):從隊列Q中退出一個元素。(4)取隊首元素gethead(Q):返回當前隊首元素。(5)判斷隊列
33、是否為空:emptyqueue(Q)。(6)顯示隊列中元素:dispqueue(Q)。六、完成:實驗2棧、隊列、遞歸程序設計根據(jù)實驗要求(見教材 P203)認真完成本實驗,并提交實驗報告。數(shù)據(jù)結構(本)課程作業(yè)作業(yè)3(本部分作業(yè)覆蓋教材第 6-7章的內(nèi)容)一、單項選擇題1 .假定一棵二叉樹中,雙分支結點數(shù)為15,單分支結點數(shù)為30,則葉子結點數(shù)為()。A. 15 B . 16C .17 D . 472 .二叉樹第k層上最多有()個結點。A . 2kB. 2k-1C . 2k-1D. 2k-13 .二叉樹的深度為k,則二叉樹最多有()個結點。A. 2kB. 2k-1C 2k-1D. 2k-14
34、.設某一二叉樹先序遍歷為abdec,中序遍歷為 dbeac,則該二叉樹后序A . abdec B遍歷的順序是()。.debac C . debca D . abedc5樹最適合于用來表示(A.線性結構的數(shù)據(jù)B.順序結構的數(shù)據(jù)C.元素之間無前驅和后繼關系的數(shù)據(jù)D.元素之間有包含和層次關系的數(shù)據(jù)6 設 a,b 為一棵二叉樹的兩個結點, 在后續(xù)遍歷中, a 在 b 前的條件是()A a 在 b 上方B a 在 b 下方C. a在b左方D. a在b右方7 權值為 1 , 2 , 6 , 8 的四個結點構成的哈夫曼樹的帶權路徑長度是()A 18 B 28 C 19 D 298將含有150 個結點的完全二
35、叉樹從根這一層開始,每一層從左到右依次對結點進行編號,根結點的編號為 1,則編號為 69 的結點的雙親結點的編號為()。A 33 B 34 C 35 D 369如果將給定的一組數(shù)據(jù)作為葉子數(shù)值,所構造出的二叉樹的帶權路徑長度最小,則該樹稱為( )。A.哈夫曼樹B.平衡二叉樹C 二叉樹D 完全二叉樹10 下列有關二叉樹的說法正確的是()。A.二叉樹中度為0的結點的個數(shù)等于度為2的結點的個數(shù)加1B.二叉樹中結點個數(shù)必大于 0C.完全二叉樹中,任何一個結點的度,或者為0或者為2D.二叉樹的度是211. 在一棵度為 3 的樹中, 度為 3 的結點個數(shù)為 2, 度為 2 的結點個數(shù)為 1 ,則度為 0
36、的結點個數(shù)為( )。A 4 B 5 C 6 D 712. 在一棵度具有5 層的滿二叉樹中結點總數(shù)為( )。A 31 B 32 C 33 D 1613. 利用 n 個值作為葉結點的權生成的哈夫曼樹中共包含有( ) 個結點。A. n B. n+1 C. 2*n D. 2*n-114. 利用 n 個值作為葉結點的權生成的哈夫曼樹中共包含有( ) 個雙支結點。A. n B. n-1 C. n+1 D. 2*n-115. 利用3、 6 、 8、 12 這四個值作為葉子結點的權,生成一棵哈夫曼樹,該樹中所有葉子的最長帶權路徑長度為 ( )。A. 18 B. 16 C. 12 D. 3016在一棵樹中,()
37、沒有前驅結點。A.分支結點B .葉結點 C .樹根結點D .空結點17在一棵二叉樹中,若編號為i 的結點存在右孩子,則右孩子的順序編號為( ) 。A 2iB 2i-1 D 2i+1 C 2i+218設一棵哈夫曼樹共有n 個葉結點,則該樹有( )個非葉結點。A nB n-1 C n+1 D 2n19 設一棵有n 個葉結點的二叉樹,除葉結點外每個結點度數(shù)都為2 ,則該樹共有( )個結點。A 2nB 2n-1 C 2n+1 D 2n+220一棵完全二叉樹共有5 層,且第 5 層上有六個結點,該樹共有( )個結點。 A 20B 21 C 23 D 3021 在一個圖 G 中,所有頂點的度數(shù)之和等于所有
38、邊數(shù)之和的( ) 倍。A 1/2 B 1 C 2 D 422在一個有像圖中,所有頂點的入度之和等于所有頂點的出度之和的 ( )倍。A 鄰接矩陣表示法 B 鄰接表表示法C.逆鄰接表表示法D .鄰接表和逆鄰接表23在圖的存儲結構表示中,表示形式唯一的是()。A n B n 1 C n 1 D n/224一個具有n 個頂點的無向完全圖包含( )條邊。A n( n 1) B n( n 1) C n ( n 1) /2 D n ( n 1 ) /225一個具有n 個頂點的有向完全圖包含( )條邊。A n( n 1) B n( n 1) C n ( n 1) /2 D n ( n 1 )/226 對于具有
39、n 個頂點的圖,若采用鄰接矩陣表示,則該矩陣的大小為)。A n B n2 C n 1 D ( n 1) 227對于一個具有n 個頂點和 e 條邊的無向圖,若采用鄰接表表示,則表頭向量的大小為( )。A n B e C 2n D 2e28對于一個具有n 個頂點和 e 條邊的無向圖,若采用鄰接表表示,則所有頂點鄰接表中的結點總數(shù)為( )。A n B e C 2n D 2e29在有向圖的鄰接表中,每個頂點鄰接表鏈接著該頂點所有()鄰接點。A 入邊B 出邊C.入邊和出邊D.不是入邊也不是出邊30在有向圖的逆鄰接表中,每個頂點鄰接表鏈接著該頂點所有()鄰接點。.出邊.不是入邊也不是出邊.鏈式存儲結構.散
40、列存儲結構A 入邊BC.入邊和出邊D31 鄰接表是圖的一種( )。A 順序存儲結構BC.索引存儲結構D32 如果從無向圖的任一頂點出發(fā)進行一次深度優(yōu)先搜索即可訪問所有頂點,則該圖一定是( )。A 完全圖 B 連通圖 C 有回路D 一棵樹33 .下列有關圖遍歷的說法不正確的是(A.連通圖的深度優(yōu)先搜索是一個遞歸過程B.圖的廣度優(yōu)先搜索中鄰接點的尋找具有“先進先出”的特征C.非連通圖不能用深度優(yōu)先搜索法D.圖的遍歷要求每一頂點僅被訪問一次34 .無向圖的鄰接矩陣是一個()。A.對稱矩陣B .零矩陣 C .上三角矩陣D .對角矩陣35 .圖的深度優(yōu)先遍歷算法類似于二叉樹的()遍歷。A.先序B .中序
41、 C .后序 D .層次36 .已知下圖所示的一個圖,若從頂點 Vi出發(fā),按深度優(yōu)先搜索法進行遍歷,則可能得到的一種頂點序列為()。A . MMMV8V3MV6V7B . VMV4V5VV3V6V75 .在一棵樹中,每個結點的 或者說每個結點的稱為該結點的 ,簡稱為孩子。6 . 一個結點稱為其后繼結點的 o7 .具有 的結點互稱為兄弟結點,簡稱為兄弟。8 .每個結點的所有子樹中的結點被稱為該結點的 。9 .從根結點到該結點所經(jīng)分支上的所有結點稱為該結點的 。10 .樹的深度或高度是指 。11 . m(m 0)棵互不相交的樹的集合稱為 。12 .度為k的樹中的第i層上最多有 結點。13 .深度為
42、k的二叉樹最多有 結點。14 .在一棵二叉樹中,如果樹中的每一層都是滿的,則稱此樹 為;但如果出最后一層外,其余層都是滿的,并且最后一層 是滿的,或者是在缺少若干連續(xù)個結點,則稱此二叉樹 為。15 .具有n個結點的完全二叉樹的深度是 。16 .先序遍歷二叉樹的的操作定義為;若二叉樹為空,則為空操作,否則 進行如下操作,訪問二叉樹的 ;先序遍歷二叉樹的 , 先序遍歷二叉樹的17 .中序遍歷二叉樹的的操作定義為;若二叉樹為空,則為空操作,否則進行如下操作,中序遍歷二叉樹的 ;訪問而叉樹的 中序遍歷二叉樹的 18 .后序遍歷二叉樹的的操作定義為;若二叉樹為空,則為空操作,否則進行如下操作,后序遍歷二
43、叉樹的;后序遍歷二叉樹的,訪問而叉樹的19 .將樹中結點賦上一個有著某種意義的實數(shù),稱此實數(shù)為該結點 的。20 .樹的帶權路徑長度為樹中所有葉子結點 的。21 .哈夫曼樹又稱為 ,它是n個帶權葉子結點構成的所有 二叉樹中帶權路徑長度 WPL。22 .若以4, 5, 6, 7, 8作為葉子結點的權值構造哈夫曼樹,則其帶權路 徑長度是。23 .具有m個葉子結點的哈夫曼樹共有 結點。24 .在圖中,任何兩個數(shù)據(jù)元素之間都可能存在關系,因此圖的數(shù)據(jù)元素之間是一種_的關系。25 .圖的鄰接矩陣表示法是用一個 來表示圖中頂點之間的相 鄰關系。26 .鄰接表是圖中的每個頂點建立一個鄰接關系的 。27 .圖的
44、遍歷是從圖的某一頂點出發(fā),按照一定的搜索方法對圖中 各做一訪問的過程。28 .圖的深度優(yōu)先搜索遍歷類似于樹的 遍歷。29 .圖的廣度優(yōu)先搜索類似于樹的 遍歷。30 .具有n個頂點的有向圖的鄰接矩陣,其元素個數(shù)為 。31 .具有n個頂點的無向圖至少有 條邊,才能確保其為一個連 通圖。32 .圖常用的兩種存儲結構是 和。33 . 一個AOV網(wǎng)(頂點活動圖)應該是一個 。即不應該帶有 回路,否則回路上的所有活動都 。34 .用鄰接矩陣存儲有向圖G,其第i行的所有元素之和等于頂點i的。35 .在有n個頂點的有向圖中,每個頂點的度最大可達 。36 .在一個帶權圖中,兩頂點之間的最段路徑最多經(jīng)過 條邊。3
45、7 .為了實現(xiàn)圖的深度優(yōu)先搜索遍歷,其非遞歸的算法中需要使用的一個輔助數(shù)據(jù)結構為。三、綜合題1 .寫出如下圖所示的二叉樹的先序、中序和后序遍歷序列。f2 .已知某二叉樹的先序刎第果是:A,B, D, G, C, E, H, L, I , K, M, F和J,它的中序遍號怦D,B,A)L H,E,K,I ,M,C,F和J,請畫出這棵二叉樹,并寫bH該二叉樹卮續(xù)遍歷的結惠.3 .已知1媒2全二般b有 892個色,廣)(1)樹的高度葉子結點數(shù) 單支結點數(shù) 最后一個非終端結點的序號4給出滿足下列條件的所有二叉樹。( 1)先序和中序相同( 2)中序和后序相同( 3)先序和后序相同( 假設通信用的報文由9
46、 個字母A、B、C、D、E、F、G、H 和 I 組成,它們出現(xiàn)的頻率分別是: 10、 20、 5 、 15 、 8、 2、 3、 7 和 30。請請用這9 個字母出現(xiàn)的頻率作為權值求:( 1)設計一棵哈夫曼樹;( 2)計算其帶權路徑長度WPL;( 3)寫出每個字符的哈夫曼編碼。6請根據(jù)以下帶權有向圖G(1)給出從結點v1出發(fā)分別按深度優(yōu)先搜索遍歷G和廣度優(yōu)先搜索遍歷G所得的結點序列;(2)給出G的一個拓撲序列;( 3)給出從結點v1 到結點 v8 的最短路徑。7.已知無向圖G描述如下:G=( V, E)V=V1, V2, V3, V4, V5E=( V1, V2), ( V1,V4), ( V
47、2,V4), (V3,V4), ( V2,V5), (V3,V4),( V3,V5) (1)畫出G的圖示;(2)然后給出G的鄰接矩陣和鄰接表;(3)寫出每個頂點的度。8.回答下列問題:對于存儲結構采用鄰接矩陣的無向圖,如何判斷下列有關問題?圖中有多少條邊?任意兩頂點間是否有邊相連?任意一個頂點的度是多少?對于存儲結構采用鄰接表的有向圖,如何判斷下列有關問題?圖中有多少條邊?圖中是否存在從V到V的邊?如何求頂點V的入度和出度?四、程序填空題1 .下面函數(shù)的功能是返回二叉樹 BT中值為X的結點所在的層號,請在劃有橫線的地方填寫合適內(nèi)容。int NodeLevel(struct BinTreeNod
48、e* BT, char X)if(BT=NULL) return 0;/*空樹的層號為 0*/else if(BT->data=X) return 1; /*根結點的層號為 1*/* 向子樹中查找X結點*/else int c1=NodeLevel(BT->left,X);if(c1>=1);int c2=(2) if (3);/若樹中不存在 X結點則返回0else return 0;2 .下面函數(shù)的功能是按照圖的深度優(yōu)先搜索遍歷的方法,輸出得到該圖的生成樹中的各條邊,請在劃有橫線的地方填寫合適內(nèi)容。void dfstree(adjmatrix GA, int i, int
49、n)int j;visitedi=1;(1) if(GAij!=0 && GAij!=MaxValue && !visitedj) printf("(%d,%d)%d,",i,j,GAij);(2) 五、算法設計題1 .寫一個將一棵二叉樹復制給另一棵二叉樹的算法。2 .根據(jù)下面函數(shù)聲明編寫出求一棵二叉樹中葉子結點總數(shù)的算法,該總數(shù)值由函數(shù)返回。假定參數(shù)BT初始指向二叉樹的根結點。int BTreeLeafCount(struct BTreeNode* BT);3 .已知有n個頂點的有向圖鄰接表,設計算法分別實現(xiàn)下列功能:(1)求出圖G中每個頂
50、點的出度、入度。(2)計算圖中度為0的頂點數(shù)。六、完成:實驗3棧、隊列、遞歸程序設計實驗4圖的存儲方式和應用根據(jù)實驗要求(見教材 P203)認真完成本實驗,并提交實驗報告。數(shù)據(jù)結構(本)課程作業(yè)(4)(本部分作業(yè)覆蓋教材第8-9章的內(nèi)容)一、單項選擇題1 .順序查找方法適合于存儲結構為()的線性表。.索引存儲A.散列存儲C.散列存儲或索引存儲 D.順序存儲或鏈接存儲2對線性表進行二分查找時,要求線性表必須()。A 以順序存儲方式B.以鏈接存儲方式C 以順序存儲方式 ,且數(shù)據(jù)元素有序D.以鏈接存儲方式,且數(shù)據(jù)元素有序3如果要求一個線性表既能較快地查找,又能動態(tài)適應變化要求,可以采用( )查找方法
51、。A.順序B.分塊C.折半D.散列4 . 對于一個線性表,若要求既能進行較快地插入和刪除,又要求存儲結構能夠反映數(shù)據(jù)元素之間的邏輯關系,則應該( ) 。A 以順序存儲方式B 以鏈接存儲方式C.以索引存儲方式 D .以散列存儲方式5 采用順序查找方法查找長度為n 的線性表時,每個元素的平均查找長度為( ) 。A nB n/2C (n+1)/2 D (n-1)/26 采用折半查找方法查找長度為n 的線性表時,每個元素的平均查找長度為( ) 。A O(n*n)O(nlog 2n)C O(n)s(log 2n))取其值域的每個7哈希函數(shù)有一個共同的性質,即函數(shù)值應當以(值。A.最大概率B .最小概率C
52、 .平均概率D .同等概率8有一個長度為10 的有序表,按折半查找對該表進行查找,在等概率情況下查找成功的平均比較次數(shù)為( ) 。A 29/10 B 31/10 C 26/10 D 29/99. 已知一個有序表為 11,22,33,44,55,66,77,88,99, 則順序查找元素55需要比較( )次。A 3 B 4 C 5 D 610. 順序查找法與二分查找法對存儲結構的要求是()。A.順序查找與二分查找均只是適用于順序表B.順序查找與二分查找均既適用于順序表,也適用于鏈表C.順序查找只是適用于順序表D.二分查找適用于順序表11. 有數(shù)據(jù) 53,30,37,12,45,24,96 ,從空二
53、叉樹開始逐個插入數(shù)據(jù)來形成二叉排序樹,若希望高度最小,應該選擇的序列是( )。A 45,24,53,12,37,96,30B 37,24,12,30,53,45,96C 12,24,30,37,45,53,96D 30,24,12,37,45,96,5312. 對有18 個元素的有序表作二分(折半)查找,則查找A3 的比較序列的下標可能為( )。A 1、 2、 39、 5、 2 、 3C 9、 5、 3 D 9、 4、 2 、 313. 對于順序存儲的有序表5 , 12 , 20, 26, 37, 42, 46 , 50 , 64 ,若采用折半查找,則查找元素26 的比較次數(shù)是( ) 。A.3 B. 3 C. 4D.514. 關于哈希查找的說法正確的是( ) 。A. 除留余數(shù)法是最好的B. 哈希函數(shù)的好壞要根據(jù)具體情況而定C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年店面租賃合同模板
- 2024年度版權許可合同:版權持有者與使用者的許可協(xié)議
- 2024年建筑工程抹灰工程專業(yè)分包協(xié)議
- 2024服裝加工訂單合同
- 2024年區(qū)塊鏈技術研究與應用服務承包合同
- 2024工業(yè)設備購銷合同模板
- 2024年企業(yè)購置綠色環(huán)保廠房合同
- 2024年度網(wǎng)絡安全防護及監(jiān)控合同
- 2024房地產(chǎn)合同模板房屋拆遷協(xié)議
- 2024年度9A文礦產(chǎn)資源開發(fā)利用合作合同
- 浙江省杭州市小升初數(shù)學真題重組卷
- 腸瘺護理查房
- 《水泥用鐵質校正料》
- 社會工作服務項目管理課件
- 全國職業(yè)院校技能大賽(酒水服務)考試題庫(含答案)
- 吊車司機作業(yè)安全行為規(guī)范(三篇)
- 鼠疫防治應急預案
- 《青藏鐵路精神》課件
- 事業(yè)單位獎勵審批表主要事跡教師300字范文六篇
- 2024農(nóng)村集體經(jīng)濟壯大之路
- 油船貨物操作教材配套課件第四章 惰性氣體系統(tǒng)
評論
0/150
提交評論