對動態陣列的操作與演算法

2021-07-22 16:26:11 字數 1814 閱讀 3570

直接貼程式:

/*

2023年9月12日15:00:49

對動態陣列的操作與演算法

*/#include#include//malloc函式在此標頭檔案

#include//使用exit函式需要此標頭檔案

struct array

;//函式宣告

void init_arr(struct array * parr, int length);

void show_arr(struct array * parr);

bool is_empty(struct array * parr);

bool is_full(struct array * parr);

bool insert_arr(struct array * parr, int pos, int val);

bool delete_arr(struct array * parr, int pos, int * val);

int get(struct array * parr, int pos);

void inversion_arr(struct array * parr);

void sort_arr(struct array * parr);

int main(void) //主函式用來測試各個函式的正確性

// else

// // show_arr(&arr);

return 0;

}void init_arr(struct array * parr, int length) //初試化,即建立乙個陣列

parr->len = length;

parr->cnt = 0;

return;

}void show_arr(struct array * parr) //輸出陣列的值

else

printf("\n"); }}

bool is_empty(struct array * parr) //判斷陣列是否空

bool is_full(struct array * parr) //判斷陣列是否滿

else }

bool insert_arr(struct array * parr, int pos, int val) //在位置pos上插入乙個新元素val,pos從1開始

else if(pos<0 || pos>(parr->cnt)+1) //判斷插入的位置是否有效

else

parr->pbase[pos-1] = val;

++(parr->cnt);

return true; }}

bool delete_arr(struct array * parr, int pos, int * val) //將位置pos上的元素刪除,並用val接收刪除的值

else if(pos<0 || pos>parr->cnt) //判斷刪除的數值是否有效範圍

else

--(parr->cnt);

return true;

} }int get(struct array * parr, int pos) //獲取陣列pos位置上的數值,pos從1開始

void inversion_arr(struct array * parr) //將陣列的元素倒置

return;

}void sort_arr(struct array * parr) //將陣列的元素從小到大排序,使用的是氣泡排序

} }return;

}

陣列與動態陣列

int main other element will be set as the default value 2.get length int size sizeof a1 sizeof a1 cout the size of a1 is size endl 3.access element co...

陣列與動態陣列的區別

眾所周知,陣列的長度是不可變的,那麼為什麼動態陣列長度可隨意更改呢?這個要從記憶體中的資料模型開始講了 陣列每乙個元素型別都是統一的,且連續不間斷的。如果將記憶體想象成乙個賓館,你在預定賓館時,同行只有4個人,讓賓館服務員尋找了個4個連續的包間,且已經入住。因為賓館可能會有客人預定包間。當你再次有朋...

動態陣列相關操作

dynamics array.cpp 動態陣列相關操作 1.動態輸入 2.插入 3.修改 4.刪除 5.倒置 6.顯示 7.排序 by adengou foxmail.com bool modify arr struct arr parr,int pos,int val if pos 1 pos p...