C語言用陣列完成線性表得增刪

2021-07-05 17:13:52 字數 1737 閱讀 2317

//

// main.c

// 02-用陣列完成線性表得增刪

////用陣列的方式完成(有序)線性表特定元素的增加和刪減

//// created by wangju on 15/10/9.

//#include #include//預留記憶體空間

#define reserve 100

#define error -1

void addelement(int);

//-1表示刪除失敗 1表示刪除成功

int deleteelement(int);

//輸出list的所有元素

void printlist();

void initlist();

//向新記憶體空間拷貝舊記憶體空間的資料,並釋放舊記憶體空間

void elementtransfer(int *,int *);

void resetlist();

struct list

arraylist;

void addelement(int element)

if (arraylist.length >= arraylist.truelength)

elementtransfer(arraylist.data,olddata);

}arraylist.data[arraylist.length] = element;

arraylist.length++;

}int deleteelement(int element)

for (int i = 0; i < arraylist.length; i ++)

arraylist.length--;

return 1;}}

return -1;

}void elementtransfer(int* newdata,int* olddata)

for (int i = 0; i < arraylist.length; i++)

free(olddata);

}void initlist()

void printlist()

printf("\n");

}void resetlist()

int main(int argc, const char * argv)

printlist();

printf("------------------華麗的分割線-----------------------\n");

deleteelement(40);

deleteelement(0);

deleteelement(149);

addelement(999);

printlist();

return 0;

}

思路:構造乙個c語言 結構體

struct list

arraylist;

用data儲存陣列指標,通過動態記憶體分配的方法。

為了避免頻繁分配空間,設定乙個預留空間

當預留滿了的時候分配新空間

實現**

if (arraylist.length >= arraylist.truelength)

elementtransfer(arraylist.data,olddata);

}

用陣列實現線性表

對於線性結構,有兩種儲存的方法,一種是使用 c語言中內建的陣列,這樣的結構成為 順序表 另一種使用指標,這樣的結構成為鍊錶。對於線性結構,有12種基本的操作,分別是 初始化 刪除順序表 清空順序表 判斷是否為空 遍歷 求表的長度 求某個元素在表中的位置 返回特定序號的元素 求某個元素的前乙個元素 求...

C語言線性表

include include include 定義乙個linearlist結構體 typedef struct linearlist linearlist 初始化線性表 param 無 return linearlist linearlist initlinearlist return ptr 插...

C語言 線性表

include include include define list size 100 define list increment 10 typedef int datatype typedef structseqlist initlist l 初始條件 無 操作結果 構造乙個空的線性表。成功返回...