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