1 1 線性表的順序表示 插入刪除和動態增加

2021-10-08 11:52:58 字數 1616 閱讀 9954

目錄

1. 線性表動態增加長度**

2. 線性順序表的插入和刪除**

定義了乙個 customer 結構型別,裡面儲存了兩個整數,分別是 num 和 people ,兩個整數,每個整數佔4個位元組。

順序表靜態分配!!! ==> 陣列

在宣告乙個順序表的時候,計算機便會在記憶體中給順序表分配它所需要的記憶體空間。包括: maxsize*sizeof(elemtype)和儲存length 的空間。

順序表動態分配!

c語言中: 提供了 malloc、free 函式來 動態申請和釋放記憶體空間

malloc 函式實現的是 申請一整片的連續的儲存空間,這一整片記憶體空間有乙個起始記憶體位址,所以malloc 函式執行結束後會返回乙個指向這一整片儲存空間開始位址的指標。

malloc 函式返回乙個指標,需要強制轉換型別為你所定義的資料元素型別指標。

執行完成後,data指標將指向一整片空間的起始位址。

首先宣告乙個順序表,執行完該**,計算機會在記憶體中開闢一小片空間,在儲存空間中存放了這些變數: maxsize、length、*data。

然後執行初始化函式,首先執行malloc函式,該函式將申請一整片連續空間,大小由()中引數決定。malloc 函式返回申請的記憶體空間首位址的指標,然後需要進行指標型別轉換。再賦值給data(指標型別變數)此時data指標指向申請記憶體空間的首位址。

小妙招:了解在記憶體中的變化,有利於**的理解和記憶!!!!!!

c 語言中  ->  的用法 (點我)

增加操作:

刪除操作:

複習感覺:寫線性順序表的時候,核心邏輯就是那個 for 迴圈,for 迴圈的判斷條件容易搞混。主要是題目所給的 i 是位置序號,是從1開始的;而在程式設計中,陣列是從0開始的;故重點是兩種情景的切換要非常熟練。

線性表的順序表示的增加和刪除

線性表包括順序結構和鏈式結構,這裡介紹的是順序結構,為了方便就用陣列表示,其操作包括增,刪,改,查,其中改和查用陣列的下標可以很方便的操作,增加和刪除需要一些 實現。其中增加的是在乙個線性表插入乙個元素,這個元素必須在1 n 1之間 其核心思想是先判斷要插入的資料是否在1 n 1之間,然後把i n之...

線性表順序表示

include include include define listlength 100 typedef struct datatype typedef struct initlist,list 建立並返回乙個空的線性表 list createlist void else printf out o...

1 1線性表的順序表示與實現

線性表的順序儲存指的是將線性表中的元素存放在一組連續的儲存單元中,這樣使得在邏輯上是相鄰的,物理儲存上也是相鄰的。採用順序儲存結構的線性表稱為順序表。順序表反應了線性表中元素的邏輯關係,只要知道第乙個元素的儲存位址就能得到線性表中任何乙個元素的儲存位址。同樣已知任何乙個元素的儲存位址都可以得到其他元...