順序線性表的插入,刪除及遍歷(C語言實現)

2021-09-26 20:10:16 字數 1371 閱讀 5444

#include#include#define list_init_size 100//空間初始分配量; 

#define listcreate 10//空間分配的增量;

#define ok 1

#define error 0

#define overflow -2

typedef int status;

typedef int elemtype;

typedef structlist;

//初始化空表;

status init_list(list &l)//涉及改變內容,採用引用傳遞;

l.length=0;//空表;

l.listsize=list_init_size;

return ok;

}status add_elem(list &l,int i,elemtype e)//插入位置和元素的值;

if(l.length>=l.listsize)//若當前空間已滿,增加空間;

l.elem=address;

l.listsize+=listcreate;

} elemtype* where=&(l.elem[i-1]);//取其位址;

elemtype* p;

for(p=&(l.elem[l.length-1]);p>=where;p--)//將所插入位置後面的所有數後移;

*where=e;

l.length++;//元素數+1;

return ok;

} status sub_elem(list &l,int i,elemtype &e)//刪除i位置的元素,並用e返回其值;

elemtype* p1;

elemtype* p2;

p1=&(l.elem[i-1]);

e=*p1;

p2=&(l.elem[l.length-1]);

for(p1=p1+1;p1<=p2;p1++)

l.length--;

return ok;

}status get_all_elem(list l)

printf("\n");

return ok;

}int main()

printf("\n");

get_all_elem(l);

printf("請輸入要刪除元素的位置:\n");

scanf("%d",&j);

sub_elem(l,j,e);

printf("所刪除的值為: %d\n\n",e);

printf("刪除後:\n");

get_all_elem(l);

return 0;

}

C 線性表的順序儲存實現及插入 刪除等操作示例

線性表 linear list 是由同一型別元素構成的有序序列的線性結構。線性表中元素的個數稱為線性表的長度 線性表內沒有元素 長度為0 時,稱為空表 表的起始位置稱為表頭,表的結束位置稱為表尾。線性表的抽象資料型別描述為 型別名稱 線性表 list 資料物件集 線性表是由n個元素構成的有序序列 a...

實現線性表的遍歷查詢插入刪除合併

資料結構 書上給的 僅僅是 在某個特定的位置 插入 某乙個元素。那樣不是 線性表的要求。申請動態記憶體空間神馬的 真費勁,不熟練。include include include include include include include include include include inclu...

線性表順序儲存結構的插入和刪除

1 順序鍊錶的插入操作。status listinsert sqlist l,int i,elemtype e if i 1 i l length 1 當i不在這個範圍內時 if i l length 若插入資料位置不在表尾 l data i 1 e 將新的元素插入 l length return ...