




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
三、計算題〔每題624在如下數組A中鏈接存儲了一個線性表,表頭指針為A[0].nextA012345673572041一個圖的頂點集V和邊集E分別為:V={1,2,3,4,5,6,7};4,2,5,8,3時,每參加一個數據后堆的變化。714分〕LinkListmynote(LinkList{//Lif(L&&L- while(p->next)p=p->next; } }〔1〕說明語句S1〔2〕說明語句組S2〔3a1,a2,
〕,nvoidABC(BTNode*{ BTABC(BT-ABC(BT->right);cout<<BT->data<<'';}}8分〕二叉搜索樹的查找boolFind(BTreeNode*BST,ElemType&{ifreturnfalse;//查找失敗else{if(item==BST-item=BST->data;/
elseif(item<BST-returnFind( elsereturnFind( }8統(tǒng)計出單鏈表HL中結點的值等于給定值X的結點數。intCountX(LNode*HL,ElemTypex)三、應用題(36設一組初始記錄關鍵字序列為(45,80,48,40,22,78),4趟簡單項4設指針變量p指向雙向鏈表中結點Aq指向被插入結點BA的后面插入結點Bllinkrlink。二分查找,要求計算出查找關鍵字62時的比較次數并計算出查找成功時的平均查找長設一棵樹T{(A,B),(A,C),(A,D),(B,E),(C,F),(C,G)},要求設有無向圖G,四、算法設計題(16設有一組初始記錄關鍵字序列〔K1,K2,…,KnO(n)的時間Ki,右半部分的每個關鍵字均大于等于Ki。設有兩個集合A和集合B,要求設計生成集合C=A∩B的算法,其中集合A、BC以下算法實如今順序散列表中查找值為xstructrecord{intkey;intinthashsqsearch(structrecordhashtable[],int{int j=i=k%while(hashtable[j].key!=k&&hashtable[j].flag!=0){j=( )%m;if(i==j)return(-1);}if( )return(j);elsereturn(-1);}以下算法實如今二叉排序樹上查找關鍵值k,typedefstructnode{intkey;structnode*lchild;structnode*rchild;}bitree; *bstsearch(bitree*t,int {if(t==0) whileif(t- ;elseif(t->key>k)t=t->lchild; }1030二叉樹的前序遍歷序列是AEFBGCDHIKJEFAGBCHKIJD,畫出此二叉待散列的線性表為〔36,15,40,63,22[06],假定選用的散列函數是H〔K〕=Kmod7,假設發(fā)生沖突采用線性探查法處理,試:〔1 2〕求出在查找每一個元素概率相等情況下的平均查找長度。31,1,,,1,19,1,(每題15分,共30分)設計一個求結點x設一組初始記錄關鍵字序列為(20,18,22,16,30,19),那么以20為中軸的一趟快 設某無向圖G中有n個頂點,用鄰接矩陣A作為該圖的存儲構造,那么頂點i和頂點互為鄰接點的條件 設無向圖對應的鄰接矩陣為那么A中第i上非0元素的個 第i列上非元素的個數〔填等于,大于或小于設前序遍歷某二叉樹的序列為ABCD,中序遍歷該二叉樹的序列為BADC,那么后序遍 設散列函數H(k)=kmodp正hashtalbek的結點,成功時返回指向關鍵0。typedefstructnode{intkey;structnode*next;}lklist;voidcreatelkhash(lklist*hashtable[]){int lklist {s=(lklist*)malloc(sizeof(lklist));s-k=a[i]%p;s- }}10301、畫出廣義表LS=((),(e),(a,(b,c,d2求樹〔a〔3ABCABCDEFGHIJK
3、設散列表的地址范圍是[0..9],散列函數為H〔key〕=〔key2+2〕MOD97、4、5、3、6、2、8、91030void {for(i=1;i<=n-1;{for(exchange=0,j=0; if(r[j]>r[j+1]){temp=r[j+1]; if(exchange==0)return;}}structrecord{intkey;intothers;};intbisearch(structrecordr[],intk){intlow=0,mid,high=n-1;{ if(r[mid].key==k)return(mid+1);else )high=mid-1;else}}三、應用題(32設某棵二叉樹的中序遍歷序列為DBEAC,前序遍歷序列為ABDEC,G并設一組初始記錄關鍵字序列為(15,17,18,22,35,51,60),8,散列函數H(k)=kmod7,初始記錄關鍵字序列為13,68四、算法設計題(28四、算法設計題(20分)三、填空題(30structrecord{intkey;datatypevoidquickpass(structrecordr[],ints,intt,int{intj=t;structrecordx=r[s];i=s;{while(i<j&&r[j].key>x.key)j=j- if(i<j)while ) if(i<j){r[j]=r[i];j=j-} }四、算法設計題(20三、填空題(30設一組初始記錄關鍵字序列為(49,38,65,97,76,13,27,50),那么以d=4為增量 容。typedefstructnode{intdata;structnode*lchild;structnode bstinsert(bitree*&t,intk){if(t==0){ elseif(t->data>k)bstinsert(t->lchild,k);else }p指向單鏈表中結點As指向被插入的結點X,那么在結點A后面插入結點X需要執(zhí)行的語句序列:s->next=p-
設指針變量head指向雙向鏈表中的頭結點指針變量p指向雙向鏈表中的第一個結點,那么指針變量p和指針變量head之間的關系是p= 和head= 點中的兩個指針域分別為llink和rlink。設某棵二叉樹的中序遍歷序列為ABCD,后序遍歷序列為BADC 完全二叉樹中第5層上最少 個結點,最多 個結點設有向圖中不存在有向邊<V,VA中的數組元素A[i][j 等 設一組初始記錄關鍵字序列為(49,38,65,97,76,13,27,50),那么第4趟直接選 設連通圖G中有n個頂點e條邊,那么對應的最小生成樹上 條邊始堆只需把16與 四、算法設計題(20五、算法設計題(20二、填空題(486設指針變量p指向單鏈表中結點A,那么刪除結點A的語句序列為: 數據構造從邏輯上劃分為三種根本類型 設無向圖G中有n個頂點e條邊那么用鄰接矩陣作為圖的存儲構造進展深度優(yōu)先或廣 ;用鄰接表作為圖的存儲構造進展深度優(yōu)先或 設散列表的長度為8,散列函數H(k)=k%7,用線性探測法解決沖突,那么根據一組初 設一組初始關鍵字序列為(38,65,97,76,13,27,10),那么第3趟冒泡排序完畢后 設一組初始關鍵字序列為(38,65,97,76,13,27,10),那么第3趟簡單項選擇擇排 設有向圖G中的有向邊的集合<6,5>},那么該圖的一個拓撲序列 typedefstructnode{intdata;structnode voidcreatebitree(bitree*&bt){if(ch=='#') {bt=(bitree*)malloc(sizeof(bitree));bt->data=ch; ;createbitree(bt-}下面程序段的功能是利用從尾部插入的方法建立單鏈表的算法的內容。typedefstructnode{intdata;structnode*next;}lklist;voidlklistcreate( *&head){for{p=(lklist*)malloc(sizeof(lklist));scanf(“%d〞,&(p->data));p->next=0;if(i==1)head=q=p;else{q->next=p; }}三、算法設計題(22設計在二叉排序樹上查找結點X的算法。設關鍵字序列(k1,k2,…,kn-1)是堆,設計算法將關鍵字序列(k1,k2,…,n-1,x整為堆。62478,50,40,60,34,90 1010 00
1 1 11
11 2
714〔1〔2n1〔3〕返回的線性表為〔a2,a3,…,a,an128 六、編寫算法〔8分〕intCountX(LNode*HL,ElemType inti=0;LNode*p=HL;//i為計數器{if(P->data==x)i++;}//while,出循環(huán)時i中的值即為x結點個數returni;q->llink=p;q->rlink=p->rlink;p->rlink->llink=q;p-略設有一組初始記錄關鍵字序列〔KKKO(n) Ki每個關鍵字均大于等于Kivoidquickpass(intr[],ints,int{inti=s,j=t,x=r[s];while(i<j&&r[j]>x)j=j-1;if(i<j)while(i<j&&r[i]<x)i=i+1;if(i<j){r[j]=r[i];j=j-}}設有兩個集合A和集合B,要求設計生成集合C=A∩B的算法,其中集合A、BCtypedefstructnode{intdata;structnode*next;}lklist;voidintersection(lklist*ha,lklist*hb,lklist*&hc){lklist*p,*q,*t; for(q=hb;q!=0;q=q->next)if(q->data==p->data)if(q!=0){t=(lklist*)malloc(sizeof(lklist));t->data=p->data;t->next=hc;}}AEAEBFGCDHFKJ2、H(36)=36mod H(22)=(1+1)mod7=2;….沖1H(15)=15mod7=1;….沖 H2(22)=(2+1)modH(15)=(1+1)mod1H(40)=40modH(63)=63modH(22)=22mod7=1;….〔1 〔2〕ASL=1211353、1,3,typedefinttypedefstructnode{datatypedata;structnode*next;}lklist;voiddelredundant(lklist*&head){lklist*p,*q,*s;{for(q=p->next,s=q;q!=0;if(q->data==p->data){s->next=q->next;free(q);q=s->next;}else{s=q,q=q->next;}}}設計一個求結點xtypedefstructnode{datatypedata;structnode*lchild,*rchild;}bitree;bitree*q[20];intr=0,f=0,flag=0;voidpreorder(bitree*bt,char{if(bt!=0&&if(bt->data==x){flag=1;else{r=(r+1)%20;q[r]=bt;preorder(bt->lchild,x);preorder(bt->rchild,x);}voidparent(bitree*bt,char{inti;for(i=f+1;i<=r;i++)if(q[i]->lchild->data==x||q[i]->rchild->data)break;if(flag==0)printf("notfoundx\n");elseif(i<=r)printf("%c",bt->data);elseprintf("not01---->1^101---->1^1^1---->^00a1----1----100 ^(1) BDEFCA;(2) BDEFCAIJKHGAABGCHDIEJFK01012345678945^3869^^^27^^^typedefchartypedefstructnode{datatypedata;structnodevoidsplit(lklist*head,lklist*&ha,lklist*&hb,lklist{lklist*p;ha=0,hb=0,hc=0;{head=p->next;p-if(p->data>='A'&&p->data<='Z'){p->next=ha;elseif(p->data>='0'&&p->data<='9'){p->next=hb;hb=p;}else{p->next=hc;}}typedefstructnode{intdata;structnode*lchild,*rchild;}bitree;voidswapbitree(bitree*bt){bitree*p;if(bt==0)return;swapbitree(bt->lchild);swapbitree(bt->rchild);p=bt->lchild;bt->lchild=bt->rchild;bt->rchild=p;}#definentypedefstructnode{intkey;structnode*lchild,*rchild;}bitree;voidbstinsert(bitree*&bt,intkey){if(bt==0){bt=(bitree*)malloc(sizeof(bitree));bt->key=key;bt->lchild=bt->rchild=0;}elseif(bt->key>key)bstinsert(bt->lchild,key);elsebstinsert(bt->rchild,key);}voidcreatebsttree(bitree{intfor(i=1;i<=n;i++)}n-typedefstructnode{datatypedata;structnode*lchild,*rchild;}bitree;intjudgebitree(bitree*bt1,bitree*bt2){if(bt1==0&&bt2==0)elseif(bt1==0||bt2==0||bt1->data!=bt2->data)elsereturn(judgebitree(bt1->lchild,bt2->lchild)*judgebitree(bt1->rchild,bt2-}voidmergelklist(lklist*ha,lklist*hb,lklist{lklist*s=hc=0;while(ha!=0&&hb!=0)if(ha->data<hb->data){if(s==0)hc=s=ha;else{s->next=ha;s=ha;};ha=ha->next;}else{if(s==0)hc=s=hb;else{s->next=hb;s=hb;};hb=hb->next;}if(ha==0)s->next=hb;elses-}structrecord{intkey;intothers;};intbisearch(structrecordr[],int{intlow=0,mid,high=n-1;{if(r[mid].key==k)return(mid+1);elseif(r[mid].key>k)high=mid-1;else}}intminnum=-typedefstructnode{intkey;structnode*lchild,*rchild;}bitree;voidinorder(bitree*bt){ }voidstraightinsertsort(lklist{lklist intif(head==0||head->next==0)elsefor(q=head,p=head->next;p!=0;p=q-{for(s=head;s!=q->next;s=s->next)if(s->data>p->data)break; }}i<j&&voidsimpleselectsorlklist(lklist{lklist*p,*q,*s; intmin,t;if(head==0||head->next==0)return;for(q=head;q!=0;q=q->next){min=q->data;for(p=q->next;p!=0;p=p->next)if(min>p->data){min=p->data;s=p;}if(s!=q){t=s->data;s->data=q->data;q->data=t;}}}voidsubstring(chars[],longstart,longcount,chart[{longif(start<1||start>length)printf("Thecopypositioniselseif(start+count-1>length)printf("Toocharacterstobecopied");else{for(i=start-1,j=0;i<start+count-1;i++,j++)t[j]=s[i];t[j]=}inttypedefstructnode{intkey;structnode*lchild,*rchild;}bitree;voidlevel(bitree*bt,intx){if }
t=(bitree*)malloc(sizeof(bitree)),bstinsert(t-p-head->rlink,p-0n-voidcountnode(bitree*bt,int{{count++;countnode(bt->lchild,count);countnode(bt-}typedefstruct{intvertex[m];inttypedefstructnode1{intinfo;intadjvertex;structnode1*nextarc;}glinklistnode;typedefstructnode2{intvertexinfo;glinklistnode*firstarc;}glinkheadnode;voidadjmatrixtoadjlist(gadjmatrixg1[],glinkheadnodeg2[{inti,j;glinklistnode*p;for(i=0;i<=n-1;i++)g2[i].firstarc=0;for(i=0;i<=n-1;i++)for(j=0;j<=n-1;j++)if(g1.edge[i][j]==1){p=(glinklistnode*)malloc(sizeof(glinklistnode));p->adjvertex=j;p->nextarc=g[i].firstarc;g[i].firstarc=p;p=(glinklistnode*)malloc(sizeof(glinklistnode));p->adjvertex=i;p->nextarc=g[j].firstarc;g[j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機軟件考試數理邏輯與試題及答案
- 知識產權法與科技創(chuàng)新的結合試題及答案
- 設定可衡量的工作指標計劃
- 網絡管理員必背考點試題及答案
- 人力資源在企業(yè)轉型中的作用計劃
- 前臺文員的安全防范意識培養(yǎng)計劃
- 云南省昆明市黃岡實驗學校2025屆七下數學期末聯(lián)考試題含解析
- 品牌推新策略的實施與評估計劃
- 中學拓寬國際視野教育計劃
- 網絡管理員崗位職責與考試要點的試題及答案
- 肝硬化腹水臨床路徑(2019年版)
- 物業(yè)承接查驗標準及表格
- 鋼結構門頭專項施工方案
- 回彈法檢測磚砂漿強度計算表
- 《水的組成》說課課件
- 2023年江蘇省揚州市英語中考真題試卷(含答案)
- 城市園林綠化養(yǎng)護方案
- 2023年《早》舒淇早期古裝掰全照原創(chuàng)
- 人民幣收藏培訓知識
- PF1315反擊式破碎機說明書
- 渤海大學在線自助繳費平臺操作流程
評論
0/150
提交評論