題目描述:已知順序線性表la和lb的元素按值非遞減排列。歸併la和lb得到新的順序線性表lc,lc的元素也按值非遞減排列。
採用順序儲存形式,該程式還新增了歸併以外的幾個功能,可供使用參考。
#include
#include
#define ok 1
#define error 0
#define overflow -1
#define list_size 50
#define increace 50
typedef
struct
sqlist;
typedef
int status;
status initlist
(sqlist* l)
status createlist
(sqlist* l)
printf
("構建完成!");
return ok;
}status show
(sqlist l)
for(
int i =
0;i < l.length;i++
)printf
("-----陣列長度為:%d\n\n"
, l.length)
;return ok;
}status listinsert
(sqlist* l,
int p,
int v)
for(
int j = l->length;j >= p;j--
) l->elem[p -1]
= v;
l->length++
;return ok;
}status listdelete
(sqlist* l,
int p,
int* v)
l->length--
;return ok;
}status listsearch_position
(sqlist l,
int p)
status listsearch_value
(sqlist l,
int v)
printf
("\n未找到值為%d的元素"
, v)
;exit
(error);}
status listclean
(sqlist* l)
printf
("\n線性表清空!");
return ok;
}void
mergelist
(sqlist la, sqlist lb, sqlist* lc)
while
(pa <= pa_last)
*pc++
=*pa++
;//插入la的剩餘元素
while
(pb <= pb_last)
*pc++
=*pb++
;//插入lb的剩餘元素
}// mergelist_sq
void
main()
執行結果截圖
該程式中也包含了歸併所用函式以外的其他鍊錶操作,可以供使用參考。
#include
#include
#define ok 1
#define error 0
#define overflow -1
typedef
struct lnodelnode,
* linklist;
typedef
int status;
status initlinklist
(linklist* l)
status createlinklist_tail
(linklist l)
return ok;
}status createlinklist_head
(linklist l)
return ok;
}lnode*
getnode
(linklist l,
int p)
return q;
}status locatenode
(linklist l,
int v)
return locate;
}status linklistlength
(linklist l)
return length;
}status linklistinsert
(linklist l,
int p,
int v)
status linklistdelete
(linklist l,
int p,
int* v)
status show
(linklist l)
lnode* p = l->next;
printf
("鍊錶元素輸出:");
while
(p !=
null
)printf
("-----鍊錶長度為%d\n\n"
,linklistlength
(l))
;return ok;
}linklist mergelist
(linklist la, linklist lb)
else
}while
(pa !=
null
)while
(pb !=
null
) pc->next =
null
;printf
("歸併函式呼叫!");
return lc;
}void
main()
執行結果截圖
線性表的順序儲存 線性表的順序儲存結構
1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...
線性表順序儲存
線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。include stdio.h include malloc.h typedef struct slist,list void init list 線性表初始化 void insert list s,int p 線性表插入 void delet...
線性表順序儲存
時間複雜度效率 o 1 o logn o n o nlogn o n 2 o n 3 o 2 n o n o n n 線性表順序儲存 線性表 順序儲存 include include define maxsize 1024 typedef int elementtype typedef struct...