動態陣列的實現

2021-10-09 21:06:44 字數 3020 閱讀 4227

#include

"dynamicarray.h"

//動態陣列初始化

dynamic_array*

init_array()

//插入

void

push_back_array

(dynamic_array* arr,

int value)

//插入新元素

arr->paddr[arr->size]

= value;

arr->size++;}

//根據位置刪除

void

removebypos_array

(dynamic_array* arr,

int pos)

arr->size--;}

//根據值刪除

void

removebyvalue_array

(dynamic_array* arr,

int value)

//查詢

intfind_array

(dynamic_array* arr,

int value)

}return pos;

}//列印

void

print_array

(dynamic_array* arr)

printf

("\n");

}//釋放動態陣列的記憶體

void

freespace_array

(dynamic_array* arr)

free

(arr);}

//清空陣列

void

clear_array

(dynamic_array* arr)

//獲得陣列容量

intcapacity_array

(dynamic_array* arr)

//獲得元素個數

intsize_array

(dynamic_array* arr)

//根據位置獲得某個位置的元素

intat_array

(dynamic_array* arr,

int pos)

#ifndef dynamic_array_h

#define dynamic_array_h

#include

#include

#include

typedef

struct dynamicarray

dynamic_array;

//初始化

dynamic_array*

init_array()

;//插入

void

push_back_array

(dynamic_array* arr,

int value)

;//根據位置刪除

void

removebypos_array

(dynamic_array* arr,

int pos)

;//根據值刪除

void

removebyvalue_array

(dynamic_array* arr,

int value)

;//查詢

intfind_array

(dynamic_array* arr,

int value)

;//列印

void

print_array

(dynamic_array* arr)

;//釋放動態陣列的記憶體

void

freespace_array

(dynamic_array* arr)

;//清空陣列

void

clear_array

(dynamic_array* arr)

;//獲得陣列容量

intcapacity_array

(dynamic_array* arr)

;//獲得元素個數

intsize_array

(dynamic_array* arr)

;//根據位置獲得某個位置的元素

intat_array

(dynamic_array* arr,

int pos)

;#endif

#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)

;//查詢5個位置

int pos =

find_array

(myarray,5)

;printf

("5查詢到:pos:%d %d\n"

,pos,

at_array

(myarray,pos));

//銷毀

動態陣列的實現

靜態陣列 編譯階段確定陣列的大小,執行階段不能改變陣列大小。缺點是事先無法準確確定陣列的大小,太小不滿足處理需要,太大浪費記憶體空間。動態陣列 執行階段,根據實際需要動態確定陣列的大小。在 c 語言中,可利用記憶體的申請和釋放庫函式,c語言培訓班 以及指向陣列的指標變數可當陣列名使用的特點,來實現動...

實現動態陣列

學過c語言的都知道陣列的長度在定義陣列時時固定的,不能在程式執行時發生變化,那麼動態陣列是否和以上的定義相違背?動態陣列的實現步驟 1.先使用malloc函式申請乙個足夠大的位址空間,並返回乙個指標作為首位址 2.將原有陣列的元素按照順序複製到新的位址中 3.將帶加入的元素加入到新的位址中並且時放在...

VC動態陣列實現

vc 動態陣列實現 陣列型別的變數有三個重要的限制 陣列長度固定不變,在編譯時必須知道其長度,陣列只在定義它的塊語句內存在.實際的程式往往不能忍受這樣的限制 它們需要在執行時 動態地分配陣列.雖然陣列長度是固定的,但動態分配的陣列不必在編譯時知道其長度,可以 通常也是 在執行時才確定陣列長度.與陣列...