国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【小白】線性表的順序存儲結構的實現(C語言)

MarvinZhang / 767人閱讀

摘要:希望能夠把自己的代碼分享給有需要的同學們,一起進步。實現語言為語言,發博客之前已檢查了能否運行成功。

@【TOC】(目錄)第一章:線性表


前言

數據結構作為計算機系的最重要課程是計算機系學生必修課,我們需要引起足夠的重視。希望能夠把自己的代碼分享給有需要的同學們,一起進步。實現語言為C語言,發博客之前已檢查了能否運行成功。
學習教材:數據結構(C語言版)-嚴蔚敏 吳偉民
代課教師:呼克佑(太原理工大學講師)
作者簡介: 中部某末流211軟院大二學生

一、數據結構是什么?

數據結構是計算機存儲、組織數據的方式

二、線性表的順序存儲方式的實現

1.實現所需的主要函數

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.定義結構體

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

4.實現

4.1初始化,構建新的線性表

int InitList(struct  SqList *L){    L->data = (int *) malloc(sizeof(int) * LIST_SIZE);    //申請內存不成功    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]);}

總結

線性表的順序存儲結構優點:隨機存取缺點:不適用頻繁的插入和刪除,效率不高,時間復雜度O(n)

【小白】線性表的順序存儲結構的實現(C語言)

下一節:線性表的鏈式存儲結構的實現

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/121136.html

相關文章

  • 數據結構線性

    摘要:線性表是最基本的數據結構之一,在實際程序中應用非常廣泛,它還經常被用作更復雜的數據結構的實現基礎。鏈表之單鏈表線性表的定義,它是一些元素的序列,維持著元素之間的一種線性關系。 線性表學習筆記,python語言描述-2019-1-14 線性表簡介 在程序中,經常需要將一組(通常是同為某個類型的)數據元素作為整體管理和使用,需要創建這種元素組,用變量記錄它們,傳進傳出函數等。一組數據中包含...

    leoperfect 評論0 收藏0
  • 計算機二級考試-數據結構-模擬試題

    摘要:數據結構試題前言這里是數據結構系列文章,主要介紹計算機二級考試中的涉及到數據結構的知識點數據結構在計算機科學中處處都有存在,例如編譯系統要使用棧散列表語法樹等操作系統要使用隊列存儲管理表目錄樹等等。 數據結構 試題前言這里是 數據結構 系列文章,主要介紹計算機二級考試中的涉及到數據結構的知識點 /數據結構在計算...

    不知名網友 評論0 收藏0
  • js數據結構和算法(一)概述

    摘要:程序設計數據結構算法數據結構數據結構就是關系,沒錯,就是數據元素相互之間存在的一種或多種特定關系的集合。物理結構是指數據的邏輯結構在計算機中的存儲形式。 程序設計=數據結構+算法 數據結構 數據結構就是關系,沒錯,就是數據元素相互之間存在的一種或多種特定關系的集合。 傳統上,我們把數據結構分為邏輯結構和物理結構。 邏輯結構:是指數據對象中數據元素之間的相互關系,也是我們今后最...

    xumenger 評論0 收藏0

發表評論

0條評論

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