您的位置:首页 > 游戏 > 手游 > 互联网公司排名图_中国铁塔公司招聘网站_电商运营多少钱一个月_网络推广运营公司

互联网公司排名图_中国铁塔公司招聘网站_电商运营多少钱一个月_网络推广运营公司

2024/12/24 2:11:33 来源:https://blog.csdn.net/m0_68908707/article/details/142411051  浏览:    关键词:互联网公司排名图_中国铁塔公司招聘网站_电商运营多少钱一个月_网络推广运营公司
互联网公司排名图_中国铁塔公司招聘网站_电商运营多少钱一个月_网络推广运营公司

 

手动封装一个顺序表(SeqList),分文件编译实现

有私有成员:顺序表数组的起始地址 ptr、 顺序表的总长度:size、顺序表的实际长度:len

成员函数:初始化 init(int n)

判空:empty

判满:full

尾插:push_back

插入:insert(int index)

任意位置删除:erase(int index)

尾删: pop_back

求长度:size()

获取任意位置元素:& at(int inex)

将顺序表进行排序:sort(bool flag) //flag 为真,表示升序,否则是降序

//sql.h#ifndef SQL_H
#define SQL_Husing namespace std;//typedef int datatype;        //类型重命名
using datatype = int;class SeqList
{
private:datatype *ptr;        //指向堆区空间的起始地址int size;             //总长度int len = 0;          //当前顺序表实际长度public:void init(int n);//判空bool empty();//判满bool full();//尾插void push_back(datatype e);void pop_back();void insert(datatype n,datatype e);void erase(int n);int sql_size();int &at(int n);void sort(bool flag);//定义展示函数void show();};
#endif // SQL_H
//sql.cpp#include"sql.h"
#include <iostream>
#include<memory.h>
#include<stdlib.h>
#include<string.h>
#include <algorithm>void SeqList::init(int n)
{//在堆区申请出一个长度为n的空间,将其实地址赋值给ptrthis->ptr = new datatype[n];//给len进行初始化this->len = 0;this->size = n;
}//判空
bool SeqList::empty()
{return this->len == 0;
}
//判满
bool SeqList::full()
{return this->len == this->size;
}
//尾插
void SeqList::push_back(datatype e)
{//判断是否满了if(this->full()){return ;}this->ptr[len++] = e;}void SeqList::pop_back()
{if(this->empty()){cout<<"数据库已空"<<endl;return;}len--;
}void SeqList::insert(datatype n,datatype e)
{//插入if(this->full()){cout<<"数据库已满"<<endl;return;}if(n<0||n>len){cout<<"位置超出范围"<<endl;}for (int i=len-1;i>n;i--){this->ptr[i]=this->ptr[i-1];}this->ptr[n]=e;this->len++;
}void SeqList::erase(int n)
{if(n<0||n>len){cout<<"位置超出范围"<<endl;}for(int i=n-1;i<len-1;i++){ptr[i]=ptr[i+1];}len--;
}int SeqList::sql_size()
{return len;
}int &SeqList::at(int n)
{if(n<0||n>len){cout<<"位置超出范围"<<endl;}return ptr[n];
}
void SeqList::sort(bool flag)
{if (flag){std::sort(ptr, ptr + len);  // 升序} else {std::sort(ptr, ptr + len, std::greater<int>());  // 降序}
}//定义展示函数
void SeqList::show()
{//判空cout<<"当前顺序表中的元素分别是:";for(int i=0; i<this->len; i++){cout<<this->ptr[i]<<" ";}cout<<endl;
}
//main.cpp#include <iostream>
#include "sql.h"int main()
{SeqList sl;           //实例化一个顺序表对象sl.init(6);            //申请空间sl.push_back(3);sl.push_back(2);sl.push_back(1);sl.push_back(4);cout<<endl;sl.show();cout<<endl;sl.push_back(9);sl.show();sl.pop_back();cout<<endl;sl.show();cout<<endl;sl.insert(3,10);sl.show();sl.erase(4);cout<<endl;sl.show();cout<<"升序排序"<<endl;sl.sort(true);sl.show();cout<<"降序排序"<<endl;sl.sort(false);sl.show();return 0;
}

版权声明:

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

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