6 線性表的順序實現

2021-10-11 08:07:20 字數 1520 閱讀 8206

在計算機中線性表有兩種儲存結構分別是順序儲存結構和鏈式儲存結構。

線性表的順序表示(又稱順序儲存結構或順序映象)

例如:線性表(1,2,3,4,5,6)

線性表的第1個資料元素a1的儲存位置稱為線性表的起始位置或基位址.

計算位址只算一次與處理資料的規模無關數量級是o(1)這種運算叫隨機訪問。

乙個教室最多容納50人(陣列長度/線性表的最大儲存容量),但現在教室裡坐著34(線性表中當前元素個數)個數。

說明:常量表示式中可以包含常量和符號常量(巨集命名),不能包含變數。即c語言中不允許對陣列的大小作動態定義。

線性表經常進行插入和刪除的操作長度可變而c中陣列的長度是不可變的。

用乙個額外的變數表示線性表的長度

只要找到基位址就可以隨機訪問但說好的陣列呢?

elemtype是根據實際問題,你需要什麼型別的陣列就定義成什麼,一般是根據問題定義乙個結構體或者是 typedef char elemtype

陣列名其實就是首元素的位址所以也可以直接定義乙個指標。陣列的大小用相應的函式來動態分配記憶體

用結構體變數名.成員變數名對成員訪問;指標:sqlist *p=&l;p->data=…;

1.malloc()函式是在程式執行時分配記憶體的重要工具接受乙個引數:所需的記憶體位元組數但並不會為其賦名.然而,但他確實返回了動態分配記憶體塊的首位址.因此可以把該位址賦給乙個指標變數,並使用指標訪問這塊記憶體注意要強制型別轉換

(型別說明符*)malloc(size);

如向記憶體要100個int(型別說明符*)malloc(100*sizeof(int));

2.sizeof(x)計算變數/資料型別x所佔據的位元組數

3.free§釋放指標p所指變數的儲存空間,即徹底刪除乙個變數

需要載入頭

檔案c++內容

[外鏈轉存中…(img-5jfx8sta-1607064538398)]

定義乙個線性表 型別說明 變數名sqlist l;

線性表順序實現

線性表實現,建立表,插入元素,刪除元素,銷毀表,表的遍歷,表的並集交集差集。不斷更新中。include include include include define list init size 100 初始大小 define error 0 define listincrement 10 增量大小...

線性表的順序實現

include using namespace std 線性表的順序儲存結構 const int maxlistsize 100 class list 構造乙個空線性表 void clear bool isempty 判斷是否為空,若為空,返回true,否則返回false intgetelem in...

線性表的順序實現

線性表的順序表示和實現 include stdio.h define true 1 define false 0 define list init size 30 define list increment 10typedef intelemtype typedef struct sqlist 初始...