實驗一 線性表的基本操作

2021-09-22 21:00:02 字數 2605 閱讀 3100

一、線性結構的順序表基本操作

實驗目的

1.學會定義單鏈表的結點型別、線性表的順序儲存型別,實現c程式的基本結構,對線性表的一些基本操作和具體的函式定義。

2.掌握順序表的基本操作,實現順序表的插入、刪除、查詢以及求並集等運算。

3.掌握對多函式程式的輸入、編輯、除錯和執行過程。

實驗要求

1.預習c語言中結構體的定義與基本操作方法。

2.對順序表的每個基本操作用單獨的函式實現。

3.編寫完整程式完成下面的實驗內容並上機執行。

實驗內容

1.編寫程式實現順序表的下列基本操作:

(1)初始化順序表la。

(2)將la置為空表。

(3)銷毀la。

(4)在la中插入乙個新的元素。

(5)刪除la中的某一元素。

(6)在la中查詢某元素,若找到,則返回它在la中第一次出現的位置,否則返回0。

(7)列印輸出la中的元素值。

2.(選做)編寫程式完成下面的操作:

(1)構造兩個順序線性表la和lb,其元素都按值非遞減順序排列。

(2)實現歸併la和lb得到新的順序表lc,lc的元素也按值非遞減順序排列。

(3)假設兩個順序線性表la和lb分別表示兩個集合a和b,利用union_sq操作實現a=a∪b。

二、單鏈表基本操作(選做)

實驗目的

1. 學會定義單鏈表的結點型別、線性表的鏈式儲存型別,實現對單鏈表的一些基本操作和具體的函式定義,了解並掌握單鏈表的類定義以及成員函式的定義與呼叫。

2. 掌握單鏈表基本操作及兩個有序表歸併、單鏈表逆置等操作的實現。

實驗要求

1.預習c語言中結構體的定義與基本操作方法。

2.對單鏈表的每個基本操作用單獨的函式實現。

3.編寫完整程式完成下面的實驗內容並上機執行。

實驗內容

1.編寫程式完成單鏈表的下列基本操作:

(1)初始化單鏈表la。

(2)在la中插入乙個新結點。

(3)刪除la中的某乙個結點。

(4)在la中查詢某結點並返回其位置。

(5)列印輸出la中的結點元素值。

2.構造乙個單鏈表l,其頭結點指標為head,編寫程式實現將l逆置。(即最後乙個結點變成第乙個結點,原來倒數第二個結點變成第二個結點,如此等等。)

附:**

c++下執行:

#include

#include

//順序表的定義:

#define listsize 100//表空間大小可根據實際需要而定,這裡假設為100

typedef

int datatype;//datatype可以是任何相應的資料型別如int ,float,char.

typedef

struct seqlist

seqlist;

int main()

printf("\n");

//插入資料

printf("輸入插入的資料 x=");

scanf("%d",&x);

printf("輸入插入的位置 k=");

scanf("%d",&k);

printf("\n插入 資料前的表:\n");//表插入前後對比性輸出

printlist(l);

l=insertlist(l,x,k);

printf("\n插入 資料後的表:\n");//表插入前後對比性輸出

printlist(l);

//刪除資料

printf("輸入刪除的位置 k=");

scanf("%d",&k);

printf("\n刪除 資料前的表:\n");//表刪除前後對比性輸出

printlist(l);

l=deletelist(l,k);

printf("\n刪除 資料後的表:\n");//表刪除前後對比性輸出

printlist(l);

return0;}

//初始化順序表

struct seqlist initlist(struct seqlist l)

//順序表的建立

struct seqlist createlist(struct seqlist l,int n)

return l;

}void printlist(seqlist l)

for(i=0;i1;i++)

printf("%d\n",l.data[i]);

}int locatelist(seqlist l,datatype x)

return0;}

struct seqlist insertlist(seqlist l,datatype x,int k)

if(l.length==listsize)

for(i=l.length;i>=k;i--)

l.data[i]=l.data[i-1];

l.data[k-1]=x;

l.length++;

return l;

}struct seqlist deletelist(seqlist l,int i)

實驗一 線性表的基本操作實現

1 實驗目的 學習線性表的順序儲存結構,掌握線性表的建立,查詢,插入,刪除和輸出等基本操作。2 實驗內容 用c 的模板機制來實現線性表的基本操作 學習掌握線性表的順序儲存結構 鏈式儲存結構的設計與操作。對順序表建立 插入 刪除的基本操作,對單鏈表建立 插入 刪除的基本操作演算法。3 實驗中用到的資料...

實驗一線性表的基本操作實現及其應用

一 實驗目的 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。二 實驗內容 1 順序表的建立與操作實現 建立 n 個元素的順序表 n 的大小和表裡資料自己確定 實現相關的操作 輸出,插 入,刪除,查詢等功能。編寫完整程式實現...

實驗一線性表的基本操作實現及其應用

一 實驗目的 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。二 實驗內容 三 實驗步驟 1 建立乙個模板類 2 建構函式建立列表,length,get,locate,insert,delete,printlist函式 3 ...