使用c語言數組創建線性表-鏈表


鏈表操作

在c語言里我們通過結構體和數組這兩種數據結構構造線性表

  • 創建順表表-數組靜態分配內存。
typedef struct {
    char data[10];
    int length;
}SqList;

bool ListInsert(SqList &L,int i,char e){
    for (int j = L.length; j>=i; --j)
        L.data[j]=L.data[j-1];
    L.data[i-1]=e;
    L.length++;
    return true;
}

int main(){
    SqList ls = {{'a','d'},12};
    ListInsert(ls,1,'h');
    printf(ls.data);
    return 1;
}
  • 動態數組

動態數組可以隨程序需要而重新指定大小數組,也就是給他動態分配內存空間,動態數組的內存空間是從堆動態分配的,所以需要用指針來指向它在堆內的地址,而且使用完畢需要我們手動去銷毀它。下面我們用一段代碼來展示一下

int *test;
test = (int *)malloc(sizeof(int)*5);
for (int i = 0; i < 5; ++i) {
    test[i]=i;
}
printf("%d", sizeof(test));

上面的執行結果是8,很多人會有疑問,我們不是給test分配了5*8(int占8字節)的空間了嗎?為什么打印它的內存空間還是8,這里要說明一下,我們這里的test只是一個指針,也就是指向給我們分配內存空間的開頭地址,從開頭到下方的5×8的空間是專門給你用的,但你就僅僅是個int類型的指針,所以就只占8字節。

上面定義了指針,然后用它來動態分配內存空間,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM