




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上/ /- / 順序存儲(chǔ)結(jié)構(gòu)線性表基本操作 純C語言實(shí)現(xiàn) / / a simple example of Sq_List by C language / /
2、 by wangweinoo1PG /- / #include <stdio.h> #include <stdlib.h>/以下為函數(shù)運(yùn)行結(jié)果狀態(tài)代碼 #define TRUE 1#define FALSE 0#define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define LIST_INIT_SIZE 5 /線性表存儲(chǔ)空間的初始分配量 #define LISTINCREMENT 1
3、/線性表存儲(chǔ)空間分配增量 typedef int Status; /函數(shù)類型,其值為為函數(shù)結(jié)果狀態(tài)代碼 typedef int ElemType; /假設(shè)數(shù)據(jù)元素為整型 typedef struct ElemType *elem; /存儲(chǔ)空間基址 int length; /當(dāng)前長度 int listsize; /當(dāng)前分配的存儲(chǔ)容量 Sqlist; /實(shí)現(xiàn)線性表的順序存儲(chǔ)結(jié)構(gòu)的類型定義static Sqlist L;/為了引用方便,定義為全局變量static ElemType ele
4、ment;/函數(shù)名:InitList()/參數(shù):SqList L/初始條件:無/功能:構(gòu)造一個(gè)空線性表/返回值:存儲(chǔ)分配失?。篛VERFLOW/ 存儲(chǔ)分配成功:OK/Status InitList(Sqlist L) L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType); if(L.elem=NULL)
5、0; exit(OVERFLOW); else L.length=0; L.listsize=LISTINCREMENT; return OK; /函數(shù)名:DestroyList()/參數(shù):SqList L/初始條件:線性表L已存在/功能
6、:銷毀線性表/返回值:L.elem=NULL:ERROR/ L.elem!=NULL:OK/Status DestroyList(Sqlist L) if(L.elem=NULL) return ERROR; else free(L.elem);
7、60; return OK;/函數(shù)名:ClearList()/參數(shù):SqList L/初始條件:線性表L已存在/功能:清空線性表/返回值:L.elem=NULL:ERROR/ L.elem!=NULL:OK/Status ClearList(Sqlist L) if(L.elem=NULL) exit(ERROR); int i;
8、160; ElemType *p_elem=L.elem; for(i=0;i<L.length;i+) *L.elem=NULL; L.elem+; L.elem=p_elem; return OK;/函數(shù)名:ListEmpty()/參數(shù):
9、SqList L/初始條件:線性表L已存在/功能:判斷線性表是否為空/返回值:空:TRUE/ 非空:FALSE/Status ListEmpty(Sqlist L) int i; ElemType *p_elem=L.elem; for(i=0;i<L.length;i+) if
10、(*L.elem!=0) L.elem=p_elem; return FALSE;
11、; L.elem+; return TRUE;/函數(shù)名:ListLength()/參數(shù):SqList L/初始條件:線性表L已存在/功能:返回線性表長度/返回值:線性表長度(L.length)/int ListLength(Sqlist L) return L.length;/函數(shù)名:GetElem()/參數(shù):SqList L,int i,ElemType *element/初始條件:線性表L已存在,1<=i<=ListLength(L)/功能:用e返回線性表中第i個(gè)元素的
12、值/返回值:(i<1)|(i>ListLength(L):OVERFLOW/ 1<=i<=ListLength(L):OK/Status GetElem(Sqlist L,int i) int j; ElemType *p_elem=L.elem; if(i<1|i>L.length)
13、return OVERFLOW; for(j=1;j<=i;j+) L.elem+; element=*L.elem; L.elem=p_elem; return OK;/函數(shù)名:LocateElem()/參數(shù):Sqlist L,ElemType element/初始條件:線性表L已存在/功能:返回順序表L中第1個(gè)與element相等的元素/返回值:若在L中存在于
14、element相等的元素:其位序/ 若在L中不存在與element相等的元素:0/int LocationElem(Sqlist L,ElemType element) int i; ElemType *p_elem=L.elem; for(i=1;i<L.length;i+)
15、if(*L.elem=element) L.elem=p_elem; return i;
16、160; else L.elem+; return 0;/函數(shù)名:PriorElem()/參數(shù):Sqlist L,ElemType cur_e,ElemType *pre_e/初始條件:線性表L已存在,i>1&&i<=L.length,LocationElem()存在/功能:用pre_e返回線性表中cur_e的前驅(qū)/返回值:i<=1|i>L.lengt
17、h:OVERFLOW/ i>1&&i<=L.length:OK/Status PriorElem(Sqlist L,ElemType cur_e,ElemType *pre_e) ElemType *p_elem=L.elem; int i,j; i=LocationElem(L,cur_e); if(i<=1|i>L.lengt
18、h) exit(OVERFLOW); for(j=1;j<i;j+) if(j=(i-1) pre_e=L.elem;
19、160; L.elem=p_elem; return OK; else
20、 L.elem+; /函數(shù)名:NextElem()/參數(shù):Sqlist L,ElemType cur_e,ElemType *next_e/初始條件:線性表L已存在,i>=1&&i<L.length,LocationElem()存在/功能:用next_e返回線性表中cur_e的后繼/返回值:i<1|i>=L.length:OVERFLOW/ i>=1&&i<L.length:OK/Status N
21、extElem(Sqlist L,ElemType cur_e,ElemType *next_e) ElemType *p_elem; int i,j; i=LocationElem(L,cur_e); if(i<1|i>=L.length) exit(OVERFLOW); for(j=1;j<i;j+)
22、 if(j=(i-1) next_e=L.elem; L.elem=p_elem;
23、; return OK; else L.elem+; /函數(shù)名:ListInsert()/參數(shù):SqList L,int i,ElemType e/初始條件:線性表L已存在,1<=i&
24、lt;=ListLength(L)+1/功能:在線性表中第i個(gè)數(shù)據(jù)元素之前插入數(shù)據(jù)元素e/返回值:失敗:ERROR/ 成功:OK/Status ListInsert(Sqlist L,int i,ElemType e) int *q=&(L.elemi-1); ElemType *newbase,*p; if(i<1|i>(L.length+1)
25、160; return ERROR; if(L.length>=L.listsize) newbase=(ElemType*)realloc(L.elem,L.listsize+LISTINCREMENT*sizeof(ElemType); if(newbase=NULL) exit(OVERFLOW); L.elem=newbase;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 濟(jì)南2025年山東濟(jì)南市濟(jì)陽區(qū)所屬事業(yè)單位招聘初級(jí)綜合類崗位44人筆試歷年參考題庫附帶答案詳解-1
- 湖南軟件職業(yè)技術(shù)大學(xué)《軟件質(zhì)量控制與測(cè)試技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 成都工業(yè)學(xué)院《云平臺(tái)系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 平頂山職業(yè)技術(shù)學(xué)院《建設(shè)工程造價(jià)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶電子工程職業(yè)學(xué)院《城鄉(xiāng)規(guī)劃原理修詳設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西應(yīng)用工程職業(yè)學(xué)院《書籍形態(tài)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 揚(yáng)州中瑞酒店職業(yè)學(xué)院《人工智能與大模型》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東工藝美術(shù)學(xué)院《電腦立體設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海高等職業(yè)技術(shù)學(xué)院《建筑施工組織及BIM應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟(jì)南幼兒師范高等專科學(xué)?!讹L(fēng)景園林設(shè)計(jì)實(shí)驗(yàn)古典園林景觀設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 產(chǎn)品設(shè)計(jì)與開發(fā)的系統(tǒng)工程方法
- 預(yù)防留置針脫落
- 痛風(fēng)護(hù)理疑難病例討論
- 韓國語入門教學(xué)資料
- 《大學(xué)生職業(yè)能力訓(xùn)練》
- 人民警察忠誠品質(zhì)
- 冠狀動(dòng)脈搭橋手術(shù)后的健康生活促進(jìn)
- 《英國飲食文化》課件
- 《SolidWorks建模實(shí)例教程》第4章 綜合應(yīng)用實(shí)例
- JCT2110-2012 室內(nèi)空氣離子濃度測(cè)試方法
- 視頻號(hào)運(yùn)營規(guī)則
評(píng)論
0/150
提交評(píng)論