![線性表作用的實(shí)現(xiàn)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/3/16d6ea70-5480-4b25-8cf1-a5b79eef3597/16d6ea70-5480-4b25-8cf1-a5b79eef35971.gif)
![線性表作用的實(shí)現(xiàn)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/3/16d6ea70-5480-4b25-8cf1-a5b79eef3597/16d6ea70-5480-4b25-8cf1-a5b79eef35972.gif)
![線性表作用的實(shí)現(xiàn)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/3/16d6ea70-5480-4b25-8cf1-a5b79eef3597/16d6ea70-5480-4b25-8cf1-a5b79eef35973.gif)
![線性表作用的實(shí)現(xiàn)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/3/16d6ea70-5480-4b25-8cf1-a5b79eef3597/16d6ea70-5480-4b25-8cf1-a5b79eef35974.gif)
![線性表作用的實(shí)現(xiàn)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/3/16d6ea70-5480-4b25-8cf1-a5b79eef3597/16d6ea70-5480-4b25-8cf1-a5b79eef35975.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基本目的 用表la實(shí)現(xiàn)線性表的建立,清空,插入,刪除,按值查 址,按址查值,并實(shí)現(xiàn)兩非降序表la,lb合并成一個(gè)非 降序表lcLa,lb輸入數(shù)字時(shí)輸入小于0的數(shù)回車結(jié)束,并且該數(shù)不在該線性表之內(nèi)基本設(shè)想 編寫各個(gè)功能實(shí)現(xiàn)函數(shù),包括線性表的建立,清空,插 入,刪除,按值查址,按址查值,并實(shí)現(xiàn)合并,在主函 數(shù)中用la來調(diào)用各個(gè)函數(shù),lb只參與與la合并的操作, 合并后的表為lc,其中l(wèi)a,lb,lc都是非降序的插入函數(shù) 要輸入要插入的地址和值,執(zhí)行前判斷地址的合法性, 移位時(shí),從最后一位往后移,避免覆蓋刪除函數(shù) 判斷地址的合法性,刪除某一數(shù)值后將其后的數(shù)值依次 往前移位按值查址 存在則返回地址,否
2、則返回error按址查值 判斷地址是否存在,是則執(zhí)行,否則返回error合并函數(shù) 判斷兩表是否為空,將兩表中第一位數(shù)字比較,將較小 值寫入lc中,較大值與另一表中的第二位比較以此類推 直至其中一表循環(huán)結(jié)束將另一表剩余元素寫入lc即可, 若兩表循環(huán)同時(shí)結(jié)束,則退出循環(huán)#include<stdio.h>#include<iostream>#define MaxSize 100#define OK 1#define ERROR -1using namespace std;typedef int DataType;/定義一個(gè)賦值函數(shù) void CopyData(DataType
3、 *a, DataType b)*a = b;typedef int Status;typedef int Bool;/定義一個(gè)比較函數(shù) Bool Equal(DataType a, DataType b)return a=b;/定義一個(gè)結(jié)構(gòu)體申請空間 typedef struct SQListDataType SpaceMaxSize; /表的長度為MaxSize int Length;SQList; /構(gòu)造一個(gè)空的線性表 Status InitList(SQList *L)L->Length = 0;return OK;/清空線性表 Status ClearList(SQList *
4、L)L->Length = 0;return 0;/判斷線性表是否為空 Bool IsEmpty(SQList L)return L.Length = 0;/求線性表長度 int GetLength(SQList L)return L.Length;/插入函數(shù) Status InsList(SQList *L, int index, DataType e)int j;if(index<0 | index>L->Length)/判斷輸入的地址是否存在 return ERROR;if(L->Length >= MaxSize)/判斷插入后,空間是否足夠 retu
5、rn ERROR;for(j=L->Length-1; j>=index; j-)/從最后一位開始依次移位,直到要插入的地址處結(jié)束 L->Spacej+1 = L->Spacej;CopyData(L->Space + index, e);/插入數(shù)值 L->Length+;return OK;/刪除函數(shù) Status DelList(SQList *L, int index, DataType *e)int j;if(index<0 | index>=L->Length)/判斷輸入的地址是否存在return ERROR;CopyData(e
6、, 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 L, int index)if(index<0 | index>=L
7、.Length)return ERROR;return L.Spaceindex;/將la,lb中的數(shù)值按非降序合并 Status MergeList(SQList la, SQList lb, SQList *lc)int i=0,j=0,k=0;while(i<GetLength(la) && j<GetLength(lb)/判斷l(xiāng)a,lb均為非空 if(GetData(la,i) < GetData(lb,j)InsList(lc,k,GetData(la,i);i+;k+;elseInsList(lc,k,GetData(lb,j);j+;k+;whi
8、le(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;/建立三個(gè)表la,lb,lc 全局變量 /主函數(shù) int main() DataType *e1; int i,e;int num;int index=0;la.Length=0;/清空la lb.Length=0;/清空lb printf("please input la:n");while(1)scan
9、f("%d",&la.Spaceindex);/輸入表la if(la.Spaceindex<0)/用小于1的值回車結(jié)束la輸入 break;index+;la.Length+;index=0;printf("please input lb:n"); /輸入表lb while(lb.Spaceindex>=0)/ scanf("%d",&lb.Spaceindex);if(lb.Spaceindex<0)/用小于1的值回車結(jié)束lb輸入 break;index+;lb.Length+;printf(&q
10、uot;the length of la is %dn",GetLength(la);/表la的長度 printf("(insert in la) please input index and num:n");/輸入要插入的地址和要插入的數(shù)字 scanf("%d %d",&index,&e);printf("n"); InsList(&la,index,e);/調(diào)用插入函數(shù) for(i=0;i<la.Length;i+) printf("%d ",la.Spacei);/輸出
11、插入后的la printf("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); /輸出刪除操作后的la printf("n"); printf("(seek in la)please input index:n");/輸入要查找的地址 scanf("%d",&index); num=GetData(la,index); printf("the num is %dn",num);/輸入要查找的數(shù)值 printf("(seek in la)please input num:n"); scanf("%d",&num); index=Locate(la,num); printf
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度租賃合同解除條件約定書
- 螞蟻與金融合作協(xié)議
- 投資計(jì)劃股權(quán)轉(zhuǎn)讓協(xié)議書(2篇)
- 汽車銷售傭金合同(2篇)
- 法務(wù)批示合同
- 鋼球光磨研設(shè)備項(xiàng)目融資渠道探索
- 二零二五年度金融糾紛案件保全擔(dān)保服務(wù)協(xié)議
- 二零二五年度貨運(yùn)司機(jī)薪酬福利合同模板
- 二零二五年度內(nèi)墻抹灰勞務(wù)工程進(jìn)度管理合同范本
- 二零二五年度廠房租賃服務(wù)協(xié)議范本下載針對2025年6篇
- 不老莓行業(yè)分析
- STARCCM基礎(chǔ)培訓(xùn)教程
- 地理標(biāo)志專題通用課件
- 《小英雄雨來》讀書分享會
- 【人教版】九年級化學(xué)上冊全冊單元測試卷【1-7單元合集】
- 中央導(dǎo)管相關(guān)血流感染防控
- 混合動力汽車發(fā)動機(jī)檢測與維修中職PPT完整全套教學(xué)課件
- 產(chǎn)時(shí)子癇應(yīng)急演練文檔
- 小學(xué)美術(shù)-《神奇的肥皂粉》教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 測量管理體系內(nèi)審檢查表
- 班組月度考核評分表
評論
0/150
提交評論