![數(shù)據(jù)結(jié)構(gòu)試題大題編程及參考答案_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/4233572f-495e-422a-b55b-db01fa5a471a/4233572f-495e-422a-b55b-db01fa5a471a1.gif)
![數(shù)據(jù)結(jié)構(gòu)試題大題編程及參考答案_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/4233572f-495e-422a-b55b-db01fa5a471a/4233572f-495e-422a-b55b-db01fa5a471a2.gif)
![數(shù)據(jù)結(jié)構(gòu)試題大題編程及參考答案_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/4233572f-495e-422a-b55b-db01fa5a471a/4233572f-495e-422a-b55b-db01fa5a471a3.gif)
![數(shù)據(jù)結(jié)構(gòu)試題大題編程及參考答案_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/4233572f-495e-422a-b55b-db01fa5a471a/4233572f-495e-422a-b55b-db01fa5a471a4.gif)
![數(shù)據(jù)結(jié)構(gòu)試題大題編程及參考答案_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/4233572f-495e-422a-b55b-db01fa5a471a/4233572f-495e-422a-b55b-db01fa5a471a5.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)考試題參考答案1、設(shè)順序表L中的數(shù)據(jù)元素遞增有序。試寫一算法,將數(shù)據(jù)元素x插入到順序表L的適當(dāng)位置,以保持該表的有序性。解:存儲結(jié)構(gòu)為:typedef struct SeqList DataType *data; int MaxLen; int len;SeqList;算法如下:void insertLx(SeqList &L, DataType x) if(L.len=L.maxlen) return; int i=L.len-1;while(i>=0 && x<L.datai) L.datai+1=L.datai; i=i-1;L.datai+1
2、=x; L.len+;2、試寫一個算法,在帶頭結(jié)點的單鏈表L的元素x前插入一個結(jié)點y。解:存儲結(jié)構(gòu)如下:typedef struct LnodeElemType data; struct Lnode *next;Lnode, *LinkList;算法如下:void insert_y_before_x(LinkList L, ElemType x, ElemType y) Lnode *q, *p=L; while(p->next && p->next->data!=x) p=p->next; /找x的前驅(qū)結(jié)點p;if(!p->next) retur
3、n; / 若不存在結(jié)點x,則返回;q=new Lnode;q->data=y; q->next=p->next; p->next=q;3、試寫一個算法,統(tǒng)計帶頭指針的單鏈表L的元素個數(shù)。解:存儲結(jié)構(gòu)如下:typedef struct LnodeElemType data; struct Lnode *next;Lnode, *LinkList;算法如下:int length(LinkList L) int len=0;Lnode *p=L;while(p) len+; p=p->next; return len;注:如果單鏈表是帶頭結(jié)點的,則算法如下:int le
4、ngth(LinkList L) int len=0;Lnode *p=L->next;while(p) len+; p=p->next; return len;4、試寫一個算法,在帶頭結(jié)點的單鏈表L的第k個結(jié)點后插入一個結(jié)點x。解:存儲結(jié)構(gòu)如下:typedef struct LnodeElemType data; struct Lnode *next;Lnode, *LinkList;算法如下:void insert_after_k( LinkList L, int k, ElemType x) if(k<0) return; Lnode *q, *p=L;int i=0;
5、while(p && i<k) i+; p=p->next; /找到第k個結(jié)點p;if(!p) return; /若不存在第k個結(jié)點,則返回;q=new Lnode; q->data=x; q->next=p->next; p->next=q;注:如果是在L的第k個結(jié)點前插入一個結(jié)點,則找第k-1個結(jié)點p,然后插入。、試寫一個算法,在帶頭結(jié)點的單鏈表中刪除所有的數(shù)據(jù)元素為x的結(jié)點。解:存儲結(jié)構(gòu)如下:typedef struct LnodeElemType data; struct Lnode *next;Lnode, *LinkList;算法
6、如下:void Delete_all_x(LinkList L, Elemtype x) Lnode *p, *q; p=L; while(p) if(p->next && p->next->data=x)q=p->next; p->next=q->next; delete q; else p=p->next;注意:要刪除所有的值為x的結(jié)點。、假設(shè)一個單循環(huán)鏈表的數(shù)據(jù)域為整型,設(shè)計一個算法,求該表中所有結(jié)點的數(shù)據(jù)之和。解:存儲結(jié)構(gòu)如下:typedef struct LnodeElemType data; struct Lnode *ne
7、xt;Lnode, *LinkList;假設(shè)帶頭結(jié)點,且指向頭結(jié)點,則算法如下:int sum_Of_Data(LinkList L) int s=0; Lnode *p=L->next;while(p!=L) s+=p->data; p=p->next; return s; 假設(shè)不帶頭結(jié)點,且指向循環(huán)鏈表中任何一個結(jié)點,則算法如下:int sum_of_data(LinkList L) int s=0; Lnode *p=L; if(L) s+=p->data; p=p->next; while(p!=L) s+=p->data; p=p->next
8、; return s;注:以上兩種情形,只要給出其中一種情形的解即可。、假設(shè)二叉樹用二叉鏈表存儲,設(shè)計一個算法,求二叉樹的結(jié)點個數(shù)。解:存儲結(jié)構(gòu)如下:typedef struct bitnodeElemType data; struct bitnode *lchild, *rchild;bitnode, *bitree;算法如下:int nodes(bitree T) if(!T) return 0; else return (1+nodes(T->lchild)+nodes(T->rchild);、寫一個算法,建立二叉樹的二叉鏈表。解:存儲結(jié)構(gòu)如下:typedef char El
9、emType;typedef struct bitnodeElemType data; struct bitnode *lchild, *rchild;bitnode, *bitree;算法如下:void creat_bitree(bitree &T) /按擴展的先序序列輸入結(jié)點,輸入表示空。ElemType ch; cin>>ch;if(ch=#) T=0;else T=new bitnode; T->data=ch;creat_bitree(T->lchuild);creat_bitree(T->rchild);或者寫成以下算法:bitree crea
10、t_bitree(void) /按擴展的先序序列輸入結(jié)點,輸入表示空。bitree T;ElemType ch; cin>>ch;if(ch=#) T=0;else T=new bitnode; T->data=ch;creat_bitree(T->lchuild);creat_bitree(T->rchild);return T;9、假設(shè)一棵二叉樹的先序序列為EBADCFHGIKJ,中序序列為ABCDEFGHIJK,請畫出該二叉樹,并寫出后序序列。解:該二叉樹如下:后序序列為:ACDBGJKIHFE。10、假設(shè)一棵二叉樹的層次序列為ABCDEFGHIJ,中序序列
11、為DBGEHJACIF,請畫出該二叉樹,并寫出其先序序列和后序序列。解:該二叉樹如下:先序序列為:ABDEGHJCFI;后序序列為:DGJHEBIFCA。11、編寫一個遞歸算法,將用二叉鏈表表示的二叉樹的所有結(jié)點的左、右子樹交換。解:存儲結(jié)構(gòu)如下:typedef char ElemType;typedef struct bitnodeElemType data; struct bitnode *lchild, *rchild;bitnode, *bitree;算法如下:void exchange(bitree &T)if(!T) return; bitree temp;temp=T-&
12、gt;lchild;T->lchild=T->rchild;T->rchild=temp;exchange(T->lchild);exchange(T->rchild);12、試寫出二叉鏈表表示的二叉樹的先序遍歷的非遞歸算法。解:存儲結(jié)構(gòu)如下:typedef char ElemType;typedef struct bitnodeElemType data; struct bitnode *lchild, *rchild;bitnode, *bitree;算法如下:void preorder(bitree T) /先序遍歷,當(dāng)前結(jié)點入棧。#define MaxNum 20bitree stackMaxNum;int top=0; /指向棧頂?shù)南乱晃恢?。bitnode *p;p=T;while(p | top>0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年二手手機購買合同(三篇)
- 2025年買賣協(xié)議經(jīng)典版(2篇)
- 2025年臨時供用水協(xié)議(2篇)
- 2025年個人股份轉(zhuǎn)讓合同標準版本(三篇)
- 2025年個人房屋出租賃合同樣本(三篇)
- 2025年個人房屋購房合同標準樣本(2篇)
- 服裝店裝修承包協(xié)議
- 服裝店裝修合同范本公裝
- 農(nóng)村養(yǎng)殖場裝修協(xié)議模板
- 市政項目土石方運輸合同
- 青島中國(山東)自由貿(mào)易試驗區(qū)青島片區(qū)(青島前灣綜合保稅區(qū))管理委員會選聘35人筆試歷年參考題庫附帶答案詳解
- 《社區(qū)工作者培訓(xùn)課件 新浪版》
- 教育信息化背景下的學(xué)術(shù)研究趨勢
- 人教版小學(xué)數(shù)學(xué)(2024)一年級下冊第五單元100以內(nèi)的筆算加、減法綜合素養(yǎng)測評 B卷(含答案)
- 2024-2025學(xué)年北京市豐臺區(qū)高三語文上學(xué)期期末試卷及答案解析
- 2024年度體育賽事贊助合同:運動員代言與贊助權(quán)益2篇
- 2025屆西藏林芝一中高三第二次診斷性檢測英語試卷含解析
- 開封市第一屆職業(yè)技能大賽健康照護項目技術(shù)文件(國賽)
- 公路電子收費系統(tǒng)安裝合同范本
- 醫(yī)院培訓(xùn)課件:《傷口評估與測量》
- 2021年全國高考物理真題試卷及解析(全國已卷)
評論
0/150
提交評論