/*
線性表的操作主要包括如下幾個:
初始化,插入,刪除,查詢(單個元素所在的位置,某個位置的具體元素,查詢所有的元素),判斷是否為空,兩個線性表合併
*//// 當需要對線性表進行修改的時候,要傳遞線性表變數的位址。否則的話,只需要傳遞傳遞變數即可
/// 至於原因: 想想當初自定義函式中對兩個元素進行交換的實現
#include #include typedef int elemtype;
#define maxsize 100
#define ok 1
#define error 0
typedef struct
seqlist;
/// 初始化線性表為空
void initlist(seqlist *l)
/// 返回線性表的長度
/// 如果等於負數,此時沒有元素
elemtype listlength(seqlist l)
/// 查詢元素的位置
/// 查詢e,如果能找到則返回當前所處的位置,如果找不到則返回-1
elemtype locate(seqlist l, elemtype e)
/// 插入元素
elemtype inslist(seqlist *l, int i, elemtype e)
if(i == l->last + 1)
int k;
for(k = l->last; k >= i - 1; k --)
l->elem[k + 1] = l->elem[k];
l->elem[i - 1] = e;
l->last ++;
return ok;
}/// 刪除第i位置的元素, 並返回此位置的元素
elemtype dellist(seqlist *l, int i, elemtype *e)
/// 獲取要刪除的元素
*e = l->elem[i - 1];
int k;
for(k = i; k <= l->last; k ++)
l->elem[k - 1] = l->elem[k];
l->last --;
return ok;
}/// 獲取線性表中的資料
void getdata(seqlist l, int i = -1)
/// 否則的話,獲取指定位置的元素
printf("當前位置的元素為:%d\n",l.elem[i - 1]);
return;
}/// 判斷線性表是否為空,如果為空的話,則返回1
elemtype emptylist(seqlist l)
/// 清空線性表
void clearlist(seqlist *l)
///線性表的合併操作, 兩者都含有的元素只記錄一次
void mergelist(seqlist l1, seqlist l2, seqlist *l3)
/// 如果已經出現過則不記錄,沒出現過則記錄
if(flag == 0)
}}int main()
printf("當前線性表的長度為:%d\n", listlength(l));
getdata(l);
/// 查詢指定元素所在的位置
flag = locate(l, 7);
if(flag == -1)
printf("指定的元素不存在!\n");
else
printf("指定元素所在的位置為:%d\n", flag);
flag = emptylist(l);
if(flag == 0)
printf("線性表不為空!\n");
else
printf("線性表為空\n");
clearlist(&l);
/// 對兩個線性表進行合併的操作
seqlist l1, l2, l3;
initlist(&l1);
initlist(&l2);
initlist(&l3);
printf("此時線性表l3的長度為%d\n", l3.last);
for(i = 0;i < 10; i ++)
inslist(&l1, i + 1, i);
int j = 0;
for(int i = 0;i < 20;i ++)
inslist(&l2, ++ j, i);
mergelist(l1, l2, &l3);
printf("此時線性表l3的長度為%d\n", l3.last);
getdata(l3);
return 0;
}
線性表順序儲存基本操作
線性表的基本操作 status,自定義的乙個列舉型別,enum status status list init sqlistptr l 初始化線性表 void list clear sqlistptr l 清空線性表 void list destory sqlistptr l 銷毀線性表 bool ...
線性表順序儲存結構基本操作
線性表 線性表 list 每個元素型別均為datatype。operation initlist l 初始化操作,建立乙個空的線性表l。listempty l 若線性表為空,返回 true 否則返回 false。clearlist l 將線性表清空。getelem l,i,e 將線性表 l中的第 i...
線性表的順序儲存及基本操作
include include define init size 10 線性表初始容量 define increment size 5 當線性表容量不夠時,增加元素之前,線性表增長量 define overflow 5 記憶體分配失敗後的退出代號 typedef struct sequencelis...