結構定義
#define MAXSIZE 100
struct List {
int element[MAXSIZE];
int len; // 當前長度
};
核心操作函數
| 函數 | 功能 | 關鍵邏輯 |
IsEmpty | 判空 | return list->len == 0; |
GetElement | 按索引取值 | 邊界檢查 0 <= i < len |
Add | 尾部批量新增 | 迴圈讀入,更新 len |
Insert | 指定位置插入 | 從尾部向前搬移騰空位,檢查滿/越界 |
Delete | 刪除指定索引 | 從刪除位置向前搬移覆蓋,len-- |
Modify | 修改指定索引值 | 邊界檢查後直接賦值 |
Clear | 清空 | len = 0; |
Show | 遍歷列印 | 迴圈輸出 element[0..len-1] |
主程式選單驅動測試
int main() {
List *p = malloc(sizeof(List)); p->len = 0;
Add(p); // 初始輸入
while (1) {
printf("1.判空 2.取值 3.新增 4.刪除 5.插入 6.顯示 7.修改 8.清空 0.退出\n");
switch (get_choice()) { ... }
}
}
關鍵實現細節
- 插入/刪除均為 O(n) 搬移操作,適合小規模、尾部操作頻繁場景。
- 固定大小陣列
MAXSIZE 限制容量,動態擴容版本可改用 realloc。
- 索引從 0 開始,介面提示需明確告知使用者。