❶ 資料結構試題求正確答案
1.內部排序和外部排序
2.鄰接表和十字連結串列
3.線性表,樹,圖
4.63
5.θ(n),θ(lg n),θ(n lg n)
6.直接定址法晌運,隨機法
7.連結串列
8.根節點0,葉節點悉碧4,9,10,7,8,最大度的是0,節點0的後代是1,2,3
9.空的條件棧頂位置是m-1.滿的條件是棧頂位置是-1
10,資料結構和抽象資料型別關系:a.「資料結構」定義為一個二元組(D,S),即兩個集合,D是資料元素的集合,S是資料元素之間一個或多個關系的集合。
b.「抽象資料型別」本質是「資料型別」,與計算機相關,涉及資料的儲存及如何用儲存來反應資料元素之間的關系。它定義為一個三元組(D,S,P),加上的P是定義的一組針對儲存的資料操作(如插入,刪除,排序等)。
c.總之「抽象資料型別」是「物理」概念,「資料結構」是「邏輯」概念。「抽象資料型別」來實現「資料結構」。
以上回答你滿意么?
1.內部排序和外部排序
2.鄰接表和十字連結串列
3.線性表,樹,圖
4.63
5.θ(n),θ(lg n),θ(n lg n)
6.直接定址法,隨機法
7.連結串列
8.根節點0,葉節點4,9,10,7,8,最大度的是0,節點0的後代是1,2,3
9.空的條件棧頂位置是m-1.滿的條件是棧頂位置是-1
10,資料結構和抽象資料型別關系:a.「資料結構」定義為一個二元組(D,S),即兩個集合,D是資料元素的集合,S是資料元素之間一個或多個關系的集合。
b.「抽象資料型別」本質是「資料型別」,與計算機相關,涉及資料的儲存及如何用儲存來反應資料元素之間的關系。它定義為一個三元組(D,S,P),加上的P是定義的一組針對儲存的資料操作(如插入,刪除,排序等)。
c.總之「抽象資料型別」是「物理」概念,「資料結構」是「邏輯」概念。「抽象資料型別」來實現「資料結構」。
希望對你能有所幫助。
《資料結構》試題一、選擇題(每小題2分,共30分)1. 若某線性表中最常用的操作是取第i 個元素和找第i個元素的前趨元素,則採用( )儲存方式最節省時間。A、單鏈表 B、雙鏈表 C、單向迴圈 D、順序表2. 串是任意有限個( )A、符號構成的序列 B、符號構成的集合C、字元構成的序列 D、字元構成的集合3. 設矩陣A(aij ,l≤i,j≤ 10)的元素滿足:aij≠0(i≥j, l≤i, j≤ 10)aij=0 (i<j, l≤i, j≤ 10)現將A的所有非0元素以行序為主序存放在首地址為2000的儲存區域中,每個元素佔有4個單元,則元素A[9][5]的首址為A、2340 B、2336 C、2164 D、睜謹舉21604. 如果以連結串列作為棧的儲存結構,則退棧操作時( )A、 必須判別棧是否滿 B、 對棧不作任何判別C、 必須判別棧是否空 D、 判別棧元素的型別5. 設陣列Data[0..m]作為迴圈佇列SQ的儲存空間,front為隊頭指標,rear為隊尾指標,則執行出隊操作的語句為( )A、front=front+1 B、front=(front+1)% mC、rear=(rear+1)%m D、front=(front+1)%(m+1)6. 深度為6(根的層次為1)的二叉樹至多有( )結點。A、 64 B、32 C、31 D、637. 將含100個結點的完全二叉樹從根這一層開始,每層上從左到右依次對結點編號,根結點的編號為1。編號為49的結點X的雙親編號為( )A、24 B、25 C、23 D、無法確定8. 設有一個無向圖G=(V,E)和G』=(V』,E』)如果G』為G的生成樹,則下面不正確的說法是( )A、G』為G 的子圖 B、G』為G 的邊通分量C、G』為G的極小連通子圖且V』=V D、G』為G的一個無環子圖9. 用線性探測法查詢閉散列表,可能要探測多個雜湊地址,這些位置上的鍵值( )A、 一定都是同義詞 B、一定都不是同義詞 C、都相同 D、不一定都是同義詞10. 二分查詢要求被查詢的表是( )A、 鍵值有序的連結表 B、連結表但鍵值不一定有序C、 鍵值有序的順序表 D、順序表但鍵值不一定有序11. 當初始序列已經按鍵值有序,用直接插入演演算法對其進行排序,需要迴圈的次數為( )A、n2 B、nlog2n C、log2n D、n-1 12. 堆是一個鍵值序列{k1,k2,…, kn},對i=1,2,…,|_n/2_|,滿足( )A、ki≤k2i≤k2i+1 B、ki<k2i+1<k2iC、ki≤k2i且ki≤k2i+1(2i+1≤n) D、ki≤k2i 或ki≤k2i+1(2i+1≤n) 13.一個具有n個頂點的無向完全圖的邊數為( )A、n(n+1)/2 B、n(n-1)/2 C、n(n-1) D、n(n+1)14.在索引順序表中查詢一個元素,可用的且最快的方法是( )A、用順序查詢法確定元素所在塊,再用順序查詢法在相應塊中查詢B、用順序查詢法確定元素所在塊,再用二分查詢法在相應塊中查詢C、用二分查詢法確定元素所在塊,再用順序查詢法在相應塊中查詢D、用二分查詢法確定元素所在塊,再用二分查詢法在相應塊中查詢15.若某線性表中最常用的操作是在最後一個元素之後插入一個元素和刪除最後一個元素,則採用( )儲存方式最節省運算時間。A、 單鏈表 B、雙鏈表C、帶頭結點的雙迴圈連結串列D、容量足夠大的順序表 二、判斷題(每小題1分,共10分)1.雙鏈表中至多隻有一個結點的後繼指標為空。( )2.在迴圈佇列中,front指向佇列中第一個元素的前一位置,rear指向實際的隊尾元素,佇列為滿的條件是front=rear。( )3.對連結串列進行插入和刪除操作時,不必移動結點。( )4.棧可以作為實現程式設計語言過程呼叫時的一種資料結構。( )5.在一個有向圖的拓樸序列中,若頂點a在頂點b之前,則圖中必有一條弧<a,b>。( )i6.對有向圖G,如果從任一頂點出發進行一次深度優先或廣度優先搜尋就能訪問每個頂點,則該圖一定是完全圖。( )7.「順序查詢法」是指在順序表上進行查詢的方法。( )8.向二叉排序樹插入一個新結點時,新結點一定成為二叉排序樹的一個葉子結點。()9.鍵值序列{A,C,D,E,F,E,F}是一個堆。10.二路歸並時,被歸並的兩個子序列中的關鍵字個數一定要相等。() 三、填空題(每小題2分,共20分)1.在帶有頭結點的單鏈表L中,若要刪除第一個結點,則需執行下列三條語句:________;L->next=U->next;free(U);2.有一個長度為20的有序表採用二分查詢方法進行查詢,共有______個元素的查詢長度為3。3.採用氣泡排序對有n個記錄的表A按鍵值遞增排序,若L的初始狀態是按鍵值遞增,則排序過程中記錄的比較次數為_____。若A的初始狀態為遞減排列,則記錄的交換次數為_______。4.在無頭結點的雙鏈表中,指標P所指結點是第一個結點的條件是______。5.G為無向圖,如果從G的某個頂點出發,進行一次廣度優先搜尋,即可訪問圖的每個頂點,則該圖一定是_____圖。6.如果一個有向圖中沒有______,則該圖的全部頂點可能排成一個拓撲序列。7.深度為8(根的層次號為1)的滿二叉樹有______個葉子結點。 8.將一棵有100個結點的完全二叉樹按層編號,則編號為49的結點X,其雙親PARENT(X)的編號為_______。9.設某閉散列表HT未滿,雜湊函式H(KEY)為鍵值第一字母在字母表中的序號,處理沖突方法為線性探測法,請在下列演演算法劃線處填上適當內容,以實現按鍵值第一字母的順序輸出閉散列表中所有鍵值的演演算法。void prinord(keytype HT[m]) { for(i=1;i<=26;i++) { j=i; while(____________________) { if (____________________) printf(「datatype」,HT[j]); j=(j+1)% m; } } }10.設有一個鏈隊,結點結構為data|next,front為隊頭指標,rear為隊尾指標,當執行入隊操作時需執行下列語句:malloc(p);p->data=x; p->next=NULL;________________;________________; 四、簡答題:(每小題4分,共20分)1. 對於一個有10000個結點的二叉樹,樹葉最多有多少個?最少有多少個?2. 已知一棵二叉樹的中序序列和後序序列分別為: DBGEACHF和DGEBHFCA,則該二叉樹的前序序列是什麼?3. 設有1000個無序的元素,需排出前10個最大(小)的元素,你認為採用哪種排序方法最快?為什麼?4. 在KMP演演算法中,已知模式串為ADABCADADA ,請寫出模式串的next[j]函式值。5. 中序遍歷的遞回演演算法平均空間復雜度為多少? 五、 演演算法設計題(每小題10分,共20分)1. 試編寫一個演演算法,判斷一給定的整型陣列a[n]是不是一個堆。2. 一棵二叉樹的繁茂度定義為各層結點數的最大值與樹的高度的乘積。試寫一高效演演算法,求二叉樹的繁茂度。參考答案一、選擇題1、D 2、C 3、D 4、C 5、D 6、D 7、A 8、B 9、D 10、C 11、D 12、C 13、B14、C15、D二、判斷題 1. √ 2. × 3. √ 4. √ 5. × 6. × 7. × 8. √ 9. √ 10. × 三、填空題1.U=L - > next2.4。3.n-1、n(n-1)/2。4.p - > prior = NULL。5.連通6.迴路或環7.28-1 = 27 = 1288.249.HT[j]!=NULL或HT[j]不為空、H(HT[j])=I10.rear - > next = p、rear = p四、簡答題:1. 答: 最多是完全二叉樹的形態,即5000個葉子;最少是單支樹的形態,即1個葉子。2.答:是:ABDEGCFH3. 答:用錦標賽排序或堆排序很合適,因為不必等全部元素排完就能得到所需結果,時間效率為O(nlog2n); 即O(1000log21000)=O(10000) 錦標賽排序的准確比較次數為:n-1+9log2n=999+9log21000=999+9×10=1089堆排序的准確比較次數為:n-1+9log2n=999+9log21000=999+9×10=1089若用氣泡排序也較快,最多耗費比較次數為(n-1+n-2+……+n-10)=10n-55=10000-55=9945(次)4. 答: 01121123435. 答: 要考慮遞回時佔用了棧空間,但遞回次數最多不超過樹的高度,所以空間復雜度為O(log2n) 五、 演演算法設計題1.解:提示:堆的定義是:ki<k2i和K2i+1 void SortA(sqlist &A, int n) { if(n==0) return(0); 空表if (a[1]<a[2]) { for( i=1; i<=n/2; i++) if (a[i]>a[2*i]|| a[i]>a[2*i+1])return(-1);return(minleap)};else { for( i=1; i<=n/2; i++) if (a[i]<a[2*i]|| a[i]<a[2*i+1])return(-1);return(「maxleap」)};}2. 要用層次遍歷以及佇列來處理,可以增設一個寬度計數器,在統計完每一層的結點個數之後,再從計數器中挑出最大值。typedef struct { BTNode node; int layer; layer是結點所在層數 } BTNRecord, r ; int Width(Bitree T ){ 求樹寬 int count[ ]; 增開count向量,存放各層對應的結點數 InitQueue(Q); 佇列初始化,Q的元素為BTNRecord型別 EnQueue(Q,{T, 0}); 根結點入隊, 0 表示count[0],下標值 while(!QueueEmpty(Q)) { DeQueue(Q, r); 結點出隊 count[r.layer]++; 出隊時再把結點對應層的計數器加if(r.node->lchild) EnQueue(Q,{r.node->lchild, r.layer+1}); if(r.node->rchild) EnQueue(Q,{r.node->rchild, r.layer+1}); } 按層序入隊時要隨時標注結點所在層號 h=r.layer; 最後一個佇列元素所在層就是樹的高度 for(maxn=count[0], i=1; h; i++) if(count[i]>maxn) maxn=count[i]; 求出哪一層結點數最多 return (h*maxn)} Width
我有資料結構那本書的答案,不知道你需不需要,需要的話發訊息聯絡。
嗨,你好!
網殼是網架的曲面表現形式。網殼結構又包括單層網殼結構、預應力網殼結構、板錐網殼結構、肋環型索承網殼結構、單層叉筒網殼結構等。
( l )強度、剛度分析
網殼結構的內力和位移可按彈性階段進行計算。網殼結構根據網殼型別、節點構造,設計階段可分別選用不同的方法進行內力、位移計算:
l )雙層網殼宜採用空間桿系有限元法進行計算;
2 )單層網殼宜採用空間梁系有限元法進行計算;
3 )對單、雙層網殼在進行方案選擇和初步設計時可採用擬殼分析法進行估算。
網殼結構的外荷載可按靜力等效的原則將節點所轄區域內的荷載集中作用在該節點上。分析雙層網殼時可假定節點為鉸接,桿件只承受軸向力;分析單層網殼時假定節點為剛接,桿件除承受軸向力外,還承受彎矩、剪力等。當桿件上作用有區域性荷載時,必須另行考慮區域性彎曲內力的影響。對於單個球面網殼、圓柱面網殼和雙曲拋物面網殼的風載體型系數,可按《建築結構荷載規范》(GB 50009 一2001 ) 取值;對於多個連線的球面網殼、圓柱面網殼和雙曲拋物面網殼,以及各種復雜體形的網殼結構,應根據模型風洞試驗確定風載體型系數。
( 2 )穩定性分析
網殼的穩定性可按考慮幾何非線性的有限元分析方法(荷載認一位移全過程分析)進行計算,分析中可假定材料保持為線彈性。用非線性理論分析網殼穩定性時,一般採用空間桿系非線性有限元法,關鍵是臨界荷載的確定。單層網殼宜採用空間梁系有限元法進行計算。
球面網殼的全過程分析可按滿跨均布荷載進行,圓柱面網殼和橢圓拋物面網殼宜補充考慮半跨活荷載分布。進行網殼全過程分析時應考慮初始曲面形狀的安裝偏差影響;可採用結構的最低屈曲模態作為初始缺陷分布模態,其最大計算值可按網殼跨度的1 /300 取值。
進行網殼結構全過程分析求得的第一個臨界點處的荷載值,可作為該網殼的極限承載力。將極限承載力除以系數K 後,即為按網殼穩定性確定的容許承載力(標准值)。
( 3 )抗震分析
在設防烈度為7 度的地區,網殼結構可不進行豎向抗震計算,但必須進行水平抗震計算。在設防烈度為8 度、9 度地區必須進行網殼結構水平與豎向抗震計算。
摘錄 網路
可以考試的,報班意義不大。把重要的知識點整理一下,准備好筆記本和錯題集,錯題集用來記錄自己做錯的題,筆記本記錄一些容易忽略細節和重點。 做題不一定要做難題,基礎是根本,每次考試不要著重在一個題目上,要放寬心態,不要急,總之,要自信,相信自己一定可
《資料結構》期末考試試卷( A )
一、 選擇題(每小題2分,共24分)
1.計算機識別、儲存和加工處理的物件被統稱為( A )
A.資料 B.資料元素
C.資料結構 D.資料型別
2.棧和佇列都是( A )
A.限制存取位置的線性結構 B.順序儲存的線性結構
C.鏈式儲存的線性結構 D.限制存取位置的非線性結構
3.鏈棧與順序棧相比,比較明顯的優點是( D )
A.插入操作更加方便 B.刪除操作更加方便
C.不會出現下溢的情況 D.不會出現上溢的情況
4.採用兩類不同儲存結構的字串可分別簡稱為( B )
A.主串和子串 B.順序串和鏈串
C.目標串和模式串 D.變數串和常量串
5. 一個向量第一個元素的儲存地址是100,每個元素的長度為2,則第5個元素的地址是:B
A. 110 B .108
C. 100 D. 120
6.串是一種特殊的線性表,其特殊性體現在:B
A.可以順序儲存 B .資料元素是一個字元
C. 可以連結儲存 D. 資料元素可以是多個字元
7.設高度為h的二叉樹上只有度為0和度為2的結點,則此類二叉樹中所包含的結點數至少為: C
A. 2h B .2h-1
C. 2h+1 D. h+1
軟體開發網 mscto.
8.樹的基本遍歷策略可分為先根遍歷和後根遍歷;二叉樹的基本遍歷策略可分為先序遍歷、中序遍歷和後序遍歷。這里,我們把 由樹轉化得到的二叉樹叫做這棵樹對應的二叉樹。下列結論哪個正確? A
A. 樹的先根遍歷序列與其對應的二叉樹的先序遍歷序列相同
B .樹的後根遍歷序列與其對應的二叉樹的後序遍歷序列相同
C. 樹的先根遍歷序列與其對應的二叉樹的中序遍歷序列相同
D. 以上都不對
9.一個有n個頂點的無向圖最多有多少邊?C
A. n B .n(n-1)
C. n(n-1)/2 D. 2n
10.在一個圖中,所有頂點的度數之和等於所有邊數的多少倍?C
A. 1/2 B .1
C. 2 D. 4
11.當在二叉排序樹中插入一個新結點時,若樹中不存在與待插入結點的關鍵字相同的結點,且新結點的關鍵字小於根結點的關鍵字,則新結點將成為( A )
A.左子樹的葉子結點 B.左子樹的分支結點
C.右子樹的葉子結點 D.右子樹的分支結點
軟體開發網 mscto.
12.對於雜湊函式H(key)=key%13,被稱為同義詞的關鍵字是( D )
A.35和41 B.23和39
C.15和44 D.25和51
二、已知某棵二叉樹的前序遍歷結果為A,B,D,E,G,C,F,H,I,J,其中中序遍歷的結果為D,B,G,E,A,H,F,I,J,C。請畫出二叉的具體結構。(注意要寫出具體步驟)(10分)
原理見課本128頁
三、有圖如下,請寫出從頂點c0出發的深度優先及寬度優先遍歷的結果。(10分)
深度優先;C0-C1-C3-C4-C5-C2
寬度優先:C0-C1-C2-C3-C4-C5
四、有圖如下,按Kruskal演演算法求出其最小生成樹。要求寫出完整的步驟。(10分)
原理見課本250頁
五、給定線性表(12,23,45,66,76,88,93,103,166),試寫出在其上進行二分查詢關鍵字值12,93,166的過程。並寫出二分查詢的演演算法。(20分)
0 1 2 3 4 5 6 7 8
12 23 45 66 76 88 93 103 166
過程:
mid=(0+8)/2=4
high=3,low=0 mid=1
high=0,low=0 mid=0(找到12)
high=8,low=5,mid=6(找到93)
high=8,low=7,mid=7
high=8 low=8 mid=8
演演算法:見課本84頁上
六、知單鏈表的結點結構為
Data next
下列演演算法對帶頭結點的單鏈表L進行簡單選擇排序,使得L中的元素按值從小到大排列。
請在空缺處填入合適的內容,使其成為完整的演演算法。 (可用文字說明該演演算法的基本思想及執行的過程,10分)
void SelectSort(LinkedList L)
{
LinkedList p,q,min;
DataType rcd;
p= (1) ;
while(p!=NULL) {
min=p;
q=p->next;
while(q!=NULL){
if( (2) )min=q;
q=q->next;
}
if( (3) ){
rcd=p->data;
p->data=min->data;
min->data=rcd;
}
(4) ;
}
}
本題不會。嘿嘿。。。。
七、一個完整的演演算法應該具有哪幾個基本性質?分別簡要說明每一性質的含意。(5分)
輸入:
四個基本性質:1.輸入:有零個或多個有外部提供的量作為演演算法的輸入
2:輸出:演演算法產生至少一個量作為輸出
3.:確定性:組成演演算法的每條指令是清晰的,無歧異的。
4.:有限性:演演算法中每條指令的執行次數是有限的,執行每條指令的時間也是有限的
八、何謂佇列的"假溢"現象?如何解決?(5分)
佇列的假溢現象是指陣列實現的順序佇列中,隊尾指標已到達陣列的下表上界產生上溢而隊頭指標之前還有若干 空間閑置的現象。解決的辦法之一是利用迴圈佇列技術使陣列空間的首尾相連。
九、說明並比較檔案的各種物理結構。(6分)
#include <stdio.h>
#include <stdlib.h>
typedef struct lnode
{ int data;
struct lnode *next;
}lnode,*linklist;
linklist listinsert_l(linklist l,int i,int e)
{
linklist p,s;
int j;
p=l;
j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
exit(0);
s=(linklist)malloc(sizeof(lnode));
s->data=e;
s->next=p->next;
p->next=s;
l=l->next;
printf("插入後的連結串列為:
");
while(l)
{
printf("%d ",l->data);
l=l->next;
}
return 0;
}
int listdelete_l(linklist l,int i,int b)
{
linklist p,q;
int j;
p=l;
j=0;
while(p->next&&j<i-1)
{
p=p->next;
++j;
}
if(!(p->next)||j>i-1)
exit(0);
q=p->next;
p->next=q->next;
b=q->data;
free(q);
l=l->next;
printf("刪除後的連結串列為:
");
while(l)
{
printf("%d ",l->data);
l=l->next;
}
return b;
}
void main()
{
linklist l,p;
int n,i,e,j,a,b;
printf("輸入結點的個數:
");
scanf("%d",&n);
l=(linklist)malloc(sizeof(lnode));
l->next=NULL;
printf("輸入連結串列的資料:
");
for(i=n;i>0;--i)
{
scanf("%d",&a);
p=(linklist)malloc(sizeof(lnode));
p->data=a;
p->next=l->next;
l->next=p;
}
printf("輸入要插入的位置和數:
");
scanf("%d%d",&j,&e);
listinsert_l(l,j,e);
printf("
輸入要刪除的位置:
");
scanf("%d",&i);
b=listdelete_l(l,i,b);
printf("
刪除的數為:%d
",b);
}
D,連結串列的話
資料下載網址:大學空間站(網路不讓回答有網址的貼,所以沒法給准確的資料地址)
下載方法:網路搜索下「大學空間站」,開啟該網,注冊大學空間站會員,下載。、、、、、、、、
❷ 台灣的大學課程演演算法相當於大陸的哪門課
就是大陸學校里的演算法設計與分析