資料結構之動態陣列相關函式實現

2021-10-04 00:11:30 字數 4063 閱讀 8134

上傳一下最近寫的動態陣列相關的api函式。

1、動態增長記憶體 策略

typedef

struct dynamicarray

dynamic_array;

2、初始化

dynamic_array*

init_array()

;

3、插入

void

pushback_array

(dynamic_array *arr,

int value)

;

4、根據位置刪除

void

removebypos_array

(dynamic_array *arr,

int pos)

;

5、根據值刪除

void

removebyvalue_array

(dynamic_array *arr,

int value)

;

6、查詢

int

findspace_array

(dynamic_array *arr,

int value)

;

7、列印

void

print_array

(dynamic_array *arr)

;

8、釋放動態陣列的記憶體

void

freespace_array

(dynamic_array *arr)

;

9、清空陣列

void

clear_array

(dynamic_array *arr)

;

10、獲得動態陣列的容量

int

capacity_array

(dynamic_array *arr)

;

11、獲得動態陣列當前元素的個數

int

size_array

(dynamic_array *arr)

;

12、根據位置獲得某個位置的元素

int

at_array

(dynamic_array *arr,

int pos)

;

1、初始化

dynamic_array*

init_array()

2、插入

void

pushback_array

(dynamic_array *arr,

int value)

// 判斷空間是否足夠可以放

if(arr->size == arr->capacity)

// 插入新元素

arr->paddr[arr->size]

= value;

arr->size++

;}

3、根據位置刪除

void

removebypos_array

(dynamic_array *arr,

int pos)

// 判斷位置是否有效

if(pos <

0|| pos >= arr->size)

// 刪除元素

for(

int i = pos; i < arr->size -

1; i++

) arr->size--

;}

4、根據值刪除 value 第乙個出現的位置

void

removebyvalue_array

(dynamic_array *arr,

int value)

// 找到值的位置

int pos =

findspace_array

(arr, value)

;removebypos_array

(arr, pos)

;}

5、查詢

int

findspace_array

(dynamic_array *arr,

int value)

// 查詢

int pos =-1

;for

(int i =

0; i < arr->size; i++)}

if(pos ==-1

)return pos;

}

6、列印

void

print_array

(dynamic_array *arr)

for(

int i =

0; i < arr->size; i++

)printf

("\n");

}

7、清空陣列

void

clear_array

(dynamic_array *arr)

arr->size =0;

}

8、獲得動態陣列的容量

int

capacity_array

(dynamic_array *arr)

return arr->capacity;

}

9、獲得動態陣列當前元素的個數

int

size_array

(dynamic_array *arr)

return arr->size;

}

10、根據位置獲得某個位置的元素

int

at_array

(dynamic_array *arr,

int pos)

11、釋放動態陣列的記憶體

void

freespace_array

(dynamic_array *arr)

if(arr->paddr !=

null

)free

(arr)

;return

;}

#define _crt_secure_no_warnings

#include

#include

#include

#include

"dynamicarray.h"

void

test01()

printf

("陣列容量:%d\n"

,capacity_array

(myarray));

printf

("陣列大小:%d\n"

,size_array

(myarray));

// 列印

print_array

(myarray)

;// 刪除

removebypos_array

(myarray,0)

;removebyvalue_array

(myarray,27)

;print_array

(myarray)

;int pos =

findspace_array

(myarray,5)

;printf

("查詢5的元素位置:%d %d\n"

, pos,

at_array

(myarray, pos));

// 銷毀

freespace_array

(myarray);}

void

main()

資料結構 動態陣列

int a newint 2 3 定義乙個兩行雜湊的陣列 靜態陣列 int b newint 2 定義行數,列數可變 陣列的儲存 int a newint 10 一維陣列 int a newint 2 3 二維陣列 int a newint 2 3,4 三維陣列 陣列儲存的特點靜態陣列 int a ...

資料結構之陣列實現棧結構

include include int top int s 返回棧頂位置 int stack empty int s 判斷棧是否為空 int stack full int s 判斷棧是否已滿 void push int s,int x int pop int s return x int main ...

搞懂資料結構 動態陣列

什麼是陣列 陣列是一種順序儲存的線性表,所有元素的儲存的記憶體位址都是連續的。動態陣列 在很多程式語言中,陣列建立後是容量是固定的,但是實際開發中,我們更希望能動態的改變陣列的容量 介面設計 int size 元素的數量 boolean isempty 是否為空 boolean contains i...