




已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
習題1參考答案一、單項選擇題1. A 2. C 3. D 4. B 5. C、A 6. C、B 7. B 8. D 9. B 10. B二、填空題1. 線性結構,非線性結構2. 集合,線性,樹,圖3. 一對一,一對多或多對多4. 時間,空間5. 前趨,一,后繼,多6. 有多個7. 一對一,一對多,多對多8. O()9. O()10. O()11. O(logn)12. 程序對于精心設計的典型合法數(shù)據(jù)輸入能得出符合要求的結果。13. 事后統(tǒng)計,事前估計三、算法設計題1. O() 2. O() 3. O(n) 4. O(n) 5. O(n)習題2參考答案一、單項選擇題1A 2A 3D 4C 5D 6A 7B 8B 9C 10A 11D 12B 13C 14B 15C 16C 17B 18D 19C20A二、填空題1線性 2n-i+1 3相鄰 4前移,前,后5物理存儲位置,鏈域的指針值 6前趨,后繼7順序,鏈接 8一定,不一定9線性,任何,棧頂,隊尾,隊頭10單鏈表,雙鏈表,非循環(huán)鏈表,循環(huán)鏈表11使空表和非空表統(tǒng)一;算法處理一致12O(1),O(n)13棧滿,???,m,棧底,兩個棧的棧頂在棧空間的某一位置相遇142、315O(1)三、簡答題1頭指針是指向鏈表中第一個結點(即表頭結點)的指針;在表頭結點之前附設的結點稱為頭結點;表頭結點為鏈表中存儲線性表中第一個數(shù)據(jù)元素的結點。若鏈表中附設頭結點,則不管線性表是否為空表,頭指針均不為空,否則表示空表的鏈表的頭指針為空。2線性表具有兩種存儲結構即順序存儲結構和鏈接存儲結構。線性表的順序存儲結構可以直接存取數(shù)據(jù)元素,方便靈活、效率高,但插入、刪除操作時將會引起元素的大量移動,因而降低效率:而在鏈接存儲結構中內存采用動態(tài)分配,利用率高,但需增設指示結點之間關系的指針域,存取數(shù)據(jù)元素不如順序存儲方便,但結點的插入、刪除操作較簡單。3應選用鏈接存儲結構,因為鏈式存儲結構是用一組任意的存儲單元依次存儲線性表中的各元素,這里存儲單元可以是連續(xù)的,也可以是不連續(xù)的:這種存儲結構對于元素的刪除或插入運算是不需要移動元素的,只需修改指針即可,所以很容易實現(xiàn)表的容量的擴充。4應選用順序存儲結構,因為每個數(shù)據(jù)元素的存儲位置和線性表的起始位置相差一個和數(shù)據(jù)元素在線性表中的序號成正比的常數(shù)。因此,只要確定了其起始位置,線性表中的任一個數(shù)據(jù)元素都可隨機存取,因此,線性表的順序存儲結構是一種隨機存取的存儲結構,而鏈表則是一種順序存取的存儲結構。5設尾指針比設頭指針好。尾指針是指向終端結點的指針,用它來表示單循環(huán)鏈表可以使得查找鏈表的開始結點和終端結點都很方便,設一帶頭結點的單循環(huán)鏈表,其尾指針為rear,則開始結點和終端結點的位置分別是rear-next-next 和 rear, 查找時間都是O(1)。若用頭指針來表示該鏈表,則查找終端結點的時間為O(n)。6共有14種可能的出棧序列,即為:ABCD, ABDC,ACBD, ACDB,BACD,ADCB,BADC,BCAD, BCDA,BDCA,CBAD, CBDA,CDBA, DCBA7在隊列的順序存儲結構中,設隊頭指針為front,隊尾指針為rear,隊列的容量(即存儲的空間大小)為maxnum。當有元素要加入隊列(即入隊)時,若rear=maxnum,則會發(fā)生隊列的上溢現(xiàn)象,此時就不能將該元素加入隊列。對于隊列,還有一種“假溢出”現(xiàn)象,隊列中尚余有足夠的空間,但元素卻不能入隊,一般是由于隊列的存儲結構或操作方式的選擇不當所致,可以用循環(huán)隊列解決。 一般地,要解決隊列的上溢現(xiàn)象可有以下幾種方法:(1)可建立一個足夠大的存儲空間以避免溢出,但這樣做往往會造成空間使用率低,浪費存儲空間。(2)要避免出現(xiàn)“假溢出”現(xiàn)象可用以下方法解決: 第一種:采用移動元素的方法。每當有一個新元素入隊,就將隊列中已有的元素向隊頭移動一個位置,假定空余空間足夠。 第二種:每當刪去一個隊頭元素,則可依次移動隊列中的元素總是使front指針指向隊列中的第一個位置。 第三種:采用循環(huán)隊列方式。將隊頭、隊尾看作是一個首尾相接的循環(huán)隊列,即用循環(huán)數(shù)組實現(xiàn),此時隊首仍在隊尾之前,作插入和刪除運算時仍遵循“先進先出”的原則。8該算法的功能是:將開始結點摘下鏈接到終端結點之后成為新的終端結點,而原來的第二個結點成為新的開始結點,返回新鏈表的頭指針。四、算法設計題 1算法思想為:(1)應判斷刪除位置的合法性,當in-1時,不允許進行刪除操作;(2)當i=0時,刪除第一個結點:(3)當in時,允許進行刪除操作,但在查找被刪除結點時,須用指針記住該結點的前趨結點。算法描述如下:delete(LinkList *q,int i) /在無頭結點的單鏈表中刪除第i個結點 LinkList *p,*s; int j; if(inext; free(s); else j=0; s=q; while(jnext;j+;if (s= =NULL) printf(Cantt delete); else p-next=s-next; free(s); 2由于在單鏈表中只給出一個頭指針,所以只能用遍歷的方法來數(shù)單鏈表中的結點個數(shù)了。算法描述如下:int ListLength ( LinkList *L ) /求帶頭結點的單鏈表的表長 int len=0; ListList *p; p=L; while ( p-next!=NULL ) p=p-next;len+; return (len);3設單循環(huán)鏈表的頭指針為head,類型為LinkList。逆置時需將每一個結點的指針域作以修改,使其原前趨結點成為后繼。如要更改q結點的指針域時,設s指向其原前趨結點,p指向其原后繼結點,則只需進行q-next=s;操作即可,算法描述如下:void invert(LinkList *head) /逆置head指針所指向的單循環(huán)鏈表linklist *p, *q, *s; q=head; p=head-next; while (p!=head) /當表不為空時,逐個結點逆置 s=q; q=p; p=p-next; q-next=s; p-next=q; 4定義類型LinkList如下:typedef struct node int data; struct node *next,*prior;LinkList;此題可采用插入排序的方法,設p指向待插入的結點,用q搜索已由prior域鏈接的有序表找到合適位置將p結點鏈入。算法描述如下:insert (LinkList *head) LinkList *p,*s,*q; p=head-next; /p指向待插入的結點,初始時指向第一個結點 while(p!=NULL) s=head; / s指向q結點的前趨結點 q=head-prior; /q指向由prior域構成的鏈表中待比較的結點 while(q!=NULL) & (p-dataq-data) /查找插入結點p的合適的插入位置 s=q; q=q-prior; s-prior=p; p-prior=q; /結點p插入到結點s和結點q之間 p=p-next;5算法描述如下:delete(LinkList *head, int max, int min) linklist *p, *q; if (head!=NULL) q=head; p=head-next; while(p!=NULL) & (p-datanext;while(p!=NULL) & (p-datanext; q-next=p;6算法描述如下:delete(LinkList *head, int max, int min) LinkList *p,*q; q=head; p=head-next; while (p!=NULL) if(p-datadata=max) q=p; p=p-next; else q-next=p-next;free(p);p=q-next; 7本題是對一個循環(huán)鏈隊列做插入和刪除運算,假設不需要保留被刪結點的值和不需要回收結點,算法描述如下:(1)插入(即入隊)算法:insert(LinkList *rear, elemtype x) /設循環(huán)鏈隊列的隊尾指針為rear,x為待插入的元素 LinkList *p;p=(LinkList *)malloc(sizeof(LinkList);if(rear= =NULL) /如為空隊,建立循環(huán)鏈隊列的第一個結點 rear=p;rear-next=p; /鏈接成循環(huán)鏈表else /否則在隊尾插入p結點 p-next=rear-next;rear-next=p; rear=p;(2)刪除(即出隊)算法:delete(LinkList *rear) /設循環(huán)鏈隊列的隊尾指針為rearif (rear= =NULL) /空隊 printf(underflown); if(rear-next= =rear) /隊中只有一個結點rear=NULL;elserear-next=rear-next-next; /rear-next指向的結點為循環(huán)鏈隊列的隊頭結點8只要從終端結點開始往前找到第一個比x大(或相等)的結點數(shù)據(jù),在這個位置插入就可以了。算法描述如下:int InsertDecreaseList( SqList *L, elemtype x ) int i;if ( (*L).len= maxlen) printf(“overflow);return(0);for ( i=(*L).len ; i0 & (*L).elem i-1 x ; i-) (*L).elem i =(*L).elem i-1 ; / 比較并移動元素 (*L).elem i =x; (*L).len+;return(1);習題3參考答案一、單項選擇題1B2D3C4D5B6C7D8C9D二、填空題1. 固定長度,設置長度指針2. 兩個串的長度相等,對應位置的字符相等3. “BCDEDE”4. 含n個字符的有限序列 (n0)5. 不含任何字符的串,僅含空格字符的字符串三、算法設計題1算法描述為:int delete(r,s,t,m) /從串的第m個字符以后刪除長度為t的子串char r ;int s,t,m; int i,j; for(i=1;i=m;i+)rs+i=ri; for(j=m+t-i;jdata!=pt-data) pt=pt-next; if(pt= =NULL) ps=NULL; else ps=ps-next;s=ps; return s; /find習題4參考答案一、單項選擇題1. A 2. A 3. A 4. B 5. BA 6. C 7. A 8. A 9. C 10. C 11. C 12. C 13. B 14. D 15.A 16.B 二、填空題1. 線性結構,順序結構,以行為主序,以列為主序2. in+j個元素位置3. 5,34.(0,2,2),(1,0,3),(2,2,-1),(2,3,5)5. n(n+1)/26. e7. 418. head(head(tail(Ls)9.(d-c+1)(d-c+1)(d-c+1)10. 913三、判斷題1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.習題5參考答案一、單項選擇題1. C 2. B 3. C 4. D 5. B 6. D 7. C 8. B 9. B 10. B 11. A 12. D 13. A 14. B 15. A二、判斷題1. 2. 3. 4. 5. 6. 7. 8. 9. 10.三、填空題1. 3,4,6,1,1,2,A,F(xiàn),G2. n+13. 完全,最大,n4. 555. 中序6. 2n,n-1,n+17. n2+18. 2k-1,2k-1,2k-19. 510. 2h-111. 單支樹,完全二叉樹12. 2i,2i+1,i/2(或i/2)13. 2n,n-1,n+114. 帶權路徑長度最小15. 結點數(shù)為0,只有一個根結點的樹16. 二叉鏈表,三叉鏈表17. 雙親結點18. 指向結點前驅和后繼信息的指針19. 1,RChild20. 孩子表示法,雙親表示法,長子兄弟表示法四、應用題1. 解答:abcdegfhimnjki圖5-15根據(jù)給定的邊確定的樹如圖5-15所示。其中根結點為a;葉子結點有:d、m、n、j、k、f、l;c是結點g的雙親;a、c是結點g的祖先;j、k是結點g的孩子;m、n是結點e的子孫;e是結點d的兄弟;g、h是結點f的兄弟;結點b和n的層次號分別是2和5;樹的深度為5。2. 解答:度為2的樹有兩個分支,但分支沒有左右之分;一棵二叉樹也有兩個分支,但有左右之分,左右子樹不能交換。3. 解答:略4. 解答:先序序列:ABDHIEJKCFLG中序序列:HDIBJEKALFCG后序序列:HIDJKEBLFGCA5. 解答:(1)第i層上的結點數(shù)目是mi-1。(2)編號為n的結點的父結點如果存在,編號是(n-2)/m)+1。(3)編號為n的結點的第i個孩子結點如果存在,編號是(n-1)*m+i+1。(4)編號為n的結點有右兄弟的條件是(n-1)%m0。其右兄弟的編號是n+1。6. 解答:(1)先序序列和中序序列相同的二叉樹為:空樹或者任一結點均無左孩子的非空二叉樹;(2)中序序列和后序序列相同的二叉樹為:空樹或者任一結點均無右孩子的非空二叉樹;(3)先序序列和后序序列相同的二叉樹為:空樹或僅有一個結點的二叉樹。7. 解答:后序序列:ACDBGJKIHFE8. 解答:先序序列:ABCDGEIHFJK9. 解答:先根遍歷:ABCDEFGHIJKLMNO后根遍歷:BDEFCAHJIGKNOML森林轉換成二叉樹如圖5-16所示。10. 解答:構造而成的哈夫曼樹如圖5-17所示。BGDCHKEIFJLMNOA圖5-1650 92030111614 7 7 2 5圖5-17五、算法設計題1. 解答:這個問題可以用遞歸算法,也可用非遞歸算法,下面給出的為非遞歸算法。假設該完全二叉樹的結點以層次為序,按照從上到下,同層從左到右順序編號,存放在一個一維數(shù)組R1.n中,且用一個有足夠大容量為maxlen的順序棧作輔助存儲,算法描述如下:preorder (R) /先序遍歷二叉樹Rint Rn; int root;SqStack *s; /s為一個指針棧,類型為seqstack,其中包含top域和數(shù)組datas-top= -1; /s棧置空root=1;while (roottop-1) while (roottop+;s-datas-top=root;root=2*root; if (s-top-1) /棧非空訪問,遍歷右子樹 root=s-datas-top*2+1; s-top-;2. 解答:考慮用一個順序隊que來保存遍歷過程中的各個結點,由于二叉樹以二叉鏈表存儲,所以可設que為一個指向數(shù)據(jù)類型為bitree的指針數(shù)組,最大容量為maxnum,下標從1開始,同層結點從左到右存放。算法中的front為隊頭指針,rear為隊尾指針。levelorder (BiTree *t) /按層次遍歷二叉樹t BiTree *quemaxnum;int rear,front;if (t!=NULL) front=0; /置空隊列rear=1;que1=t;do front=front%maxsize+1; /出隊 t=quefront; printf(t-data); if (t-lchild!=NULL) /左子樹的根結點入隊 rear=rear%maxsize+1; querear=t-lchild; if (t-rchild!=NULL) /右子樹的根結點入隊 rear=rear%maxsize+1; querear=t-rchild;while (rear= =front); /隊列為空時結束3. 解答:設該線索二叉樹類型為bithptr,包含5個域:lchild,ltag,data,rchild,rtag。insert(p, s) /將s結點作為p的右子樹插入BiThrNode *p,*s; BiThrNode *q;if (p-rtag= =1) /無右子樹,則有右線索 s-rchild=p-rchild;s-rtag=1;p-rchild=s;p-rtag=0;else q=p-rchild;while(q-ltag= =0) /查找p所指結點中序后繼,即為其右子樹中最左下的結點 q=q-lchild;q-lchild=p-rchild;s-rtag=0;p-rchild=s;s-lchild=p; /將s結點的左線索指向p結點s-ltag=1;4. 解答:利用一個隊列來完成,設該隊列類型為指針類型,最大容量為maxnum。算法中的front為隊頭指針,rear為隊尾指針,若當前隊頭結點的左、右子樹的根結點不是所求結點,則將兩子樹的根結點入隊,否則,隊頭指針所指結點即為結點的雙親。parentjudge(t,n)BiTree *t;int n; BiTree *quemaxnum;int front,rear;BiTree *parent;parent=NULL;if (t)if (t-data= =n)printf(“no parent!”); /n是根結點,無雙親else front=0; /初始化隊列rear=1;que1=t; /根結點進隊do front=front%maxsize+1; t=quefront; if(t-lchild-data= =n)| (t-rchild-data= =n) /結點n有雙親 parent=t; front=rear; printf(“parent”,t-data); else if (t-lchild!=NULL) /左子樹的根結點入隊 rear=rear%maxsize+1;querear=t-lchild; if (t-rchild!=NULL) /右子樹的根結點入隊 rear=rear%maxsize+1; querear=t-rchild;while(rear= =front); /隊空時結束if (parent = =NULL) printf(“結點不存在”);習題6參考答案一、單項選擇題1. A 2. D 3. D 4. C 5. B 6. B 7. B 8. A 9. C 10. D 11. C 12. D 13. A 14. B 15. B 16. C 17. A 18. A 19. B 20. D 21. A 22. C 23. B 24. A二、填空題1. 2 2. n(n-1)/2,n(n-1)3. 2,4 4. n-1 5. 鄰接矩陣,鄰接表 6. 1 7. k+1 8. 3 9. n,n 10. 2e,e 11. 出邊,入邊 12. O(n),O(e/n) 13.O(n2),O(n+e) 14. acdeb,acedb (答案不唯一)15. acfebd,acefbd (答案不唯一) 16. 深度,廣度17. n,n-1 18. 唯一19. 唯一 20. aebdcf(答案不唯一)三、應用題1. 深度優(yōu)先搜索序列:0,1,2,8,3,4,5,6,7,9 廣度優(yōu)先搜索序列:0,1,4,2,7,3,8,6,5,92. 深度優(yōu)先搜索序列:0,4,7,5,8,3,6,1,2 廣度優(yōu)先搜索序列:0,4,3,1,7,5,6,2,83. 深度優(yōu)先搜索序列:0,2,3,5,6,1,4 廣度優(yōu)先搜索序列:0,2,3,5,6,1,44. 深度優(yōu)先搜索序列:0,3,6,4,1,5,2 廣度優(yōu)先搜索序列:0,3,2,6,5,4,1(a)V1V2V3V4V5V6V760506540457050524230V1V2V3V4V5V6V750(c)V1V2V3V4V5V6V7(b)5. 過程如圖6-16所示 V1V2V3V4V5V6V7504045504230(h)圖6-16V1V2V3V4V5V6V75040504230(g)V1V2V3V4V5V6V750405030(f)V1V2V3V4V5V6V75040(d)V1V2V3V4V5V6V7504050(e)6. 求解過程如圖6-17所示。V1V2V3V4V5V6V7(a)30V1V2V3V4V5V6V7(b)3040V1V2V3V4V5V6V7(c)304042圖6-17V1V2V3V4V5V6V7(e)3040424550V1V2V3V4V5V6V7(f)304042455050V1V2V3V4V5V6V7(d)304042457. 求解過程如下表所示。終點 從v0到各終點的D值和最短路徑的求解過程 i=1 i=2 i=3 i=4 i=5 V1 無 V2 10 (v0,v2) V3 60 (v0,v2,v3) 50 (v0,v4,v3) V4 30 (v0,v4) 30 (v0,v4) V5 100 (v0,v5) 100 (v0,v5) 90 (v0,v4,v5) 60 (v0,v4,v3,v5) Vj V2 V4 V3 V5 S v0,v2 v0,v2,v4v0,v2,v3,v4v0,v2,v3,v4,v58. 求解過程如下:事件的最早發(fā)生時間vek。 ve (1)=0 ve (2)=3 ve (3)=4 ve (4)=ve(2)+2=5 ve (5)=maxve(2)+1,ve(3)+3=7 ve (6)=ve(3)+5=9 ve (7)=maxve(4)+6,ve(5)+8=15 ve (8)=ve(5)+4=11 ve (9)=maxve(8)+10,ve(6)+2=21 ve (10)=maxve(8)+4,ve(9)+1=22 ve (11)=maxve(7)+7,ve(10)+6=28事件的最遲發(fā)生時間vlk。 vl (11)= ve (11)=28 vl (10)= vl (11)-6=22 vl (9)= vl (10)-1=21 vl (8)=min vl (10)-4, vl (9)-10=11 vl (7)= vl (11)-7=21 vl (6)= vl (9)-2=19 vl (5)=min vl (7)-8,vl (8)-4=7 vl (4)= vl (7)-6=15 vl (3)=min vl (5)-3, vl (6)-5=4 vl (2)=min vl (4)-2, vl (5)-1=6 vl (1)=minvl (2)-3, vl (3)-4=0活動ai的最早開始時間ei和最晚開始時間li。 活動a1 e (1)=ve (1)=0 l (1)=vl (2) -3 =3 活動a2 e (2)=ve (1)=0 l (2)=vl (3) - 4=0 活動a3 e (3)=ve (2)=3 l (3)=vl (4) - 2=13 活動a4 e (4)=ve (2)=3 l (4)=vl (5) - 1=6 活動a5 e (5)=ve (3)=4 l (5)=vl (5) - 3=4 活動a6 e (6)=ve (3)=4 l (6)=vl (6) - 5=14 活動a7 e (7)=ve (4)=5 l (7)=vl (7) - 6=15 活動a8 e (8)=ve (5)=7 l (8)=vl (7) - 8=13 活動a9 e (9)=ve (5)=7 l (9)=vl (8) - 4=7 活動a10 e (10)=ve (6)=9 l (10)=vl (9) - 2=19 活動a11 e (11)=ve (7)=15 l (11)=vl (11) - 7=21 活動a12 e (12)=ve (8)=11 l (12)=vl (10) - 4=18 活動a13 e (13)=ve (8)=11 l (13)=vl (9) - 10=11 活動a14 e (14)=ve (9)=21 l (14)=vl (10) -1=21 活動a15 e (15)=ve (10)=22 l (15)=vl (11) -6 =22最后,比較ei和li的值可判斷出a2,a5,a9,a13,a14,a15是關鍵活動,關鍵路徑如圖6-18所示。v1v5v3v8v11v9v1001a2=4a5=3a9=4a13=10a14=1a15=6圖6-18四、算法設計題1. int degree1(Graph & ga, int numb) /根據(jù)無向圖的鄰接矩陣求出序號為numb的頂點的度數(shù) int j,d=0; for(j=0; jga.vexnum; j+)if (ga.costnumbj!=0 & ga.costnumbj!=MAXINT)d+; return (d);2. int degree2(Graph & ga, int numb)/根據(jù)有向圖的鄰接矩陣求出序號為numb的頂點的度數(shù) int i,j,d=0; /求出頂點numb的出度 for(j=0; jga.vexnum; j+) if(ga.costnumbj!=0 & ga.costnumbj!=MAXINT) d+; /求出頂點numb的入度 for(i=0; inext; return (d);4. int degree4(GraphL & gl, int numb)/根據(jù)有向圖的鄰接表求出序號為numb的頂點的度數(shù) int d=0, i;vexnode * p=gl.adjlistnumb; while (p!=NULL) d+;p=p-next; /求出頂點numb的出度for(i=0; ivertex= =numb) d+; p=p-next;/求出頂點numb的入度 return (d); /返回頂點numb的度數(shù)習題7參考答案一、單項選擇題1. D 2. A 3. B 4. C 5. D 6. D 7. A 8. C 9. A 10. A 11. C 12. B 13. D 二、填空題1. (n+1)/2, O(n) 2. 3. 20.5, 41 4. log2(n+1),O(log2n)5. 順序 有序 6. 1,3 7. 6, 19 8. (n/s+s)/2+1 9. 11 10. 小于,大于11. 有序序列 12. 查找成功,左子樹,右子樹 13. 左子樹,右子樹 14. O(nlog2n) 15. 1 16. 5 17. 2 18. n/m 19. 3, 2 三、應用題1. 折半查找判定樹如圖7-3所示,平均查找長度等于29/10。圖7-3中的結點與有序表中元素的對應關系如下表所示。圖7-3109456781231234567891015263439455658637476圖7-4385225167430689054722. 二叉排序樹如圖7-4所示,平均查找長度等于32/10。3. H(K)=K % 13平均查找長度為14/10,其余解答如下。 元素 32 75 29 63 48 94 25 46 18 70 初始哈希地址 6 10 3 11 9 3 12 7 5 5 最終哈希地址 6 10 3 11 9 4 12 7 5 8 0 1 2 3 4 5 6 7 8 9 10 11 12 哈希表 29 94 18 32 46 70 48 75 63 254. H(K)=K % 11,哈希表如圖7-5所示,平均查找長度17/12。圖7-50 四、算法設計題1. 設計思路:進入判別算法之前,pre取初值為min(小于樹中任一結點值),fail=FALSE,即認為bt是二叉排序樹。按中序遍歷bt,并在沿向根結點,與前趨比較,若逆序,則fail為TRUE,則bt不是二叉排序樹。void bisorttree(bitree bt,keytype pre, bool &fail) /fail初值為FALSE,若非二叉序樹,則fail值TRUE if (!fail) if (bt) bisosrttree(bt-lchild,pre,fail); /判斷左子樹 if (bt-data_keydata_key; bisorttree(bt-rchild,pre,fail); /判斷右子樹 /bisorttree說明:較為直觀的方法,可套用中序遍歷非遞歸算法。2. int search_bin(SeqTable st , keytype k , int low , int high) if (lowhigh) return (0); /不成功else mid=(low+high)/2;if (k= =st.elemmid.key) return (mid) ; /成功else if (kst.elemmid.key) return (st,k,low,mid-1);else return(st,k,mid+1,high); /search-bin習題8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全知識法試題及答案
- 2025年電動汽車電池熱管理系統(tǒng)熱管理效率優(yōu)化與創(chuàng)新研究報告
- 安全技能比武試題及答案
- 安全工作教育試題及答案
- 物業(yè)品質培訓課件目錄
- 魔鏡檢測皮膚培訓課件
- 重疾保險培訓課件
- 《編制說明蒙農1號蒙古冰草提純復壯技術規(guī)程》
- 中班家園共育課件
- 冬季生產安全培訓
- 小紅書種草營銷師模擬題及答案(單選+多選+判斷)
- 2023-2024學年滬科版(2019)高中信息技術必修二第三單元項目五《規(guī)劃并連接數(shù)字家庭系統(tǒng)的網絡-組建小型信息系統(tǒng)網絡(一)》說課稿
- 石油行業(yè)設備管理規(guī)范
- RPA財務機器人開發(fā)與應用 課件 6.2 RPA銀企對賬機器人
- 2024年研究生考試考研植物生理學與生物化學(414)試題與參考答案
- 天津市南開區(qū)2023-2024學年六年級下學期期末數(shù)學試題
- 公司招聘保安合同模板
- 2023-2024學年廣東省深圳市福田區(qū)七年級(下)期末數(shù)學答案
- 老年患者術后譫妄護理
- 2023年貴州遵義四中自主招生考試語文試卷真題(精校打印版)
- MAM6090空壓 機微電腦控制器說明書
評論
0/150
提交評論