實驗一 順序表的實現

2021-08-08 15:54:54 字數 2070 閱讀 4081

熟練掌握線性表的結構特點,掌握順序表的基本操作,鞏固c++相關的程式設計方法與技術

建立若干個元素的順序表

實現相關的操作,輸出、插入、刪除、查詢等功能,編寫完整程式實現

實驗程式中用到的資料型別的定義:int、char

輸入輸出,線性表的長度為length,將資料存放在標頭檔案中建立的陣列data[maxsize]中,輸入時出現length大於maxsize出現上溢,為零則出現下溢。

插入,用j標記元素所在的陣列.將第j個元素存在陣列下標為j-1的位置

查詢,用迴圈語句,在陣列中尋找該元素,直到相等,停止迴圈

刪除,先利用查詢功能找出元素位置,利用j位置替換j-1位置

完整程式:

#ifndef seqlist_h                               //標頭檔案

#define seqlist_h

const int maxsize=12;

class seqlist

public:

seqlist()

seqlist(inta,int n);

~seqlist(){}

voidinsert(int i,int x);

intdelete(int i);

intlocate(int x);

voidprintlist();

private:

intdata[maxsize];

intlength;

#endif

#include//引入輸入輸出流

using namespace std;

#include"seqlist.h"   

//以下是類seqlist的宣告

seqlist::seqlist(int a,int n)

if(n>maxsize)throw"引數非法";

for(inti=0;idata[i]=a[i];

length=n;

void seqlist::insert(int i,int x)     //插入功能

if(length>=maxsize)throw"上溢";

if(i<1||i>length+1)throw"位置非法";

for(intj=length;j>=i;j--)

data[j]=data[j-1];

data[i-1]=x;

length++;

int seqlist::delete(int i)        //刪除功能

if(length==0)throw"下溢";

if(i<1||i>length)throw"位置非法";

intx=data[i-1];

for(intj=i;jdata[j-1]=data[j];

length--;

returnx;

int seqlist::locate(int x)         //查詢功能

for(inti=0;iif(data[i]==x)return i+1;

return0;

void seqlist::printlist()           //輸出功能

這是資料結構的第一節實驗課,順序表既線性表的順序儲存結構,在理論課上對順序表的概念還有點模糊,在實驗課上可以得到進一步的理解。在實驗過程中,我只實現了基本的功能,所以我需要向同學多參考多學習。資料結構的學習需要結合c++,所以我要不斷回顧之前的c++知識。

實驗一順序表的實現

includeusing namespace std const int maxsize 50 class seqlist seqlist int a,int n seqlist int length int locate int x void insert int i,int x int dele...

實驗一 順序表

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

實驗一 線性表的順序實現

很快期末了,準備把資料結構的寫過的實驗彙總一波,也相當於複習一下了。以下 均通過驗證,可以達到實驗要求 include include 順序表的標頭檔案,檔名sequlist.h define maxsize 100 typedef int datatype typedef structsequen...