資料結構實驗一 順序表的操作

2021-10-24 16:05:22 字數 3274 閱讀 3533

編寫乙個完整的程式,實現順序表的生成、插入、刪除、輸出等基本運算。

(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...