簡單模擬ArrayList的一些方法

2021-06-08 02:54:00 字數 1707 閱讀 4969

#include #include struct arr; 

void init_arr(struct arr *,int);//初始化

void insert_arr(struct arr *);//插入

void delete_arr(struct arr *);//刪除

int get();

bool is_empty(struct arr *);//判斷是否為空

bool is_full(struct arr *);//判斷是否陣列滿

void sort_arr();//對陣列進行排序

void show_arr(struct arr *);//列印陣列元素

void inversion_arr(); //陣列倒序

int main()

//初始化

void init_arr(struct arr * parr, int length)

parr->len = length;

parr->cnt= 0;

} //列印

void show_arr(struct arr * parr)

return ;

} printf("陣列為空");

} //判斷是否為空

bool is_empty(struct arr * parr)

return false;

} //插入

int temp;

printf("請輸入元素:");

scanf("%d",&temp);

if( is_full(parr) )else

parr->cnt++;

} //在指定的位置插入元素

void insert_arr(struct arr * parr)

printf("當前共有元素%d個\n",parr->cnt);

printf("\n請輸入要插入為第幾個元素,元素值:");

int pos,val;

scanf("%d %d",&pos,&val);

while(pos <=0 || pos > (parr->cnt+1) )

int i;

for(i=parr->cnt; i>pos-1; i--)

*(parr->pbase+pos-1)=val;//進行插入

parr->cnt++;

} //刪除

void delete_arr(struct arr * parr)

printf("當前共有元素%d個\n",parr->cnt);

printf("\n請輸入要刪除第幾個元素:");

int index;

scanf("%d",&index);

while(index <=0 || index > parr->cnt)

int i;

for(i= index-1; icnt-1; i++)

parr->cnt--;

} //判斷是否滿

陣列 一 模擬ArrayList

package datastructure 物件導向方式的對陣列封裝,模擬arraylist author wangtao date 2016 10 19 上午9 39 43 version v1.0 todo 描述 public class myarray 新增資料 public void ins...

ArrayList的簡單實現

set中的資料物件沒有順序且不可以重複 list中的資料物件有順序且可以重複 arraylist與linkedlist的區別就是陣列與鍊錶的區別,效率高,執行緒不安全 vector底層也是陣列,執行緒安全,但是效率低。每個arraylist例項的初始容量,預設為10,隨著arraylist元素的增加...

JAVA容器 模擬ArrayList的底層實現

arraylist實質上就是可變陣列的實現,著重理解 add get set remove iterator的實現,我們將關注一下問題。1 建立arraylist的時候,預設給陣列的長度設定為10。2 當set remove set的時候,如何解決越界問題?3 當add的時候,如何解決擴容問題?4 ...