当前位置: 首页> 汽车> 新车 > 使用C++封装顺序表

使用C++封装顺序表

时间:2025/7/11 19:19:30来源:https://blog.csdn.net/2301_76740986/article/details/141644581 浏览次数: 0次

作业:使用C++手动封装一个顺序表,包含成员数组一个,成员变量N个

#include <iostream>using namespace std;using datatype=int;
#define MAX 20struct SeqList
{   private:               //私有datatype *data;int size=0;              //数组的大小int len=0;          //顺序表实际长度public://要实现的函数//初始化void init(int s);//1.判空bool empty();//2.判满bool full();//3.求当前顺序表的实际长度int length();//4.添加数据函数bool add(datatype e);//5.任意位置插入函数bool insert_pos(int pos,datatype e);//6.任意位置删除函数bool delete_pos(int pos);//7.访问容易中任意一个元素atdatatype &at(int index);//遍历数组void show();//销毁void distroy();};//初始化
void SeqList::init(int s)
{size = s;    //此时最大容量data = new datatype(size);    //申请空间
}//1判空
bool SeqList::empty()
{return len==0;
}//2判满
bool SeqList::full()
{return len==size;
}//求当前顺序表的实际长度
int SeqList::length()
{cout<<"当前实际长度:"<<len<<endl;return len;
}//添加数据函数
bool SeqList::add(datatype e)
{//判断是否满if(full()==1){cout<<"已满,添加失败!"<<endl;return 0;}data[len]=e;len++;cout<<"成功添加!"<<endl;
}//任意位置插入函数
bool SeqList::insert_pos(int pos,datatype e)
{//判断是否满if(full()==1){cout<<"已满,添加失败!"<<endl;return 0;}for(int i=len-1;i>=pos;i--){data[i+1]=data[i];}data[pos]=e;len++;cout<<"成功添加!"<<endl;
}//6.任意位置删除函数
bool SeqList::delete_pos(int pos)
{//判断是否为空if(empty()){cout<<"为空表,删除失败!"<<endl;return 0;}for(int i=pos-1;i<len;i++){data[i]=data[i+1];}len--;cout<<"成功删除!"<<endl;
}//7访问容器中任意一个元素at
datatype &SeqList::at(int index)
{cout<<data[index]<<endl;return data[index];
}//遍历
void SeqList::show()
{cout<<"数据:";for(int i=0;i<len;i++){cout<<data[i]<<" ";}cout<<endl;
}
//任意位置函数lete_pos(int pos);//释放空间
void SeqList::distroy()
{delete data;
}int main()
{//定义SeqList p1;//调用初始化p1.init(20);//调用添加p1.add(4);p1.add(6);p1.add(8);p1.show();//调用任意位置插入p1.insert_pos(2,9);p1.show();//调用按位置删除p1.delete_pos(2);p1.show();//调用访问元素p1.at(2);//查看当前长度p1.length();//释放p1.distroy();return 0;
}

思维导图:

关键字:使用C++封装顺序表

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: