内容发布更新时间 : 2025/2/7 10:48:55星期一 下面是文章的全部内容请认真阅读。
顺序表:
#include
using namespace std;
class SeqList {
public: SeqList(int Size) {MaxSize=Size;last=0;data=0;listsize=0;}
SeqList(int* array,int size); //重载构造函数,用一个数组初始化顺序表 ~SeqList() //析构函数 {
delete[] data; }
int length() const; //计算表长度
int find(int value) const; //查找value在表中位置
bool insert(int value,int i); //插入value在表中第i个位置处 bool remove(int value); //删除value
bool isEmpty(); //判断顺序表是否为空 bool isFull(); //判断顺序表是否已满 int get(int i); //取第i个元素的值 private:
int *data; //顺序表的存放数组,保存值 int MaxSize; //顺序表最大可容纳项数
int last; //顺序表当前已存表项的最后位置 int listsize; };
SeqList::SeqList(int* array,int size) {
listsize=size;
data=new int[MaxSize]; for(int i=0;i int SeqList::length() const { return last+1; } int SeqList::find(int value) const { int i=0; while(i<=last&&data[i]!=value) i++; if(i>last) return -1; else return i+1; } bool SeqList::insert(int value,int i) { if(i<0||i>last+1||last==MaxSize-1) //顺序表已满或i值不合条件 return false; else { last++; //顺序表长度加1 for(int j=last;j>i;j--) //元素依次后移 data[j]=data[j-1]; data[i]=value; for (i=0;i bool SeqList::remove(int value) { int i=find(value); if(i>=0) { last--; //顺序表长度减1 for(int j=i-1;j<=last;j++) //依次前移 data[j]=data[j+1]; for (i=0;i return false; } int SeqList::get(int i) { if(i<0||i>last) return NULL; else return data[i]; } void main() {int c,d,e,f,g,a[N]; SeqList(100); for (int i=0;i cout<<\表长度为:\for( i=0;i cout<<\cout< cout<<\查找value在表中位置***************\ cout<<\请输入要查找的值:\cin>>c; d=sql.find(c); if(d==-1) cout<<\输入有误!\ else cout<<\您所查找的值在第\位\cout< cout<<\对应位置插入值***************\cout<<\插入\ cout<<\请输入要插入的值:\cin>>e; cout<<\请输入要插入的位置:\cin>>f;