成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【小白】線性表的順序存儲結(jié)構(gòu)的實現(xiàn)(C語言)

MarvinZhang / 817人閱讀

摘要:希望能夠把自己的代碼分享給有需要的同學(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)是什么?

數(shù)據(jù)結(jié)構(gòu)是計算機(jī)存儲、組織數(shù)據(jù)的方式

二、線性表的順序存儲方式的實現(xiàn)

1.實現(xiàn)所需的主要函數(shù)

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);

2.常量定義

#define LIST_SIZE 10#define OVERFLOW 1#define OK 0#define OVERFLOW -1#define TRUE 1#define FALSE 0#define ERROR 0

3.定義結(jié)構(gòu)體

typedef struct SqList{    int  *data;    int length;};

4.實現(xiàn)

4.1初始化,構(gòu)建新的線性表

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;}

4.2銷毀線性表

int DestroyList(struct SqList *L){    free(L->data);    L->length = 0;    L->data = NULL;    return OK;}

4.3判斷線性表是否為空

int ListEmpty(struct SqList L){    if(L.length < 1)        return TRUE;    else         return FALSE;}

4.4獲取線性表長度

int ListLength(struct SqList L){   return L.length;}

4.5獲取線性表中第i個元素,并將值返回給e

int GetElem(struct SqList L, int i,int *e){    if(i < 1 ||i > L.length )        return ERROR;    *e = L.data[i-1];    return OK;}

4.6在線性表的第i個位置插入元素e

//將第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;}

4.7在線性表中刪除第i個位置的元素

//將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;}

4.8查找順序表中與給定值e相等的元素,若成功則返回該元素在表中的位置,否則返回0

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;}

4.8獲取線性表中的所有元素

void GetElems(SqList L){    for(int i = 1; i <= L.length; i++)        printf("線性表中第%d個元素是%d/n",i,L.data[i-1]);}

總結(jié)

線性表的順序存儲結(jié)構(gòu)優(yōu)點:隨機(jī)存取缺點:不適用頻繁的插入和刪除,效率不高,時間復(fù)雜度O(n)

【小白】線性表的順序存儲結(jié)構(gòu)的實現(xiàn)(C語言)

下一節(jié):線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)的實現(xiàn)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/121136.html

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)線性

    摘要:線性表是最基本的數(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ù)中包含...

    leoperfect 評論0 收藏0
  • 計算機(jī)二級考試-數(shù)據(jù)結(jié)構(gòu)-模擬試題

    摘要:數(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)在計算...

    不知名網(wǎng)友 評論0 收藏0
  • js數(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)系,也是我們今后最...

    xumenger 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<