摘要:希望能夠把自己的代碼分享給有需要的同學(xué)們,一起進(jìn)步。實(shí)現(xiàn)語言為語言,發(fā)博客之前已檢查了能否運(yùn)行成功。
@【TOC】(目錄)第一章:線性表
數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)系的最重要課程是計(jì)算機(jī)系學(xué)生必修課,我們需要引起足夠的重視。希望能夠把自己的代碼分享給有需要的同學(xué)們,一起進(jìn)步。實(shí)現(xiàn)語言為C語言,發(fā)博客之前已檢查了能否運(yùn)行成功。
學(xué)習(xí)教材:數(shù)據(jù)結(jié)構(gòu)(C語言版)-嚴(yán)蔚敏 吳偉民
代課教師:呼克佑(太原理工大學(xué)講師)
作者簡(jiǎn)介: 中部某末流211軟院大二學(xué)生
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式
int InitList(SqList *L);int DestroyList(SqList *L);int ListEmpty(SqList L);int ListLength(SqList L);int GetElem(SqList L, int i, int *e);int ListInsert(SqList *L, int i, int e);int ListDelete(SqList *L, int i, int *e);int LocateElem(SqList L,int e);void GetElems(SqList L);
#define LIST_SIZE 10#define OVERFLOW 1#define OK 0#define OVERFLOW -1#define TRUE 1#define FALSE 0#define ERROR 0
typedef struct SqList{ int *data; int length;};
int InitList(struct SqList *L){ L->data = (int *) malloc(sizeof(int) * LIST_SIZE); //申請(qǐng)內(nèi)存不成功 if(!L->data) return ERROR; L->length = 0; return OK;}
int DestroyList(struct SqList *L){ free(L->data); L->length = 0; L->data = NULL; return OK;}
int ListEmpty(struct SqList L){ if(L.length < 1) return TRUE; else return FALSE;}
int ListLength(struct SqList L){ return L.length;}
int GetElem(struct SqList L, int i,int *e){ if(i < 1 ||i > L.length ) return ERROR; *e = L.data[i-1]; return OK;}
//將第i個(gè)位置以后的元素依次都往后移一個(gè)單位空間,將e插入第i個(gè)位置int ListInsert(struct SqList *L, int i, int e){ if(i < 1 || i > L->length + 1) return ERROR; for(int j = i-1; j <L->length-1;j++) L->data[j+1] = L->data[j]; L->data[i-1] = e; L->length++; return OK;}
//將i+1個(gè)以后的元素依次向前移一個(gè)單位空間int ListDelete(struct SqList *L, int i,int *e){ if(i < 1 || i > L->length) return ERROR; *e = L->data[i-1]; for(int j = L->length-1; j > L->length-1; j--) L->data[j-1] = L->data[j]; L->length--; return OK;}
int LocateElem(struct SqList L,int e){ int i; for(i = 0; i < L.length; i++) if(L.data[i] == e) return i+1; return 0;}
void GetElems(SqList L){ for(int i = 1; i <= L.length; i++) printf("線性表中第%d個(gè)元素是%d/n",i,L.data[i-1]);}
線性表的順序存儲(chǔ)結(jié)構(gòu)優(yōu)點(diǎn):隨機(jī)存取缺點(diǎn):不適用頻繁的插入和刪除,效率不高,時(shí)間復(fù)雜度O(n)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/121136.html
摘要:線性表是最基本的數(shù)據(jù)結(jié)構(gòu)之一,在實(shí)際程序中應(yīng)用非常廣泛,它還經(jīng)常被用作更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)基礎(chǔ)。鏈表之單鏈表線性表的定義,它是一些元素的序列,維持著元素之間的一種線性關(guān)系。 線性表學(xué)習(xí)筆記,python語言描述-2019-1-14 線性表簡(jiǎn)介 在程序中,經(jīng)常需要將一組(通常是同為某個(gè)類型的)數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含...
摘要:數(shù)據(jù)結(jié)構(gòu)試題前言這里是數(shù)據(jù)結(jié)構(gòu)系列文章,主要介紹計(jì)算機(jī)二級(jí)考試中的涉及到數(shù)據(jù)結(jié)構(gòu)的知識(shí)點(diǎn)數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)科學(xué)中處處都有存在,例如編譯系統(tǒng)要使用棧散列表語法樹等操作系統(tǒng)要使用隊(duì)列存儲(chǔ)管理表目錄樹等等。 數(shù)據(jù)結(jié)構(gòu) 試題前言這里是 數(shù)據(jù)結(jié)構(gòu) 系列文章,主要介紹計(jì)算機(jī)二級(jí)考試中的涉及到數(shù)據(jù)結(jié)構(gòu)的知識(shí)點(diǎn) /數(shù)據(jù)結(jié)構(gòu)在計(jì)算...
摘要:程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)算法數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)就是關(guān)系,沒錯(cuò),就是數(shù)據(jù)元素相互之間存在的一種或多種特定關(guān)系的集合。物理結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存儲(chǔ)形式。 程序設(shè)計(jì)=數(shù)據(jù)結(jié)構(gòu)+算法 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)就是關(guān)系,沒錯(cuò),就是數(shù)據(jù)元素相互之間存在的一種或多種特定關(guān)系的集合。 傳統(tǒng)上,我們把數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。 邏輯結(jié)構(gòu):是指數(shù)據(jù)對(duì)象中數(shù)據(jù)元素之間的相互關(guān)系,也是我們今后最...
閱讀 1023·2021-09-26 09:55
閱讀 2276·2021-09-22 15:44
閱讀 1616·2019-08-30 15:54
閱讀 1461·2019-08-30 15:54
閱讀 2808·2019-08-29 16:57
閱讀 609·2019-08-29 16:26
閱讀 2577·2019-08-29 15:38
閱讀 2297·2019-08-26 11:48