版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基本目的 用表 la 實現線性表的建立,清空,插入,刪除,按值查 址,按址查值,并實現兩非降序表 la ,lb 合并成一個非 降序表 lcLa ,lb 輸入數字時輸入小于 0 的數回車結束,并且該數不在該線性 表之內基本設想 編寫各個功能實現函數,包括線性表的建立,清空,插 入,刪除,按值查址,按址查值,并實現合并,在主函 數中用 la 來調用各個函數, lb 只參與與 la 合并的操作, 合并后的表為 lc ,其中 la, lb, lc 都是非降序的插入函數 要輸入要插入的地址和值,執(zhí)行前判斷地址的合法性, 移位時,從最后一位往后移,避免覆蓋刪除函數 判斷地址的合法性,刪除某一數值后將其后的
2、數值依次 往前移位按值查址 存在則返回地址,否則返回 error按址查值 判斷地址是否存在,是則執(zhí)行,否則返回 error 合并函數 判斷兩表是否為空,將兩表中第一位數字比較,將較小 值寫入 lc 中,較大值與另一表中的第二位比較以此類推 直至其中一表循環(huán)結束將另一表剩余元素寫入 lc 即可, 若兩表循環(huán)同時結束,則退出循環(huán)#in clude<stdio.h>#in clude<iostream> #defi ne MaxSize 100#defi ne OK 1 #defi ne ERROR -1 using n amespace std; typedef int D
3、ataType;定義一個賦值函數void CopyData(DataType *a, DataType b)*a = b; typedef int Status; typedef int Bool;/定義一個比較函數Bool Equal(DataType a, DataType b) return a=b;/定義一個結構體申請空間 typedef struct SQListDataType SpaceMaxSize; / 表的長度為 MaxSize int Length;SQList;/構造一個空的線性表Status InitList(SQList *L)L->Length = 0;re
4、turn OK;/清空線性表Status ClearList(SQList *L)L->Length = 0;return 0;/判斷線性表是否為空Bool IsEmpty(SQList L)return L.Length = 0;/求線性表長度 int GetLength(SQList L)return L.Length;/插入函數Status InsList(SQList *L, int index, DataType e)int j;if(index<0 | index>L->Length)/ 判斷輸入的地址是否存在return ERROR;if(L->Le
5、ngth >= MaxSize)/ 判斷插入后,空間是否足夠return ERROR;for(j=L->Length-1; j>=index; j-)/ 從最后一位開始依次移位,直到 要插入的地址處結束L->Spacej+1 = L->Spacej;CopyData(L->Space + in dex, e);/插入數值L->Length+;return OK;/刪除函數Status DelList(SQList *L, int index, DataType *e)int j;if(index<0 | index>=L->Lengt
6、h)/ 判斷輸入的地址是否存在 return ERROR;CopyData(e, L->Spaceindex); for(j=index; j<L->Length-1; j+)/ 移位L->Spacej = L->Spacej+1;L->Length-;return OK;/ 按值查址int Locate(SQList L, DataType e)int i;for(i=0; i<L.Length; i+) if(Equal(L.Spacei, e) return i;return ERROR;/按址查值 DataType GetData(SQList
7、 L, int index)if(index<0 | index>=L.Length) return ERROR;return L.Spaceindex;/將 la, lb 中的數值按非降序合并Status MergeList(SQList la, SQList lb, SQList *lc)int i=0,j=0,k=0;while(i<GetLength(la) && j<GetLength(lb)/ 判斷 la,lb 均為非空 if(GetData(la,i) < GetData(lb,j)InsList(lc,k,GetData(la,i)
8、;i+;k+;elseInsList(lc,k,GetData(lb,j);j+;k+;while(i<GetLength(la)InsList(lc,k,GetData(la,i);i+;k+;while(j<GetLength(lb)InsList(lc,k,GetData(lb,j);j+;k+;return k;SQList la,lb,lc;/ 建立三個表 la,lb,lc 全局變量/主函數int main()DataType *e1;int i,e;int num;int index=0;ladength=O;清空 laIb.Length=O;清空 lbprintf(&
9、quot;please input la:n");while(1)scanf("%d",&la.Spaceindex);/ 輸入表 laif(la.Spaceindex<0)用小于1的值回車結束la輸入 break;index+;la.Length+;index=0;printf("please input lb:n");/輸入表 lbwhile(lb.Spaceindex>=0)/scanf("%d",&lb.Spaceindex);if(lb.Spaceindex<0)用小于1的值回車結
10、束lb輸入 break;index+;lb.Length+;printf("the length of la is %dn",GetLength(la);/ 表 la 的長度printf("(insert in la) please input index and num:n");/ 輸入要插入的 地址和要插入的數字scanf("%d %d",&index,&e);printf("n");InsList(&la,index,e);/ 調用插入函數for(i=0;i<la.Length;
11、i+)printf("%d ",la.Spacei);/ 輸出插入后的 laprintf("n");printf("(delete in la)please input index:n");/ 輸入要刪除的地址 scanf("%d",&index);DelList(&la,index,e1);for(i=0;i<la.Length;i+)printf("%d ",la.Spacei);/ 輸出刪除操作后的 laprintf("n");printf("(seek in la)please input index:n");/ 輸入要查找的地址scanf("%d",&index);num=GetData(la,index);printf("the num is %dn",num);/ 輸入要查找的數值 printf("(seek in la)please input num:n");0 二。edsop%=)七 u
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【Ks5u名校】黑龍江省漠河縣高級中學2020屆高三第五次模擬語文試題-掃描版含答案
- 【原創(chuàng)】江蘇省宿遷市2013-2020學年高一物理(人教版)暑期作業(yè)
- 2022成都市高考英語單項選擇及閱理自練附答案1
- 五年級數學(小數除法)計算題專項練習及答案匯編
- 一年級數學計算題專項練習集錦
- 四年級數學(三位數乘兩位數)計算題專項練習及答案
- 【同步輔導】2021高中數學北師大版選修2-3學案:《排列》
- 【全程復習方略】2020年高考政治一輪課時提升作業(yè)-必修2-第5課(廣東專供)
- 山東省棗莊十五中西校區(qū)2022-2023學年七年級上學期期末語文試卷
- 八年級英語下冊Module1FeelingsandimpressionsUnit1Itsmellsdelicious第2課時課件
- 蘇教版小學數學六年級上冊第4單元解決問題的策略重難點練習【含答案】
- 安徽省池州市貴池區(qū)2023-2024學年高二數學第一學期期末綜合測試模擬試題含解析
- 干濕球溫度濕度換算表
- 兒童英文自我介紹演講PPT模板(完整版)
- 新加坡雙語教育發(fā)展史
- 研究生自我介紹ppt模板
- 管材管件采購方案投標方案(完整技術標)
- 煉油化工建設項目建設規(guī)模產品方案及總工藝流程
- 教師培訓《從教走向學-在課堂上落實核心素養(yǎng)》讀書分享讀書感悟讀后感教學課件
- 消毒技術規(guī)范
- 變配電所基礎知識課件
評論
0/150
提交評論