




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)結構算法設計題及答案1、對帶表頭結點的有序單鏈表,編寫算法向單鏈表中插入元素X,使其保持有序。答案:typedef datatype int;struct node /結點結構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、對帶表頭結點的單鏈表,編寫算法求單鏈表
2、的長度。答案:typedef datatype int;struct node / 結點結構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編寫相應的程序。答案:typedef datatype int;struct node / 結點結構datatype data;node * next;單鏈表的插入?yún)⒖妓惴ǎ涸诎豿的結點前插入新
3、元素bvoid ins_linked_LList(node * head , datatype x, datatype b) node *p, *q;p=new node ;/申請一個新結點p-d=b;/置新結點的數(shù)據(jù)域if (head=NULL)/原鏈表為空head=p; p-next=NULL; return;if (head-d=x)/在第一個結點前插入 p-next=head;head=p;return; q=head;while (q-next!=NULL)&(q-next)-d)!=x)q=q-next;/尋找包含元素x的前一個結點q p-next=q-next;q-next=p;
4、/ 新結點p插入到結點q之后 return;單鏈表的刪除參考算法:int del_linked_LList(node * head ,T x) /刪除包含元素 x 的結點元素node *p, *q;if (head=NULL) return(0); /鏈表為空,無刪除的元素if (head-d)=x)/刪除第一個結點 p=head-next; delete head; head=p; return(1); q=head;while (q-next!=NULL)&(q-next)-d)!=x)q=q-next;/ 尋找包含元素 x的前一個結點 qif (q-next=NULL)return(0)
5、; / 鏈表中無刪除的元素p=q-next; q-next=p-next;/刪除 q 的下一個結點 pdelete p;/ 釋放結點p的存儲空間 return(1);4、對帶表頭結點的單鏈表,編寫算法統(tǒng)計單鏈表中大于x的元素個數(shù)。答案:typedef datatype int;struct node / 結點結構 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、對帶表頭結點的單鏈表,編寫算法將單鏈表就地逆置。答案:typedef datatype int;struct node / 結點結構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 /結點結構d
7、atatype data;node * next;/注:也可以用自然語言描述struct LinkQueue /結點結構 node * front;node * rear;int EnterQueue(LinkQueue *q, datatype e)/帶頭結點的鏈隊列入隊q-rear-next=( node *)malloc(sizeof(node);q-rear-data=e;q-rear= q-rear-next;return 1;int DeleteQueue(LinkQueue *q, datatype *e)/帶頭結點的鏈隊列出隊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、編寫算法對二叉鏈表存儲的二叉樹進行前序遍歷,并統(tǒng)計二叉樹中葉子結點數(shù)。答案:typedef datatype int;struct node /結點結構 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)計二叉樹中結點總數(shù)if(root=NULL) return 0; /空樹if(root-lchild =NULL)& (root-rchild =NULL)return 1; /葉子return numOfLeaf (root-lchild )+ numOfLeaf (root-rchild );/說明:算法的表達形式及方法多種多樣,不可拘泥于固法。8、對以二叉鏈表存
10、儲的二叉樹,編寫對二叉樹進行中序遍歷的算法, 的算法。以及求二叉樹高度答案:typedef datatype int;struct node / 結點結構 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;/說明:算法的表達形式及方法多種多樣,不可拘泥于固法。9、編寫對有序順序表的折半查找算法。答案:#define MaxSize 100typedef struct( KeyType key; OtherTypeotherData;datatype;struct SeqList /結點結構 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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級下冊第一單元3 荷花教案
- 人教版九年級上冊第四單元《課題3 水的組成》教學設計
- 非計劃再次手術知識培訓
- 工業(yè)固體廢物規(guī)范處理培訓
- 合規(guī)考試信貸練習試題及答案
- 2024-2025學年七年級下學期道德與法治期中模擬試卷(二)(統(tǒng)編版2024新教材含答案解析)
- 2025年蘇教版小學數(shù)學小升初模擬考試測試卷及答案(共五套)
- 【八下RJ數(shù)學】安徽省合肥市廬江縣湯池鎮(zhèn)初級中學2023-2024學年八年級數(shù)學下學期期中模擬測試卷
- 采購合同訴訟重點基礎知識點
- 大氣環(huán)境生態(tài)規(guī)劃重點基礎知識點
- 中班科學課件:《彩色的世界》
- 德勤業(yè)務管理流程優(yōu)化咨詢報告課件
- 深靜脈導管維護流程
- 錄音證據(jù)文字模版
- DL∕T 617-2019 氣體絕緣金屬封閉開關設備技術條件
- 沖壓作業(yè)機械類作業(yè)活動風險分級管控清單
- TCVN-2622-越南建筑防火規(guī)范(中文版)
- 不負韶華只爭朝夕-一模考試反思 課件-2021-2022學年高中主題班會(共17張PPT)
- 什么是管壁厚度號Sch
- 液壓閥詳細講解課件
- DB13(J)∕T 256-2018 農(nóng)村氣代煤工程技術規(guī)程
評論
0/150
提交評論