C 順序表練習

2022-07-23 23:30:36 字數 2846 閱讀 8269

#define _crt_secure_no_warnings

#include #include typedef struct array

array;

//輸出順序表中的資料

void printf_list(array* list)

else

printf("end\n"); }}

//初始化順序表空表

array* createarray()

temp->data = (int *)malloc(sizeof(int) * 5); //動態申請5個int大小給data

temp->len = 0; //初始化順序表長度為0

temp->listsize = 5; //當前順序表空間大小為5

return temp;

}//向順序表的指定位置插入資料

array* insert_array(array* list)

if (list->len == list->listsize) //如果容器已滿

list->listsize += 5; //listsize空間大小增加5

} //插入資料

int k; //定義乙個區域性變數,最終記錄i的位置

for (k = list->len - 1; k >= i - 1; k--) //順序表插入資料,需要將資料先向後挪,找到要插入的位置,將資料插在這個位置

list->data[i - 1] = data; //將要插入的位置放到

list->len++; //順序表大小增加1

return list;

}//刪除指定位置資料 /刪除某個元素 /刪除重複的元素

array* del_array(array* list)

if (i<1 || i>list->listsize + 1)

if (list->len == 0)

int k;

for (k = i - 1; k < list->len; k++) //找到要刪除的位置的下標,並把後面的元素向前挪

list->len--;

return list;

// else if (i == null && data != null) //如果

//

// }

// list->len -= num;

// // }

// return list;

}//刪除重複資料

array *del_all(array* list)

int num = 0; //定義乙個變數,表示需要刪除的元素出現的次數

for (int j = 0; j < list->len; j++)

list->len--; //刪除完畢,順序表的元素數-1;

j--; //由於後面的資料向前挪,因為結束迴圈後會自增1,所以此時自減1從原來的位置繼續迴圈

} }if (num == 0)

else }

//修改指定位置的資料

array* set_array(array* list)

if (i<1 || i>list->len + 1) //插入的位置不能小於1,位置從1開始,也不能大於1,因為只能按位置順序訪問並插入資料

if (list->len == list->listsize) //如果容器已滿

list->listsize += 5; //listsize空間大小增加5

} list->data[i - 1] = data;

return list;

}//查詢元素的位置

int select_array(array* list)

if (i > list->len)

if (i<1 || i>list->len + 1) //查詢的位置不能小於1,位置從1開始,也不能大於1,因為只能按位置順序訪問

printf("您要查詢的位置所在的元素的值為:%d!\n", list->data[i - 1]);

return list->data[i - 1];

}//查詢的元素對應的位置

int select_array1(array* list)

for (int k = 0; k < list->len; k++) }

printf("未找到您要查詢的元素!\n");

}//在指定位置新增多個資料

array* add_somthing(array* list)

int num;

printf("請輸入要新增的元素的數量:");

scanf("%d", &num);

int *arr = (int *)malloc(sizeof(int)*num);

printf("請輸入要新增的元素:\n");

for (int k = 0; k < num; k++)

if (list->len + num > list->listsize)

list->listsize += num; //listsize空間大小增加num;

} if (list->len == 0) //如果順序表長度等於0則表示元素沒元素,則開始從頭插入

list->len += num;

return list;

} else

list->len += num;

while (num--) //迴圈遍歷陣列,將要新增的元素按順序;

return list;

}}array* clear_list(array* list)

else }

void run() }}

int main()

C 順序表練習

include include include struct array 定義乙個資料儲存結構 typedef struct array array array createarray temp data int malloc sizeof int 10 申請10個int大小的記憶體 temp le...

順序表練習一

假設線性表la和lb分別表示兩個集合a和b,利用線性表的基本運算實現新的集合a a並b,即擴大線性表la,將存在於線性表b中且不存在於a中的元素插入a中。分析 依次從b中取出每個資料元素,並在a中查詢該元素,如果不存在,則插入a中。include 包含輸入輸出標頭檔案 define listsize...

基礎練習 順序表操作集(C語言)

2.題意理解 3.完整ac 順序表操作集 線性表的基礎練習題,需要依次實現 順序表的建立 插入 查詢 刪除子函式 題目已指定資料結構,順序表的元素值儲存在結構體的陣列中 data maxsize 結構體中的last變數指定最後乙個元素的位置 define maxsize 5 typedef int ...