靜態分配的順序表

2021-07-10 05:03:47 字數 918 閱讀 9574

順序表的儲存可分為動態儲存和靜態儲存,動態和靜態的區別是儲存位址是動態申請還是直接定義的陣列,其儲存位址都是連續的,c中借助陣列來實現。

其主要特性是具有很好的隨機訪問特性和儲存密度高。

其插入,刪除和查詢的平均時間複雜度均為o(n)。

下面是乙個簡單的實現,linux下gcc可以直接編譯通過,測試。

#include

#include

#define maxsize 50

//元素型別定義

typedef int elemtype;

typedef structseqlist;

//向順序表中插入元素,pos為陣列下表的插入位置

int listinsert(seqlist *l, int pos, elemtype val)

l->data[pos] = val;

l->length++;

return 0;

}//刪除順序表中下標位置為pos的元素

int listdelete(seqlist *l, int pos)

l->length --;

return 0;

}//查詢順序表中值為val的元素,返回該元素的下表位置

int listsearch(seqlist *l, elemtype val)

return -1;

}//測試主函式

int main()

listdelete(&l, 19);

for(i = 0; i < l.length; i++)

printf("%d ", l.data[i]);

printf("\n");

printf("13 is at pos: %d\n", listsearch(&l, 13));

return 0;    

}

靜態順序表

在書上看到的,學習學習。題目 建立乙個靜態的順序表存放整數,大小為10,完成以下操作。1 輸入6個整數,列印出順序表中的內容,並顯示表中的剩餘的空間個數。2 在順序表中的第3個位置插入元素0,列印出順序表中的內容,並顯示表中剩餘的空間個數。3 再試圖插入表中第11個位置整數0,程式提示超出範圍。4 ...

靜態順序表

最近在學習資料結構的單鏈表部分,於是寫了乙個靜態順序表做練習。實現了對其初始化 新增 更改 刪除等功能的實現。seqlist.h pragma once define seq list ifdef seq list include include include define maxsize 100...

靜態順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。include stdio.h include stdlib.h elemtyp...