?? seqlist.h
字號(hào):
#include <iostream.h>
#include <stdlib.h>
const int MaxSize = 100; //MaxSize是問(wèn)題要求的元素?cái)?shù)目的最大值
class SeqList
{
private:
datatype data[MaxSize]; //靜態(tài)數(shù)組
int size; //數(shù)組的當(dāng)前存儲(chǔ)位置
public:
SeqList(void); //構(gòu)造函數(shù)
~SeqList(void); //析構(gòu)函數(shù)
int ListSize(void) const; //返回表元素的個(gè)數(shù)
int ListEmpty(void) const; //檢測(cè)表是否為空
int Find(datatype& item) const; //定位元素item的位置
datatype GetData(int pos) const; //返回位置pos的元素
void Insert(const datatype& item, int pos);//在位置pos插入元素item
datatype Delete(const int pos); //刪除位置pos的元素并返回
void Clearlist(void); //把表清空
};
//構(gòu)造函數(shù)。置順序表的當(dāng)前存儲(chǔ)位置size為0
SeqList::SeqList(void):size(0){}
//析構(gòu)函數(shù)
SeqList::~SeqList(void){}
//返回順序表的當(dāng)前存儲(chǔ)位置size的值
int SeqList::ListSize(void) const
{
return size;
}
//判順序表空否,為空返回1;不空返回0
int SeqList::ListEmpty(void) const
{
if (size == 0) return 1;
else return 0;
}
//定位元素item的位置。返回值為item在順序表中的位置;返回值為-1表示不存在
int SeqList::Find(datatype& item) const
{
if(ListEmpty()) return -1;
int i=0;
while(i < size && item != data[i]) i++; //尋找item
if(i < size) return i;
else return -1;
}
//取順序表中位置pos上的元素。參數(shù)出錯(cuò)時(shí)退出
datatype SeqList::GetData(int pos) const
{
if(pos < 0 || pos > size - 1) //取的元素序號(hào)必須在0至size-1之間
{
cerr << "參數(shù)pos越界出錯(cuò)!" << endl;
exit(1); //參數(shù)1表示出錯(cuò)退出
}
return data[pos];
}
//在指定位置pos插入一個(gè)數(shù)據(jù)元素item
void SeqList::Insert(const datatype& item, int pos)
{
int i;
if (size == MaxSize)
{
cerr << "順序表已滿無(wú)法插入!" << endl;
exit(1);
}
if(pos < 0 || pos > size) //當(dāng)pos等于size時(shí)表示插入在最后
{
cerr << "參數(shù)pos越界出錯(cuò)!" << endl;
exit(1);
}
//從后向前把前一個(gè)元素遷移到后一個(gè)元素位置直到存儲(chǔ)位置pos為止
for(i = size; i > pos; i--) data[i] = data[i-1];
data[pos] = item; //在pos位置插入item
size++; //存儲(chǔ)當(dāng)前位置size加1
}
//刪除指定位置pos上的數(shù)據(jù)元素
datatype SeqList::Delete(const int pos)
{
if (size == 0)
{
cerr << "順序表已空無(wú)元素可刪!" << endl;
exit(1);
}
if(pos < 0 || pos > size - 1) //刪除元素序號(hào)必須在0至size-1之間
{
cerr<<"參數(shù)pos越界出錯(cuò)!"<<endl;
exit(1);
}
datatype temp = data[pos];
//從pos至size-2逐個(gè)元素左移,data[size-1]移入data[size-2]中
for(int i = pos;i < size-1; i++) data[i] = data[i+1];
size--; //存儲(chǔ)當(dāng)前位置size減1
return temp;
}
//置順序表為空
void SeqList::Clearlist(void)
{
size = 0; //存儲(chǔ)當(dāng)前位置size置為初始化值
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -