2023年電大數據結構本形成性考核冊作業_第1頁
2023年電大數據結構本形成性考核冊作業_第2頁
2023年電大數據結構本形成性考核冊作業_第3頁
2023年電大數據結構本形成性考核冊作業_第4頁
2023年電大數據結構本形成性考核冊作業_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數據結構(本)形成性考核作業冊使用說明本作業冊是中央廣播電視大學計算機科與技術專業(本科)數據結構(本)課程形成性考核的依據,與《數據結構(本科)》教材(李偉生主編,中央電大出版社出版)配套使用。數據結構(本)課程是中央廣播電視大學計算機科學技術專業的一門統設必修、學位課程,4學分,共72學時。其中實驗24學時,開設一學期。本課程的特點是綜合性、實踐性強,內容抽象,在專業中具有承上啟下的作用。因此,在學習本課程時,要注意理論聯系實際,結合教學內容進行上機實踐,認真完畢作業和實驗內容。本課程的總成績按百分制記分,其中形成性考核所占的比例為30%,終結性考試占70%(閉卷,答題時限為90分鐘)。課程總成績達成60分及以上者為合格,可以獲得該課程的學分。本課程的學位課程學分為70分,即課程總成績達成70分及以上者有資格申請專業學位。本課程共設計了4次形考作業,每次形考作業均涉及實驗內容,由各地電大根據學生對作業中各種題型練習和實驗的完畢情況進行考核。對于實驗內容規定按實驗規定認真完畢,并提交實驗報告。數據結構(本)課程作業作業1(本部分作業覆蓋教材第1-2章的內容)一、單項選擇題1.在數據結構中,從邏輯上可以把數據結構分為()。A.動態結構和靜態結構B.緊湊結構和非緊湊結構C.線性結構和非線性結構D.內部結構和外部機構2.下列說法中,不對的的是()。A.數據元素是數據的基本單位B.數據項是數據中不可分割的最小可標記單位C.數據可有若干個數據元素構成D.數據項可由若干個數據元素構成3.一個存儲結點存儲一個()。A.數據項B.數據元素C.數據結構D.數據類型4.數據結構中,與所使用的計算機無關的是數據的()。A.存儲結構B.物理結構C.邏輯結構D.物理和存儲結構5.下列的敘述中,不屬于算法特性的是()。A.有窮性B.輸入性C.可行性D.可讀性6.算法分析的目的是()。A.找出數據結構的合理性B.研究算法中的輸入和輸出的關系C.分析算法的效率以求改善D.分析算法的易懂性和文檔性7.數據結構是一門研究計算機中(

)對象及其關系的科學。A.數值運算

B.非數值運算C.集合

D.非集合8.算法的時間復雜度與()有關。A.所使用的計算機B.與計算機的操作系統C.與算法自身D.與數據結構9.設有一個長度為n的順序表,要在第i個元素之前(也就是插入元素作為新表的第i個元素),則移動元素個數為()。A.n-i+1B.n-iC.n-i-1D.i10.設有一個長度為n的順序表,要刪除第i個元素移動元素的個數為()。A.n-i+1B.n-iC.n-i-1D.i11.在一個單鏈表中,p、q分別指向表中兩個相鄰的結點,且q所指結點是p所指結點的直接后繼,現要刪除q所指結點,可用語句()。A.p=q->nextB.p->next=qC.p->next=qnextD.q->next=NULL12.在一個單鏈表中p所指結點之后插入一個s所指的結點時,可執行()。A.p->next=s;snext=pnextB.p->next=snext;C.p=s->nextD.s->next=p->next;p->next=s;13.非空的單向循環鏈表的尾結點滿足(

)(設頭指針為head,指針p指向尾結點)。A..P->next==NULLB.P==NULLC.P->next==headD.P==head14.鏈表不具有的特點是()。A.可隨機訪問任一元素B.插入刪除不需要移動元素C.不必事先估計存儲空間D.所需空間與線性表長度成正比15.帶頭結點的鏈表為空的判斷條件是(

)(設頭指針為head)。A.head==NULLB.head->next==NULL

C.head->next==head

D.head!=NULL16.在一個單鏈表中,p、q分別指向表中兩個相鄰的結點,且q所指結點是p所指結點的直接后繼,現要刪除q所指結點,可用語句(

)。A.p=q->nextB.p->next=q

C.p->next=q->nextD.q->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.98B.100C.102D.120.有關線性表的對的說法是()。A.每個元素都有一個直接前驅和一個直接后繼B.線性表至少規定一個元素C.表中的元素必須按由小到大或由大到下排序D.除了一個和最后一個元素外,其余元素都有一個且僅有一個直接前驅和一個直接后繼二、填空題1.在一個長度為n的順序存儲結構的線性表中,向第i(1in+1)個元素之前插入新元素時,需向后移動個數據元素。2.從長度為n的采用順序存儲結構的線性表中刪除第i(1in+1)個元素,需向前移動個元素。3.數據結構按結點間的關系,可分為4種邏輯結構:、、、。4.數據的邏輯結構在計算機中的表達稱為或。5.除了第1個和最后一個結點外,其余結點有且只有一個前驅結點和后繼結點的數據結構為,每個結點可有任意多個前驅和后繼結點數的結構為。6.算法的5個重要特性是、、、、。7.數據結構中的數據元素存在多對多的關系稱為________結構。8.數據結構中的數據元素存在一對多的關系稱為________結構。9.數據結構中的數據元素存在一對一的關系稱為________結構。10.規定在n個數據元素中找其中值最大的元素,設基本操作為元素間的比較。則比較的次數和算法的時間復雜度分別為________和________。11.在一個單鏈表中p所指結點之后插入一個s所指結點時,應執行________和p->next=s;的操作。12.設有一個頭指針為head的單向循環鏈表,p指向鏈表中的結點,若p->next==________,則p所指結點為尾結點。13.在一個單向鏈表中,要刪除p所指結點,已知q指向p所指結點的前驅結點。則可以用操作________。14.設有一個頭指針為head的單向鏈表,p指向表中某一個結點,且有p->next==NULL,通過操作________,就可使該單向鏈表構導致單向循環鏈表。15.每個結點只包含一個指針域的線性表叫。16.線性表具有和兩種存儲結構。17.數據的邏輯結構是從邏輯關系上描述數據,它與數據的關系無關,是獨立于計算機的。18.在雙向循環鏈表的每個結點中包含指針域,其中next指向它的,prior指向它的,而頭結點的prior指向,尾結點的next指向。19.單向循環鏈表是單向鏈表的一種擴充,當單向鏈表帶有頭結點時,把單向鏈表中尾結點的指針域由空指針改為;當單向鏈表不帶頭結點時,則把單向鏈表中尾結點的指針域由空指針改為指向。20.線性鏈表的邏輯關系時通過每個結點指針域中的指針來表達的。其邏輯順序和物理存儲順序不再一致,而是一種存儲結構,又稱為。三、問答題1.簡述數據的邏輯結構和存儲結構的區別與聯系,它們如何影響算法的設計與實現?2.解釋順序存儲結構和鏈式存儲結構的特點,并比較順序存儲結構和鏈式存儲結構的優缺陷。3.什么情況下用順序表比鏈表好?4.頭指針、頭結點、第一個結點(或稱首元結點)的區別是什么?5.解釋帶頭結點的單鏈表和不帶頭結點的單鏈表的區別。四、程序填空題1.下列是用尾插法建立帶頭結點的且有n個結點的單向鏈表的算法,請在空格內填上適當的語句。NODE*create1(n)/*對線性表(1,2,.....,n),建立帶頭結點的單向鏈表*/{NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));head=p;q=p;p->next=NULL;for(i=1;i<=n;i++){p=(NODE*)malloc(sizeof(NODE));(1);?(2); (3);?(4);}return(head);}2.下列是用頭插法建立帶頭結點的且有n個結點的單向鏈表的算法,請在空格內填上適當的語句。NODE*create2(n)/*對線性表(n,n-1,.....,1),建立帶頭結點的線性鏈表*/{NODE*head,*p,*q;inti;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個結點,請在空格內填上適當的語句。intdelete(NODE*head,inti){NODE*p,*q;intj;q=head;j=0;while((q!=NULL)&&(j<i-1))/*找到要刪除結點的直接前驅,并使q指向它*/{q=q->next;j++;}if(q==NULL)return(0);(1);(2);free(p);return(1);}五、完畢:實驗1――線性表根據實驗規定(見教材P201-202)認真完畢本實驗,并提交實驗報告。數據結構(本)課程作業2(本部分作業覆蓋教材第3-5章的內容)一、單項選擇題1.若讓元素1,2,3依次進棧,則出棧順序不也許為()。A.3,2,1B.2,1,3C.3,1,2D.1,3,22.一個隊列的入隊序列是1,2,3,4。則隊列的輸出序列是()。A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,13.向順序棧中壓入新元素時,應當()。A.先移動棧頂指針,再存入元素B.先存入元素,再移動棧頂指針C.先后順序無關緊要D.同時進行4.在一個棧頂指針為top的鏈棧中,將一個p指針所指的結點入棧,應執行()。A.top->next=p;B.p->next=top->next;top->next=p;C.p->next=top;top=p;D.p->next=top->next;top=top->next;5.在一個棧頂指針為top的鏈棧中刪除一個結點時,用x保存被刪結點的值,則執行()。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.一般情況下,將遞歸算法轉換成等價的非遞歸算法應當設立()。A.棧B.隊列C.堆棧或隊列D.數組7.表達式a*(b+c)-d的后綴表達式是()。A.abcd*+-B.abc+*d-C.abc*++d-D.-+*abcd8.判斷一個順序隊列sq(最多元素為m0)為空的條件是()。A.sq->rear-sq->front==m0B.sq->rear-sq->front-1==m0C.sq->front==sq->rearD.sq->front==sq->rear+19.判斷一個循環隊列Q(最多元素為m0)為空的條件是()。A.Q->front==Q->rearB.Q->front!=Q->rearC.Q->front==(Q->rear+1)%m0D.Q->front!=(Q->rear+1)%m010.判斷一個循環隊列Q(最多元素為m0)為空的條件是()。A.Q->front==Q->rearB.Q->front!=Q->rearC.Q->front==(Q->rear+1)%m0D.Q->front!=(Q->rear+1)%m011.判斷棧S滿(元素個數最多n個)的條件是()。A.s->top==0B.s->top!=0C.s->top==n-1D.s->top!=n-112.一個隊列的入隊順序是a,b,c,d,則離隊的順序是()。A.a,d,cbB.a,b,c,dC.d,c,b,aD.c,b,d,a13.假如以鏈表作為棧的存儲結構,則退棧操作時()。A.必須判斷棧是否滿B.判斷棧元素類型C.必須判斷棧是否空D.對棧不作任何判斷14.在解決計算機主機與打印機之間速度不匹配問題時通常設立一個打印數據緩沖區,主機將要輸出的數據依次寫入緩沖區中,而打印機則從緩沖區中取出數據打印,該緩沖區應當是一個()結構。A.堆棧B.隊列C.數組D.先性表15.一個遞歸算法必須涉及()。A.遞歸部分? B.終止條件和遞歸部分 C.迭代部分?D.終止條件和迭代部分16.從一個棧頂指針為top的鏈棧中刪除一個結點時,用變量x保存被刪結點的值,則執行()。A.x=top->data;top=top->next;B.x=top->data;C.top=top->next;x=top->data;D.top=top->next;x=data;17.在一個鏈隊中,假設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.以下陳述中對的的是()。A.串是一種特殊的線性表B.串的長度必須大于零C.串中元素只能是字母D.空串就是空白串20.設有兩個串p和q,其中q是p的子串,q在p中初次出現的位置的算法稱為()。A.求子串B.連接C.匹配D.求串長21.串是()。A.不少于一個字母的序列B.任意個字母的序列C.不少于一個字符的序列D.有限個字符的序列22.串的長度是指()。A.串中所含不同字母的個數B.串中所含字符的個數C.串中所含不同字符的個數D.串中所含非空格字符的個數23.若串S==“English”,其子串的個數是()。A.9B.16C24.下面關于串的敘述中,不對的的是()。A.串是字符的有限序列B.空串是由空格構成的串C.模式匹配是串的一種重要運算D.串即可以采用順序存儲,也可以采用鏈式存儲25.串與普通的線性表相比較,它的特殊性體現在()。A.順序的存儲結構B.鏈接的存儲結構C.數據元素是一個字符D.數據元素可以任意26.空串與空格串()。A.相同B.不相同C.也許相同D.無法擬定27.兩個字符串相等的條件是()。A.兩串的長度相等B.兩串包含的字符相同C.兩串的長度相等,并且兩串包含的字符相同D.兩串的長度相等,并且相應位置上的字符相同28.在實際應用中,要輸入多個字符串,且長度無法預定。則應當采用()存儲比較合適()。A.鏈式B.順序C.堆結構D.無法擬定29.一維數組A采用順序存儲結構,每個元素占用6個字節,第6個元素的存儲地址為100,則該數組的首地址是()。A.64B.28C.70D.9030.稀疏矩陣采用壓縮存儲的目的重要是()。A.表達變得簡樸B.對矩陣元素的存取變得簡樸C.去掉矩陣中的多余元素D.減少不必要的存儲空間的開銷31.一個非空廣義表的表頭()。A.不也許是原子B.只能是子表C.只能是原子D.可以是子表或原子32.常對數組進行的兩種基本操作是()。A.建立與刪除B.索引與、和修改C.查找和修改D.查找與索引33.設二維數組A[5][6]按行優先順序存儲在內存中,已知A[0][0]起始地址為1000,每個數組元素占用5個存儲單元,則元素A[4][4]的地址為()。A.1140B.1145C.1120D.112534.設有一個20階的對稱矩陣A,采用壓縮存儲的方式,將其下三角部分以行序為主序存儲到一維數組B中(數組下標從1開始),則矩陣中元素a9,2在一維數組B中的下標是()。A.41B.32C35.一個非空廣義表的表頭()。A.不也許是子表B.只能是子表C.只能是原子D.可以是子表或原子二、填空題1.棧是限定在表的一端進行插入和刪除操作的線性表,又稱為。2.隊列的特性是。3.往棧中插入元素的操作方式是:先,后。4.刪除棧中元素的操作方式是:先,后。5.循環隊列隊頭指針在隊尾指針位置,隊列是“滿”狀態6.在隊列的順序存儲結構中,當插入一個新的隊列元素時,尾指針,當刪除一個元素隊列時,頭指針。7.循環隊列的引入,目的是為了克服。8.向順序棧插入新元素分為三步:第一步進行判斷,判斷條件是;第二步是修改;第三步是把新元素賦給。同樣從順序棧刪除元素分為三步:第一步進行判斷,判斷條件是。第二步是把;第三步。9.假設以S和X分別表達入棧和出棧操作,則對輸入序列a,b,c,d,e一系列棧操作SSXSXSSXXX之后,得到的輸出序列為。10.一個遞歸算法必須涉及和。11.判斷一個循環隊列LU(最多元素為m0)為空的條件是。12.在將中綴表達式轉換成后綴表達式和計算后綴表達式的算法中,都需要使用棧,對于前者,進入棧中的元素為表達式中的,而對于后者,進入棧的元素為,中綴表達式(a+b)/c-(f-d/c)所相應的后綴表達式是。16.向一個棧頂指針為h的鏈棧中插入一個s所指結點時,可執行________和h=s;操作。(結點的指針域為next)17.從一個棧頂指針為h的鏈棧中刪除一個結點時,用x保存被刪結點的值,可執行x=h->data;和________。(結點的指針域為next)18.在一個鏈隊中,設f和r分別為隊頭和隊尾指針,則插入s所指結點的操作為________和r=s;(結點的指針域為next)19.在一個鏈隊中,設f和r分別為隊頭和隊尾指針,則刪除一個結點的操作為________。(結點的指針域為next)20.串是一種特殊的線性表,其特殊性表現在組成串的數據元素都是。21.串的兩種最基本的存儲方式是和。22.空串的長度是;空格串的長度是。23.需要壓縮存儲的矩陣可分為矩陣和矩陣兩種。24.設廣義表L=((),()),則表頭是,表尾是,L的長度是。25.廣義表A((a,b,c),(d,e,f))的表尾為。26.兩個串相等的充足必要條件是__________。27.設有n階對稱矩陣A,用數組s進行壓縮存儲,當ij時,A的數組元素aij相應于數組s的數組元素的下標為_______。(數組元素的下標從1開始)28.對稀疏矩陣進行壓縮存儲,矩陣中每個非零元素相應的三元組涉及該元素的_______、_______和_______三項信息。三、問答題1.簡述棧和一般線性表的區別。2.簡述隊列和一般線性表的區別。3.鏈棧中為什么不設頭結點?4.運用一個棧,則:(1)假如輸入序列由A,B,C組成,試給出所有也許的輸出序列和不也許的輸出序列。(2)假如輸入序列由A,B,C,D組成,試給出所有也許的輸出序列和不也許的輸出序列。5.用S表達入棧操作,X表達出棧操作,若元素入棧順序為1234,為了得到1342出棧順序,相應的S和X操作串是什么?6.有5個元素,其入棧順序為:A、B、C、D、E,在各種也許的出棧順序中,以元素C、D最先的順序有哪幾個?7.寫出以下運算式的后綴算術運算式⑴3x2+x-1/x+5⑵(A+B)*C-D/(E+F)+G8.在什么情況下可以用遞歸解決問題?在寫遞歸程序時應注意什么?9.簡述廣義表和線性表的區別和聯系。四、程序填空題1.在下面空格處填寫適當的語句,以使下面的循環隊列的入隊和出隊算法完整。defineTRUE1;defineFALSE0;defineMAXSIZE100;typedefcharelemtype;typedefstruct{Elemtypequeue[MAXSIZE];intfront,rear;}sequeuetype;SequeuetypeQ;intencqueue(sequeuetype*Q,elemtypex)if((1))Printf(〝Thecicularqueueisfull!\n〞);return(FALSE);else(2)(3)return(TRUE);}/*encqueue*/elemtypedel_cqueue(sequeuetype*Q)if((4))Printf(〝Thequeueisempty!\n〞)return(NULL);else(5)Return(Q-queue[Q->front]);/*del_cqueue*/2.在下面空格處填寫適當的語句,以使下面的鏈式隊列取出元素的算法完整。intwrite(LinkQueue*q){QueueNode*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);/*隊空時,頭尾指針指向頭結點*/}五、綜合題1.設棧S和隊列Q的初始狀態為空,元素e1,e2,e3,e4,e5和e6依次通過S,一個元素出棧后即進隊列Q,若6個元素出隊的序列是e2,e4,e3,e6,e5,e1,則棧S的容量至少應當是多少?2.假設用循環單鏈表實現循環隊列,該隊列只使用一個尾指針rear,其相應的存儲結構和基本算法如下;(1)初始化隊列initqueue(Q):建立一個新的空隊列Q。(2)入隊列enqueue(Q,x):將元素x插入到隊列Q中。(3)出隊列delqueue(Q):從隊列Q中退出一個元素。(4)取隊首元素gethead(Q):返回當前隊首元素。(5)判斷隊列是否為空:emptyqueue(Q)。(6)顯示隊列中元素:dispqueue(Q)。六、完畢:實驗2――棧、隊列、遞歸程序設計根據實驗規定(見教材P203)認真完畢本實驗,并提交實驗報告。數據結構(本)課程作業作業3(本部分作業覆蓋教材第6-7章的內容)一、單項選擇題1.假定一棵二叉樹中,雙分支結點數為15,單分支結點數為30,則葉子結點數為()。A.15B.16C2.二叉樹第k層上最多有()個結點。A.2kB.2k-1C.2k-1D.2k-13.二叉樹的深度為k,則二叉樹最多有()個結點。A.2kB.2k-1C.2k-1D.2k-14.設某一二叉樹先序遍歷為abdec,中序遍歷為dbeac,則該二叉樹后序遍歷的順序是()。A.abdecB.debacC.debcaD.abedc5.樹最適合于用來表達()。A.線性結構的數據B.順序結構的數據C.元素之間無前驅和后繼關系的數據D.元素之間有包含和層次關系的數據6.設a,b為一棵二叉樹的兩個結點,在后續遍歷中,a在b前的條件是()。A.a在b上方B.a在b下方C.a在b左方D.a在b右方7.權值為{1,2,6,8}的四個結點構成的哈夫曼樹的帶權途徑長度是()。A.18B.28C.19D.298.將具有150個結點的完全二叉樹從根這一層開始,每一層從左到右依次對結點進行編號,根結點的編號為1,則編號為69的結點的雙親結點的編號為()。A.33B.34C.35D.369.假如將給定的一組數據作為葉子數值,所構造出的二叉樹的帶權途徑長度最小,則該樹稱為()。A.哈夫曼樹B.平衡二叉樹C.二叉樹D.完全二叉樹10.下列有關二叉樹的說法對的的是()。A.二叉樹中度為0的結點的個數等于度為2的結點的個數加1B.二叉樹中結點個數必大于0C.完全二叉樹中,任何一個結點的度,或者為0或者為2D.二叉樹的度是211.在一棵度為3的樹中,度為3的結點個數為2,度為2的結點個數為1,則度為0的結點個數為()。A.4B.5C.6D.712.在一棵度具有5層的滿二叉樹中結點總數為()。A.31B.32C.33D.1613.運用n個值作為葉結點的權生成的哈夫曼樹中共包具有()個結點。A.nB.n+1C.2*nD.2*n-114.運用n個值作為葉結點的權生成的哈夫曼樹中共包具有()個雙支結點。A.nB.n-1C.n+1D.215.運用3、6、8、12這四個值作為葉子結點的權,生成一棵哈夫曼樹,該樹中所有葉子的最長帶權途徑長度為()。A.18B.16C.12D.316.在一棵樹中,()沒有前驅結點。A.分支結點B.葉結點C.樹根結點D.空結點17.在一棵二叉樹中,若編號為i的結點存在右孩子,則右孩子的順序編號為()。A.2iB.2i-1D.2i+118.設一棵哈夫曼樹共有n個葉結點,則該樹有()個非葉結點。A.nB.n-1C.n+119.設一棵有n個葉結點的二叉樹,除葉結點外每個結點度數都為2,則該樹共有()個結點。A.2nB.2n-1C.2n+1D.2n+220.一棵完全二叉樹共有5層,且第5層上有六個結點,該樹共有()個結點。A.20B.21C.23D21.在一個圖G中,所有頂點的度數之和等于所有邊數之和的()倍。A.1/2B.1C.2D.422.在一個有像圖中,所有頂點的入度之和等于所有頂點的出度之和的()倍。A.鄰接矩陣表達法B.鄰接表表達法C.逆鄰接表表達法D.鄰接表和逆鄰接表23.在圖的存儲結構表達中,表達形式唯一的是()。A.nB.n1C.n1D.n/224.一個具有n個頂點的無向完全圖包含()條邊。A.n(n1)B.n(n1)C.n(n1)/2D.n(n1)/225.一個具有n個頂點的有向完全圖包含()條邊。A.n(n1)B.n(n1)C.n(n1)/2D.n(n1)/226.對于具有n個頂點的圖,若采用鄰接矩陣表達,則該矩陣的大小為()。A.nB.n2C.n1D.(n1)27.對于一個具有n個頂點和e條邊的無向圖,若采用鄰接表表達,則表頭向量的大小為()。A.nB.eC.2nD.2e28.對于一個具有n個頂點和e條邊的無向圖,若采用鄰接表表達,則所有頂點鄰接表中的結點總數為()。A.nB.eC.2nD.2e29.在有向圖的鄰接表中,每個頂點鄰接表鏈接著該頂點所有()鄰接點。A.入邊B.出邊C.入邊和出邊D.不是入邊也不是出邊30.在有向圖的逆鄰接表中,每個頂點鄰接表鏈接著該頂點所有()鄰接點。A.入邊B.出邊C.入邊和出邊D.不是入邊也不是出邊31.鄰接表是圖的一種()。A.順序存儲結構B.鏈式存儲結構C.索引存儲結構D.散列存儲結構32.假如從無向圖的任一頂點出發進行一次深度優先搜索即可訪問所有頂點,則該圖一定是()。A.完全圖B.連通圖C.有回路D.一棵樹33.下列有關圖遍歷的說法不對的的是()。A.連通圖的深度優先搜索是一個遞歸過程B.圖的廣度優先搜索中鄰接點的尋找具有“先進先出”的特性C.非連通圖不能用深度優先搜索法D.圖的遍歷規定每一頂點僅被訪問一次34.無向圖的鄰接矩陣是一個()。?A.對稱矩陣B.零矩陣C.上三角矩陣D.對角矩陣35.圖的深度優先遍歷算法類似于二叉樹的()遍歷。A.先序B.中序C.后序D.層次36.已知下圖所示的一個圖,若從頂點V1出發,按深度優先搜索法進行遍歷,則也許得到的一種頂點序列為()。A.V1V2V4V8V3V5V6V7B.V1V2V4V5V8V3V6V7C.V1V2V4V8V5V3V6V7D.V1V3V6V7V2V4V5V8V6V6V7V1V2V3V8V4V5二、填空題1.結點的度是指結點所擁有的。2.樹的度是指。3.度大于0的結點稱作或。4.度等于0的結點稱作或。5.在一棵樹中,每個結點的或者說每個結點的稱為該結點的,簡稱為孩子。6.一個結點稱為其后繼結點的。7.具有的結點互稱為兄弟結點,簡稱為兄弟。8.每個結點的所有子樹中的結點被稱為該結點的。9.從根結點到該結點所經分支上的所有結點稱為該結點的。10.樹的深度或高度是指。11.m(m0)棵互不相交的樹的集合稱為。12.度為k的樹中的第i層上最多有結點。13.深度為k的二叉樹最多有結點。14.在一棵二叉樹中,假如樹中的每一層都是滿的,則稱此樹為;但假如出最后一層外,其余層都是滿的,并且最后一層是滿的,或者是在缺少若干連續個結點,則稱此二叉樹為。15.具有n個結點的完全二叉樹的深度是。16.先序遍歷二叉樹的的操作定義為;若二叉樹為空,則為空操作,否則進行如下操作,訪問二叉樹的;先序遍歷二叉樹的,先序遍歷二叉樹的。17.中序遍歷二叉樹的的操作定義為;若二叉樹為空,則為空操作,否則進行如下操作,中序遍歷二叉樹的;訪問而叉樹的,中序遍歷二叉樹的。18.后序遍歷二叉樹的的操作定義為;若二叉樹為空,則為空操作,否則進行如下操作,后序遍歷二叉樹的;后序遍歷二叉樹的,訪問而叉樹的。19.將樹中結點賦上一個有著某種意義的實數,稱此實數為該結點的。20.樹的帶權途徑長度為樹中所有葉子結點的。21.哈夫曼樹又稱為,它是n個帶權葉子結點構成的所有二叉樹中帶權途徑長度WPL。22.若以4,5,6,7,8作為葉子結點的權值構造哈夫曼樹,則其帶權途徑長度是。23.具有m個葉子結點的哈夫曼樹共有結點。24.在圖中,任何兩個數據元素之間都也許存在關系,因此圖的數據元素之間是一種的關系。25.圖的鄰接矩陣表達法是用一個來表達圖中頂點之間的相鄰關系。26.鄰接表是圖中的每個頂點建立一個鄰接關系的。27.圖的遍歷是從圖的某一頂點出發,按照一定的搜索方法對圖中各做訪問的過程。28.圖的深度優先搜索遍歷類似于樹的遍歷。29.圖的廣度優先搜索類似于樹的遍歷。30.具有n個頂點的有向圖的鄰接矩陣,其元素個數為。30.具有n個頂點的無向圖至少有條邊,才干保證其為一個連通圖。31.圖常用的兩種存儲結構是和。32.一個AOV網(頂點活動圖)應當是一個。即不應當帶有回路,否則回路上的所有活動都。33.用鄰接矩陣存儲有向圖G,其第i行的所有元素之和等于頂點i的。34.在有n個頂點的有向圖中,每個頂點的度最大可達。35.在一個帶權圖中,兩頂點之間的最段途徑最多通過條邊。36.為了實現圖的深度優先搜索遍歷,其非遞歸的算法中需要使用的一個輔助數據結構為。三、綜合題1.寫出如下圖所示的二叉樹的先序、中序和后序遍歷序列。aajfghidceb2.已知某二叉樹的先序遍歷結果是:A,B,D,G,C,E,H,L,I,K,M,F和J,它的中序遍歷結果是:G,D,B,A,L,H,E,K,I,M,C,F和J,請畫出這棵二叉樹,并寫出該二叉樹后續遍歷的結果。3.已知一棵完全二叉樹共有892個結點,求⑴樹的高度⑵葉子結點數⑶單支結點數⑷最后一個非終端結點的序號4.給出滿足下列條件的所有二叉樹。(1)先序和中序相同(2)中序和后序相同(3)先序和后序相同5.假設通信用的報文由9個字母A、B、C、D、E、F、G、H和I組成,它們出現的頻率分別是:10、20、5、15、8、2、3、7和30。請請用這9個字母出現的頻率作為權值求:(1)設計一棵哈夫曼樹;(2)計算其帶權途徑長度WPL;(3)寫出每個字符的哈夫曼編碼。6.請根據以下帶權有向圖G(1)給出從結點v1出發分別按深度優先搜索遍歷G和廣度優先搜索遍歷G所得的結點序列;(2)給出G的一個拓撲序列;(3)給出從結點v1到結點v8的最短途徑。7.已知無向圖G描述如下:G=(V,E)V={V1,V2,V3,V4,V5}E={(V1,V2),(V1,V4),(V2,V4),(V3,V4),(V2,V5),(V3,V4),(V3,V5)}(1)畫出G的圖示;(2)然后給出G的鄰接矩陣和鄰接表;(3)寫出每個頂點的度。8.回答下列問題:⑴對于存儲結構采用鄰接矩陣的無向圖,如何判斷下列有關問題?①圖中有多少條邊?②任意兩頂點間是否有邊相連?③任意一個頂點的度是多少?⑵對于存儲結構采用鄰接表的有向圖,如何判斷下列有關問題?①圖中有多少條邊?②圖中是否存在從Vi到Vj的邊?③如何求頂點Vi的入度和出度?四、程序填空題1.下面函數的功能是返回二叉樹BT中值為X的結點所在的層號,請在劃有橫線的地方填寫合適內容。intNodeLevel(structBinTreeNode*BT,charX){if(BT==NULL)return0;/*空樹的層號為0*/elseif(BT->data==X)return1;/*根結點的層號為1*//*向子樹中查找X結點*/else{intc1=NodeLevel(BT->left,X);if(c1>=1)___(1)___________;intc2=______(2)__________;if___(3)__________________;//若樹中不存在X結點則返回0elsereturn0;}}2.下面函數的功能是按照圖的深度優先搜索遍歷的方法,輸出得到該圖的生成樹中的各條邊,請在劃有橫線的地方填寫合適內容。voiddfstree(adjmatrixGA,inti,intn){intj;visited[i]=1;(1)if(GA[i][j]!=0&&GA[i][j]!=MaxValue&&!visited[j]){printf("(%d,%d)%d,",i,j,GA[i][j]);(2)}}五、算法設計題1.寫一個將一棵二叉樹復制給另一棵二叉樹的算法。2.根據下面函數聲明編寫出求一棵二叉樹中葉子結點總數的算法,該總數值由函數返回。假定參數BT初始指向二叉樹的根結點。intBTreeLeafCount(structBTreeNode*BT);3.已知有n個頂點的有向圖鄰接表,設計算法分別實現下列功能:(1)求出圖G中每個頂點的出度、入度。(2)計算圖中度為0的頂點數。六、完畢:實驗3――棧、隊列、遞歸程序設計實驗4——圖的存儲方式和應用根據實驗規定(見教材P203)認真完畢本實驗,并提交實驗報告。數據結構(本)課程作業(4)(本部分作業覆蓋教材第8-9章的內容)一、單項選擇題1.順序查找方法適合于存儲結構為()的線性表。A.散列存儲B.索引存儲C.散列存儲或索引存儲D.順序存儲或鏈接存儲2.對線性表進行二分查找時,規定線性表必須()。A.以順序存儲方式B.以鏈接存儲方式C.以順序存儲方式,且數據元素有序D.以鏈接存儲方式,且數據元素有序3.假如規定一個線性表既能較快地查找,又能動態適應變化規定,可以采用()查找方法。A.順序B.分塊C.折半D.散列4.對于一個線性表,若規定既能進行較快地插入和刪除,又規定存儲結構可以反映數據元素之間的邏輯關系,則應當()。A.以順序存儲方式B.以鏈接存儲方式C.以索引存儲方式D.以散列存儲方式5.采用順序查找方法查找長度為n的線性表時,每個元素的平均查找長度為()。A.nB.n/2C.(n+1)/2D.(n-1)/26.采用折半查找方法查找長度為n的線性表時,每個元素的平均查找長度為()。A.O(n*n)B.O(nlog2n)C.O(n)D.s(log2n)7.哈希函數有一個共同的性質,即函數值應當以()取其值域的每個值。A.最大約率B.最小概率C.平均概率D.同等概率8.有一個長度為10的有序表,按折半查找對該表進行查找,在等概率情況下查找成功的平均比較次數為()。A.29/10B.31/10C9.已知一個有序表為{11,22,33,44,55,66,77,88,99},則順序查找元素55需要比較()次。A.3B.410.順序查找法與二分查找法對存儲結構的規定是()。A.順序查找與二分查找均只是合用于順序表B.順序查找與二分查找均既合用于順序表,也合用于鏈表C.順序查找只是合用于順序表D.二分查找合用于順序表11.有數據{53,30,37,12,45,24,96},從空二叉樹開始逐個插入數據來形成二叉排序樹,若希望高度最小,應當選擇的序列是()。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個元素的有序表作二分(折半)查找,則查找A[3]的比較序列的下標也許為()。A.1、2、3B.9、5、2、3C.9、5、3D.9、4、2、313.對于順序存儲的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,則查找元素26的比較次數是()。A.3B.3C.4D.14.關于哈希查找的說法對的的是()。A.除留余數法是最佳的B.哈希函數的好壞要根據具體情況而定C.刪除一個元素后,不管用哪種方法解決沖突,都只需簡樸地把該元素刪除掉D.由于沖突是不可避免的,所以裝填因子越小越好15.在所有的排序方法中,關鍵字比較的次數與記錄初始排列秩序無關的是()。A.冒泡排序B.希爾排序C.直接選擇排序D.直接插入排序16.從未排序序列中依次取出元素與已經排好序的序列中的元素作比較。將其放入已排序序列的對的的位置上,此方法稱為()A.插入排序B.選擇排序C.互換排序D.歸并排序17.從未排序序列中挑選元素,并將其放入已排序序列的一端,此方法稱為()。A.插入排序B.互換排序C.選擇排序D.歸并排序18.依次將每兩個相鄰的有序表合并成一個有序表的排序方法稱為()。 A.插入排序B.互換排序C.選擇排序D.歸并排序19.當兩個元素出現逆序的時候就互換位置,這種排序方法稱為()。A.插入排序B.互換排序C.選擇排序D.歸并排序20.每次把待排序的區間劃分為左、右兩個子區間,其中左區間中記錄的關鍵字均小于等于基準記錄的關鍵字,右區間中記錄的關鍵字均大于等于基準記錄的關鍵字,這種排序稱為()。A.插入排序B.快速排序C.堆排序D.歸并排序21.在正常情況下,直接插入排序的時間復雜度為()。A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)22.在正常情況下,冒泡排序的時間復雜度為()。A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)23.在歸并排序中,歸并趟數的數量級為()。A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)24.在待排序元素基本有序的情況下,效率最高的排序方法是()。A.插入排序B.快速排序C.堆排序D.歸并排序25.下面幾種排序方法中,規定內存量最大的是()。A.插入排序B.互換排序C.選擇排序D.歸并排序26.在下列排序方法中,關鍵字比較的次數與記錄的初始排列秩序無關的是()。A.希爾排序B.冒泡排序C.插入排序D.選擇排序27.快速排序方法在()情況下最不利于發揮其長處。A.要排序的數據量太大B.要排序的數據中具有多個相同值C.要排序的數據已基本有序D.要排序的數據個數為奇數28.下述幾種排序方法中,平均情況下占用內存量最大的是()方法。A.插入排序B.選擇排序C.快速排序D.歸并排序29.若構造一棵具有n個結點的二叉樹排序,在最壞的情況下,其深度不會超過()。A.n/2B.nC.(n1)/2D.n130.對數據元素序列(49,72,68,13,38,50,97,27)進行排序,前三趟排序結果時的結果依次為第一趟:49,72,68,13,38,50,97,27;第二趟:49,68,72,13,38,50,97,27;第三趟:13,49,68,72,38,50,97,27。該排序采用的方法是()。A.插入排序法B.選擇排序法C.冒泡排序法D.堆積排序法31.對具有n個元素的任意序列采用插入排序法進行排序,排序趟數為()。A.n-1B.nC.n+1D.log2n32.對序列(49,38,65,97,76,13,47,50)采用直接插入排序法進行排序,要把第七個元素47插入到已排序中,為尋找插入的合適位置需要進行()次元素間的比較。A.3B.4C.5D.33.下面四種排序方法中,()是一種穩定性排序方法。A.插入排序法B.選擇排序法C.快速排序法D.希爾排序法34.一組記錄的關鍵字序列為(46,79,56,38,40,84),運用快速排序,以第一個關鍵字為分割元素,通過一次劃分后結果為()。A.40,38,46,79,56,84B.40,38,46,84,56,79C.40,38,46,56,79,84D.38,40,46,56,79,8435.一組記錄的關鍵字序列為(46,79,56,38,40,84),運用堆排序的方法建立的初始堆為()。A.79,46,56,38,40,84B.84,79,56,38,40,46C.84,79,56,46,40,38,D.84,56,79,40,46,3836.一組記錄的關鍵字序列為(25,48,16,35,79,82,23,40,36,72),其中,具有5個長度為2的有序表,按歸并排序的方法對該序列進行一趟歸并后的結果為()。A.16,25,35,48,23,40,79,82,36,72B.16,25,35,48,79,82,23,36,40,72C.16,25,48,35,79,82,23,36,40,72D.16,25,35,48,79,23,36,40,82,7237.已知10個數據元素為(54,28,16,34,73,62,95,60,26,43),對該數列從小到到大排序,通過一趟冒泡排序后的序列為()。A.16,28,34,54,73,62,60,26,43,95B.28,16,34,54,62,73,60,26,43,95C.28,16,34,54,62,60,73,26,43,95D.16,28,34,54,62,60,73,26,43,9538.用某種排序的方法對線性表(25,84,21,47,15,27,68,35,20)進行排序時,元素序列的變化情況如下:(1)25,84,21,47,15,27,68,35,20(2)20,15,21,25,47,27,68,35,84(3)15,20,21,25,35,27,47,68,84(4)15,20,21,25,27,35,47,68,84其所采用的排序方法是()。A.希爾排序B.歸并排序C.快速排序D.直接選擇排序二、填空題1.在各種查找方法中,平均查找長度與結點個數n無關的查找方法是。2.假如對查找表只進行查詢某個特定的數據元素是否在查找表中,以及查找

溫馨提示

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

評論

0/150

提交評論