編寫乙個完整的程式,實現順序表的生成、插入、刪除、輸出等基本運算。
(1) 建立乙個順序表,含有 n 個資料元素。
(2) 輸出順序表。
(3) 在順序表中刪除值為 x 的結點或者刪除給定位置 i 的結點。
(4) 實現把該表中所有奇數排在偶數之前,即表的前面為奇數,後面為偶數。
(5) *輸入整型元素序列,利用有序表插入演算法建立乙個有序表。
(6)*利用演算法 5 建立兩個非遞減有序表 a 和 b,並把它們合併成乙個非遞減有序表 c。
(7) 在主函式中設計乙個簡單的選單,分別測試上述演算法。
#include
#include
#include
#include
#define true 1
#define false 0
#define ok 1
#define error 0
typedef
int status;
#ifndef sqlist_h_included
#define sqlist_h_included
#include
"ds.h"
typedef
int elemtype;
typedef
struct
sqlist;
void
menu()
;status initlist_sq
(sqlist &l,
int n)
;/*初始化順序表*/
status createlist_sq
(sqlist &l)
;/*建立順序表*/
void
printlist_sq
(sqlist l)
;/*輸出順序表*/
status deletelist_sq
(sqlist &l,
int i,elemtype &e)
;/*刪除第 i 個元素*/
status deletelistx_sq
(sqlist &l,elemtype x)
;/*刪除值為 x 的元素*/
status adjustlist_sq
(sqlist &l)
;/*奇數排在偶數之前*/
status orderlist_sq
(sqlist &l,
int n)
;/*插入法生成遞增有序表*/
void
mergelist_sq
(sqlist la, sqlist lb, sqlist &lc )
;/*兩個非遞減有序表 a 和 b,並把它們合併成一
個非遞減有序表 c*/
#endif
// sqlist_h_included
#include
"sqlist.h"
void
menu()
/*初始化順序表*/
status initlist_sq
(sqlist &l,
int n)
/*建立順序表*/
status createlist_sq
(sqlist &l)
return ok;
}else
return error;
}/*輸出順序表*/
void
printlist_sq
(sqlist l)
printf
("\n");
}/*刪除第 i 個元素*/
status deletelist_sq
(sqlist &l,
int i,elemtype &e)
/*刪除值為 x 的元素,刪除成功返回 ok,刪除失敗返回 error*/
status deletelistx_sq
(sqlist &l,elemtype x)
}return error;
}/*奇數排在偶數之前*/
status adjustlist_sq
(sqlist &l)}}
return ok;
}/*插入法生成遞增有序表,有序表生成成功返回 ok,失敗返回 error*/
status orderlist_sq
(sqlist &l,
int n)
p[j]
= x;
break;}
if(j >= len) p[len]
= x;
l.length++;}
return ok;
}/*兩個非遞減有序表 a 和 b,並把它們合併成乙個非遞減有序表 c*/
void
mergelist_sq
(sqlist la, sqlist lb, sqlist &lc )
while
(pa <= pa_last)
*pc++
=*pa++
;while
(pb <= pb_last)
*pc++
=*pb++
;}
#include
"sqlist.h"
intmain()
else
printf
("順序表建立失敗\n");
break
;case7:
printf
("請輸入順序表 la 的長度:");
scanf
("%d"
,&n)
;orderlist_sq
(la, n)
;printf
("請輸入順序表 lb 的長度:");
scanf
("%d"
,&n)
;orderlist_sq
(lb, n)
;mergelist_sq
(la, lb, lc)
;printf
("合併後的順序表為:\n");
printlist_sq
(lc)
;break
;case0:
return0;
default
:printf
("輸入錯誤,請重新輸入\n");}}}
順序表的操作實驗 資料結構
1 掌握線性表的順序儲存結構的表示和實現方法。2 掌握順序表基本操作的演算法實現。3 了解順序表的應用。1 建立順序表。2 在順序表上實現插入 刪除和查詢操作 驗證性內容 3 刪除有序順序表中的重複元素 設計性內容 4 完成乙個簡單學生成績管理系統的設計 應用性設計內容 1.硬體環境要求 pc機 單...
資料結構實驗一 順序表的操作 c c
順序表的基本操作 include define maxsize 100 using namespace std typedef int elemtype typedef struct sqlist 順序表的初始化 intinitlist sqlist l 順序表的建立 intcreatlist sq...
資料結構實驗 順序表的基本操作
include 1 1儲存結構 define maxsize 100 typedef struct sqlist 1 2初始化順序表並放入n個資料 void initlist sqlist l 1 3初始化順序表並放入n個資料 void listinsert sqlist l,int i,int e...