版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì)題及答案1、對(duì)帶表頭結(jié)點(diǎn)的有序單鏈表,編寫算法向單鏈表中插入元素X,使其保持有序。答案:typedef datatype int;struct node /結(jié)點(diǎn)結(jié)構(gòu)datatype data;node * next;;/ 注:也可以用自然語言描述void insertOrder(node *head, datatype x) /統(tǒng)計(jì)node *s; p=head;while (p-next -datanext;s=( node *)malloc(sizeof(node);s-data=x;s-next= p-next;p-next=s;2、對(duì)帶表頭結(jié)點(diǎn)的單鏈表,編寫算法求單鏈表
2、的長度。答案:typedef datatype int;struct node / 結(jié)點(diǎn)結(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é)點(diǎn)結(jié)構(gòu)datatype data;node * next;單鏈表的插入?yún)⒖妓惴ǎ涸诎豿的結(jié)點(diǎn)前插入新
3、元素bvoid ins_linked_LList(node * head , datatype x, datatype b) node *p, *q;p=new node ;/申請(qǐng)一個(gè)新結(jié)點(diǎn)p-d=b;/置新結(jié)點(diǎn)的數(shù)據(jù)域if (head=NULL)/原鏈表為空head=p; p-next=NULL; return;if (head-d=x)/在第一個(gè)結(jié)點(diǎn)前插入 p-next=head;head=p;return; q=head;while (q-next!=NULL)&(q-next)-d)!=x)q=q-next;/尋找包含元素x的前一個(gè)結(jié)點(diǎn)q p-next=q-next;q-next=p;
4、/ 新結(jié)點(diǎn)p插入到結(jié)點(diǎn)q之后 return;單鏈表的刪除參考算法:int del_linked_LList(node * head ,T x) /刪除包含元素 x 的結(jié)點(diǎn)元素node *p, *q;if (head=NULL) return(0); /鏈表為空,無刪除的元素if (head-d)=x)/刪除第一個(gè)結(jié)點(diǎn) p=head-next; delete head; head=p; return(1); q=head;while (q-next!=NULL)&(q-next)-d)!=x)q=q-next;/ 尋找包含元素 x的前一個(gè)結(jié)點(diǎn) qif (q-next=NULL)return(0)
5、; / 鏈表中無刪除的元素p=q-next; q-next=p-next;/刪除 q 的下一個(gè)結(jié)點(diǎn) pdelete p;/ 釋放結(jié)點(diǎn)p的存儲(chǔ)空間 return(1);4、對(duì)帶表頭結(jié)點(diǎn)的單鏈表,編寫算法統(tǒng)計(jì)單鏈表中大于x的元素個(gè)數(shù)。答案:typedef datatype int;struct node / 結(jié)點(diǎn)結(jié)構(gòu) datatype data;node * next;/ 注:也可以用自然語言描述int CountX(node *head, datatype x) /統(tǒng)計(jì)int num=0;p=head-next;while (p)if(p-datax) num+ ;p=p-next;return
6、 num;5、對(duì)帶表頭結(jié)點(diǎn)的單鏈表,編寫算法將單鏈表就地逆置。答案:typedef datatype int;struct node / 結(jié)點(diǎn)結(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、寫出鏈隊(duì)列的入隊(duì)、出隊(duì)的算法。答案:typedef datatype int;struct node /結(jié)點(diǎn)結(jié)構(gòu)d
7、atatype data;node * next;/注:也可以用自然語言描述struct LinkQueue /結(jié)點(diǎn)結(jié)構(gòu) node * front;node * rear;int EnterQueue(LinkQueue *q, datatype e)/帶頭結(jié)點(diǎn)的鏈隊(duì)列入隊(duì)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é)點(diǎn)的鏈隊(duì)列出隊(duì)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、編寫算法對(duì)二叉鏈表存儲(chǔ)的二叉樹進(jìn)行前序遍歷,并統(tǒng)計(jì)二叉樹中葉子結(jié)點(diǎn)數(shù)。答案:typedef datatype int;struct node /結(jié)點(diǎn)結(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)計(jì)二叉樹中結(jié)點(diǎn)總數(shù)if(root=NULL) return 0; /空樹if(root-lchild =NULL)& (root-rchild =NULL)return 1; /葉子return numOfLeaf (root-lchild )+ numOfLeaf (root-rchild );/說明:算法的表達(dá)形式及方法多種多樣,不可拘泥于固法。8、對(duì)以二叉鏈表存
10、儲(chǔ)的二叉樹,編寫對(duì)二叉樹進(jìn)行中序遍歷的算法, 的算法。以及求二叉樹高度答案:typedef datatype int;struct node / 結(jié)點(diǎn)結(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、編寫對(duì)有序順序表的折半查找算法。答案:#define MaxSize 100typedef struct( KeyType key; OtherTypeotherData;datatype;struct SeqList /結(jié)點(diǎn)結(jié)構(gòu) datatype dataMaxSize; /0號(hào)單元不用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、試寫一個(gè)算法,判別一行字符中的圓括號(hào)是否配對(duì)。答案:int BracketMatch(cha
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年分期付款運(yùn)動(dòng)器材合同
- 二零二五版智能交通系統(tǒng)工程合同終止及后續(xù)維護(hù)管理協(xié)議3篇
- 2024年環(huán)保產(chǎn)業(yè)發(fā)展項(xiàng)目投資合同
- 二零二五年度龍門吊拆除工程安全防護(hù)及應(yīng)急預(yù)案合同3篇
- 電纜購銷合同模板
- 商業(yè)合同模板
- 年度煙塵、粉塵自動(dòng)采樣器及測(cè)定儀戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 房地產(chǎn)認(rèn)籌標(biāo)準(zhǔn)協(xié)議
- 2025年行政事業(yè)部門合同管理實(shí)施細(xì)則3篇
- 2025清潔外包服務(wù)合同
- 銀行信息安全保密培訓(xùn)
- 市政道路工程交通疏解施工方案
- 2024年部編版初中七年級(jí)上冊(cè)歷史:部分練習(xí)題含答案
- 拆遷評(píng)估機(jī)構(gòu)選定方案
- 床旁超聲監(jiān)測(cè)胃殘余量
- 上海市松江區(qū)市級(jí)名校2025屆數(shù)學(xué)高一上期末達(dá)標(biāo)檢測(cè)試題含解析
- 綜合實(shí)踐活動(dòng)教案三上
- 《新能源汽車電氣設(shè)備構(gòu)造與維修》項(xiàng)目三 新能源汽車照明與信號(hào)系統(tǒng)檢修
- 2024年新課標(biāo)《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)》測(cè)試題(附含答案)
- 醫(yī)院培訓(xùn)課件:《靜脈中等長度導(dǎo)管臨床應(yīng)用專家共識(shí)》
- 中國國際大學(xué)生創(chuàng)新大賽與“挑戰(zhàn)杯”大學(xué)生創(chuàng)業(yè)計(jì)劃競(jìng)賽(第十一章)大學(xué)生創(chuàng)新創(chuàng)業(yè)教程
評(píng)論
0/150
提交評(píng)論