連續儲存陣列的演算法演示 增 刪 改 查

2021-09-13 18:23:05 字數 2176 閱讀 8897

終於學完了這部分,開心。還是要多理解多練。

(已測試)

struct arr

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

bool is_full(struct arr * parr);

bool insert_arr(struct arr * parr,int pos, int val);//插入 pos位置從1開始

bool delete_arr(struct arr * parr, int pos, int * pval);//既要知道刪除是否成功,又要得到刪除的資料,不能寫int 所以用指標

int get();

void sort_arr(struct arr * parr);//排序

void show_arr(struct arr * parr);

bool is_empty(struct arr * parr);

void inversion_arr(struct arr * parr);//倒置

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

主函式部分:

int main(void)

else

inversion_arr(&arr);

printf("倒置之後的陣列內容是:\n");

show_arr(&arr);

sort_arr(&arr);

printf("排序後的陣列內容是(公升序):\n");

printf("追加成功\n");

else

printf("追加失敗\n");

*/ show_arr(&arr);

return 0;

}

1 void init_arr(struct arr * parr, int length);

void init_arr(struct arr * parr, int length)

else

return;//函式終止

}

2 bool is_empty(struct arr * parr)

bool is_empty(struct arr * parr)

3 bool is_full(struct arr * parr)

bool is_full(struct arr * parr)

4 void show_arr(struct arr * parr)

void show_arr(struct arr * parr)

else }

}

6 bool insert_arr(struct arr * parr, int pos, int val)

bool insert_arr(struct arr * parr, int pos, int val)

parr->pbase[pos - 1] = val;//例如pos為3表示插到第3個位置前即覆蓋第3個位置上的數 1 2 3 即在陣列下標為[2]的位置上,0 1 2

(parr->cnt)++;//元素+1 有效數字+1

return true;

}

7 bool delete_arr(struct arr * parr, int pos,int * pval)

bool delete_arr(struct arr * parr, int pos,int * pval)

(parr->cnt)--;

return true;

}

8 void inversion_arr(struct arr * parr)

void inversion_arr(struct arr * parr)//第乙個和最後乙個互換,第二個和倒數第二個互換

return;

}

9 void sort_arr(struct arr * parr)

void sort_arr(struct arr * parr)

} }}

使用結構體實現連續儲存陣列增刪改查等各種操作

這次主要是利用結構體實現乙個長度可變陣列的增刪改查等各個操作。因為這裡郝斌老師還沒講typedefy的使用,所以我也是跟著他使用了最原始的方法,乙個個敲,發現這樣敲下來,也給自己鞏固了很多淡忘的知識。這裡是使用結構體arr來模擬這個陣列的,結構體arr中有三個成員變數,分別是陣列的首元素位址 當期陣...

連續儲存陣列的演算法

昨天學習了連續儲存陣列的演算法,我今天打算用c語言實現,雖然 有好多地方都不好 比如1 如何更正使用者的非法輸入,2 無法中斷追加,也就是說雖然陣列定義了6個元素,但是只想追加兩個元素,其餘的可通過插入的方式確定元素。但是心裡還是很爽。這種一下一下敲出來的,經過好多次執行,除錯,最後成功的感覺真是無...

陣列的增刪改查

陣列不可刪,如何實現刪除,就需要利用陣列遍歷時的特性 陣列遍歷如果最後乙個索引內容為空,那麼遍歷就不會顯示出來,利用這一特性,我們可以實現視覺上的刪除,實際陣列長度沒有改變,具體如下 實現思路 當前要刪除的元素對應的索引如果後面還有元素,就要把後面的元素集體下標向前移.陣列縮容 flights ar...