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

2021-10-19 17:54:45 字數 2826 閱讀 6510

1.掌握線性表的順序儲存結構的表示和實現方法。

2.掌握順序表基本操作的演算法實現。

3.了解順序表的應用。

1.建立順序表。

2.在順序表上實現插入、刪除和查詢操作(驗證性內容)。

3.刪除有序順序表中的重複元素(設計性內容)。

4.完成乙個簡單學生成績管理系統的設計(應用性設計內容)。

1.硬體環境要求:pc機(單機)

2.使用的軟體名稱、版本號以及模組:windows環境下的turboc2.0以上或vc++等 。

前期要求熟練掌握了c語言的程式設計規則、方法和順序表的基本操作演算法。

1.實驗要求程式設計實現如下功能:

(1)根據輸入順序表的長度n和各個資料元素值建立乙個順序表,並輸出順序表中各元素值,觀察輸入的內容與輸出的內容是否一致。

(2)在順序表的第i個元素之前插入乙個值為x的元素,並輸出插入後的順序表中各元素值。

(3)刪除順序表中第i個元素,並輸出刪除後的順序表中各元素值。

(4)在順序表中查詢第i個元素,如果查詢成功,則顯示「查詢成功」和該元素在順序表中的位置,否則顯示「查詢失敗」。

線性表的順序儲存結構稱為順序表,順序表的儲存結構描述為:

#define maxlen  30  

/*線性表的最大長度*/

typedef

struct

sqlist;

/*順序表的型別*/

【核心演算法提示】

1.順序表插入操作的基本步驟:要在順序表中的第i個資料元素之前插入乙個資料元素x,首先要判斷插入位置i是否合法,假設線性表的表長為n,則i的合法值範圍:1≤i≤n+1,若是合法位置,就再判斷順序表是否滿,如果滿,則增加空間或結束操作,如果不滿,則將第i個資料元素及其之後的所有資料元素都後移乙個位置,此時第i個位置已經騰空,再將待插入的資料元素x插入到該位置上,最後將線性表的表長增加1。

2.順序表刪除操作的基本步驟:要刪除順序表中的第i個資料元素,首先仍然要判斷i的合法性,i 的合法範圍是1≤i≤n,若是合法位置,則將第i個資料元素之後的所有資料元素都前移乙個位置,最後將線性表的表長減1。

3.順序表查詢操作的基本步驟:要在順序表中查詢乙個給定值的資料元素,則可以採用順序查詢的方法,從順序表中第1個資料元素開始依次將資料元素值與給定值進行比較,若相等則返回該資料元素在順序表中的位置,否則返回0值。

【核心演算法描述】
status sqlist_insert

(sqlist &l,

int i,elemtype x)

/*在順序表l中第i個元素前插入新元素x*/

status sqlist_delete

(sqlist &l,

int i,elemtype &e)

/*在順序表l中刪除第i個元素*/

intsqlist_search

(sqlist l,elemtype x)

/* 在順序表中查詢值為x的元素,如果找到,則函式返回該元素在順序表中的位置,否則返回0*/

3.源程式**參考

#define maxlen 50

typedef

struct

sqlist;

sqlist sqlist_insert

(sqlist l,

int i,

int x)

/*順序表插入函式*/

return l;

}sqlist sqlist_delete

(sqlist l,

int i)

/*順序表刪除函式*/

return l;

}int

sqlist_search

(sqlist l,

int x)

/* 順序表查詢函式*/

void

sqlist_display

(sqlist l)

/*順序表元素輸出函式*/

main()

/*主函式 */

1.程式設計實現刪除有序順序表中的所有重複元素,即使有序順序表中相同的元素只保留乙個。

⑴ 實驗要求

① 根據輸入的n個非遞減的有序資料建立乙個有序順序表,並輸出有序順序表中各元素值。

② 刪除有序順序表中所有的重複元素,並顯示刪除後的有序順序表中各元素值。

⑵ 核心演算法提示

要在有序順序表中刪除重複的元素,首先就要抓住有序順序表的特性:重複的元素總是在相鄰的位置上,如:12,15,15,15,35,56,56,78。則刪除重複元素後所得的有序表為:12,15,35,56,78。下面給出大致的操作步驟:從第1 個元素開始,依次將它與後面相鄰的元素進行比較,如果相等則將前面那個相等的元素從順序表中刪除;如果不相等,則繼續往下比較,如此重複,直到最後乙個元素為止。

⑶ 核心演算法描述

sqlist delsqlist

(sqlist l)

else

i++;return l;

}

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

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

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

編寫乙個完整的程式,實現順序表的生成 插入 刪除 輸出等基本運算。1 建立乙個順序表,含有 n 個資料元素。2 輸出順序表。3 在順序表中刪除值為 x 的結點或者刪除給定位置 i 的結點。4 實現把該表中所有奇數排在偶數之前,即表的前面為奇數,後面為偶數。5 輸入整型元素序列,利用有序表插入演算法建...

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

順序表的基本操作 include define maxsize 100 using namespace std typedef int elemtype typedef struct sqlist 順序表的初始化 intinitlist sqlist l 順序表的建立 intcreatlist sq...