![數(shù)據(jù)結(jié)構(gòu)算法設(shè)計題與答案_第1頁](http://file4.renrendoc.com/view/8537e2edfb3674157696938f42606d2d/8537e2edfb3674157696938f42606d2d1.gif)
![數(shù)據(jù)結(jié)構(gòu)算法設(shè)計題與答案_第2頁](http://file4.renrendoc.com/view/8537e2edfb3674157696938f42606d2d/8537e2edfb3674157696938f42606d2d2.gif)
![數(shù)據(jù)結(jié)構(gòu)算法設(shè)計題與答案_第3頁](http://file4.renrendoc.com/view/8537e2edfb3674157696938f42606d2d/8537e2edfb3674157696938f42606d2d3.gif)
![數(shù)據(jù)結(jié)構(gòu)算法設(shè)計題與答案_第4頁](http://file4.renrendoc.com/view/8537e2edfb3674157696938f42606d2d/8537e2edfb3674157696938f42606d2d4.gif)
![數(shù)據(jù)結(jié)構(gòu)算法設(shè)計題與答案_第5頁](http://file4.renrendoc.com/view/8537e2edfb3674157696938f42606d2d/8537e2edfb3674157696938f42606d2d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)算法設(shè)計題及答案1、對帶表頭結(jié)點的有序單鏈表,編寫算法向單鏈表中插入元素X,使其保持有序。答案:typedef datatype int;struct node /結(jié)點結(jié)構(gòu)datatype data;node * next;;/ 注:也可以用自然語言描述void insertOrder(node *head, datatype x) /統(tǒng)計node *s; p=head;while (p-next -datanext;s=( node *)malloc(sizeof(node);s-data=x;s-next= p-next;p-next=s;2、對帶表頭結(jié)點的單鏈表,編寫算法求單鏈表
2、的長度。答案:typedef datatype int;struct node / 結(jié)點結(jié)構(gòu)datatype data;node * next;/ 注:也可以用自然語言描述int Length(node *head) /求單鏈表的長度int num=0;node *p=head-next;while (p)num+ ;p=p-next;return num;3、試寫出單鏈表的插入與刪除算法,并用C編寫相應(yīng)的程序。答案:typedef datatype int;struct node / 結(jié)點結(jié)構(gòu)datatype data;node * next;單鏈表的插入?yún)⒖妓惴ǎ涸诎豿的結(jié)點前插入新
3、元素bvoid ins_linked_LList(node * head , datatype x, datatype b) node *p, *q;p=new node ;/申請一個新結(jié)點p-d=b;/置新結(jié)點的數(shù)據(jù)域if (head=NULL)/原鏈表為空head=p; p-next=NULL; return;if (head-d=x)/在第一個結(jié)點前插入 p-next=head;head=p;return; q=head;while (q-next!=NULL)&(q-next)-d)!=x)q=q-next;/尋找包含元素x的前一個結(jié)點q p-next=q-next;q-next=p;
4、/ 新結(jié)點p插入到結(jié)點q之后 return;單鏈表的刪除參考算法:int del_linked_LList(node * head ,T x) /刪除包含元素 x 的結(jié)點元素node *p, *q;if (head=NULL) return(0); /鏈表為空,無刪除的元素if (head-d)=x)/刪除第一個結(jié)點 p=head-next; delete head; head=p; return(1); q=head;while (q-next!=NULL)&(q-next)-d)!=x)q=q-next;/ 尋找包含元素 x的前一個結(jié)點 qif (q-next=NULL)return(0)
5、; / 鏈表中無刪除的元素p=q-next; q-next=p-next;/刪除 q 的下一個結(jié)點 pdelete p;/ 釋放結(jié)點p的存儲空間 return(1);4、對帶表頭結(jié)點的單鏈表,編寫算法統(tǒng)計單鏈表中大于x的元素個數(shù)。答案:typedef datatype int;struct node / 結(jié)點結(jié)構(gòu) datatype data;node * next;/ 注:也可以用自然語言描述int CountX(node *head, datatype x) /統(tǒng)計int num=0;p=head-next;while (p)if(p-datax) num+ ;p=p-next;return
6、 num;5、對帶表頭結(jié)點的單鏈表,編寫算法將單鏈表就地逆置。答案:typedef datatype int;struct node / 結(jié)點結(jié)構(gòu)datatype data;node * next;/注:也可以用自然語言描述void ReverseList(node *head) /將單鏈表就地逆置node *q, *p=head-next;head-next=NULL ;while (p)q=p;p=p-next;q-next= head-next;head-next=q ;6、寫出鏈隊列的入隊、出隊的算法。答案:typedef datatype int;struct node /結(jié)點結(jié)構(gòu)d
7、atatype data;node * next;/注:也可以用自然語言描述struct LinkQueue /結(jié)點結(jié)構(gòu) node * front;node * rear;int EnterQueue(LinkQueue *q, datatype e)/帶頭結(jié)點的鏈隊列入隊q-rear-next=( node *)malloc(sizeof(node);q-rear-data=e;q-rear= q-rear-next;return 1;int DeleteQueue(LinkQueue *q, datatype *e)/帶頭結(jié)點的鏈隊列出隊if(q-rear= q-front) return
8、 0;p= q-front-next;*e= p-data;q-front-next=p-next;free(p);if(q-front-next=NULL)q-rear= q-front;return 1;7、編寫算法對二叉鏈表存儲的二叉樹進(jìn)行前序遍歷,并統(tǒng)計二叉樹中葉子結(jié)點數(shù)。答案:typedef datatype int;struct node /結(jié)點結(jié)構(gòu) datatype data;node * Ichild, *rchild;;/注:也可以用自然語言描述void preOrder(node* root) /if(root=NULL) return ; / printf(%5d, ro
9、ot-data); preOrder (root-lchild );/ preOrder (root-rchild ); /前序遍歷空樹前序遍歷根的左子樹前序遍歷根的右子樹int numOfLeaf (node* root) /統(tǒng)計二叉樹中結(jié)點總數(shù)if(root=NULL) return 0; /空樹if(root-lchild =NULL)& (root-rchild =NULL)return 1; /葉子return numOfLeaf (root-lchild )+ numOfLeaf (root-rchild );/說明:算法的表達(dá)形式及方法多種多樣,不可拘泥于固法。8、對以二叉鏈表存
10、儲的二叉樹,編寫對二叉樹進(jìn)行中序遍歷的算法, 的算法。以及求二叉樹高度答案:typedef datatype int;struct node / 結(jié)點結(jié)構(gòu) datatype data; node *lchild, *rchild;/注:也可以用自然語言描述 void inOrder(node* root) / if(root=NULL) return ; / inOrder (root-lchild );/ printf(%5d, root-data); inOrder (root-rchild ); / 前序遍歷空樹中序遍歷根的左子樹中序遍歷根的右子樹int height (node* ro
11、ot) /求二叉樹的高度 int h1,h2if(root=NULL) return 0; /空樹h1=height (root-lchild );h2= height (root-rchild );return 1+(h1=h2)?h1:h2;/說明:算法的表達(dá)形式及方法多種多樣,不可拘泥于固法。9、編寫對有序順序表的折半查找算法。答案:#define MaxSize 100typedef struct( KeyType key; OtherTypeotherData;datatype;struct SeqList /結(jié)點結(jié)構(gòu) datatype dataMaxSize; /0號單元不用int len;int BinSearch(SeqList SL, KeyType k) low=1, high=SL.len;while(low=high) mid=( low+high)/2;if(SL.datamid.key=k)return mid; /查找成功if(SL.datamid.keyk)high= mid-1;elselow= mid+1;Return 0;/ 查找失敗10、試寫一個算法,判別一行字符中的圓括號是否配對。答案:int BracketMatch(cha
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年二手手機(jī)購買合同(三篇)
- 2025年買賣協(xié)議經(jīng)典版(2篇)
- 2025年臨時供用水協(xié)議(2篇)
- 2025年個人股份轉(zhuǎn)讓合同標(biāo)準(zhǔn)版本(三篇)
- 2025年個人房屋出租賃合同樣本(三篇)
- 2025年個人房屋購房合同標(biāo)準(zhǔn)樣本(2篇)
- 服裝店裝修承包協(xié)議
- 服裝店裝修合同范本公裝
- 農(nóng)村養(yǎng)殖場裝修協(xié)議模板
- 市政項目土石方運(yùn)輸合同
- 《發(fā)展?jié)h語(第二版)中級綜合(Ⅰ)》第9課+課件
- 2023-2024學(xué)年四川省成都市小學(xué)數(shù)學(xué)一年級下冊期末提升試題
- GB/T 7462-1994表面活性劑發(fā)泡力的測定改進(jìn)Ross-Miles法
- GB/T 2934-2007聯(lián)運(yùn)通用平托盤主要尺寸及公差
- GB/T 21709.13-2013針灸技術(shù)操作規(guī)范第13部分:芒針
- 2022年青島職業(yè)技術(shù)學(xué)院單招語文考試試題及答案解析
- 急診科進(jìn)修匯報課件
- DL∕T 617-2019 氣體絕緣金屬封閉開關(guān)設(shè)備技術(shù)條件
- 一年級家訪記錄表(常用)
- 信息技術(shù)基礎(chǔ)ppt課件(完整版)
- 電子課件-《飯店服務(wù)心理(第四版)》-A11-2549
評論
0/150
提交評論