C++实现顺序表
来源:互联网 发布:阿里云管理终端怎么用 编辑:程序博客网 时间:2024/06/18 11:46
#include<iostream>
using namespace std;
typedef int Datatype;
class Seqlist
{
public:
friend ostream& operator<<(ostream& os,Seqlist& s);
using namespace std;
typedef int Datatype;
class Seqlist
{
public:
friend ostream& operator<<(ostream& os,Seqlist& s);
Seqlist(Datatype* pdata=NULL) //构造函数
:_sz(0),
_capacity(0)
{
_pdata=new int[_sz];
memcpy(_pdata,pdata,_sz*sizeof(Datatype));
_capacity=_sz;
:_sz(0),
_capacity(0)
{
_pdata=new int[_sz];
memcpy(_pdata,pdata,_sz*sizeof(Datatype));
_capacity=_sz;
}
Seqlist(const Seqlist& s) //拷贝构造函数
{
_pdata=new Datatype[s._capacity];
memcpy(_pdata,s._pdata,(s._sz*sizeof(Datatype)));
_sz=s._sz;
_capacity=s._capacity;
}
~Seqlist() //析构函数
{
if(_pdata!=NULL)
delete[] _pdata;
_sz=0;
_capacity=0;
}
void checkcapacity() //检查容量
{
while(_sz>=_capacity)
{
Datatype* tmp=new Datatype[_capacity+10];
memcpy(tmp,_pdata,_sz*sizeof(Datatype));
delete[] _pdata;
_pdata=tmp;
_capacity+=10;
}
}
void Pushback(Datatype n)
{
checkcapacity();
_pdata[_sz]=n;
_sz++;
}
void Pushfront(Datatype n)
{
int i=0;
Datatype tmp=_pdata[_sz-1];
checkcapacity();
for(i=_sz-1;i>=0;i--)
{
_pdata[i]=_pdata[i-1];
}
_pdata[0]=n;
_pdata[_sz]=tmp;
_sz++;
}
void Popback()
{
_pdata[_sz]=0;
_sz--;
}
void Popfront()
{
int i=0;
for(i=0;i<_sz-1;i++)
{
_pdata[i]=_pdata[i+1];
}
_sz--;
}
int Find(Datatype x)
{
int i=0;
for(i=0;i<_sz;i++)
{
if(_pdata[i]==x)
return 1;
else
return 0;
}
}
void Remove(Datatype pos)
{
int i=0;
_pdata[pos]=0;
for(i=pos;i<_sz;i++)
{
_pdata[i]=_pdata[i+1];
}
_sz--;
}
void RemoveAll()
{
delete[] _pdata;
_sz=0;
_capacity=0;
}
private:Datatype* _pdata;
int _sz;
int _capacity;
};
ostream& operator<<(ostream& os,Seqlist& s)
{
int i=0;
for(i=0;i<s._sz;i++)
{
os<<s._pdata[i]<<" ";
}
cout<<endl;
return os;
}
ostream& operator<<(ostream& os,Seqlist& s)
{
int i=0;
for(i=0;i<s._sz;i++)
{
os<<s._pdata[i]<<" ";
}
cout<<endl;
return os;
}
void test1()
{
Seqlist list1;
for(int i=0;i<100;i++)
{
list1.Pushback(i);
}
cout<<list1<<endl;
}
void test2()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Pushfront(2);
cout<<list1<<endl;
}
void test3()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Popback();
cout<<list1<<endl;
}
void test4()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Popfront();
cout<<list1<<endl;
}
void test5()
{
int ret=0;
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
ret=list1.Find(7);
if(ret==1)
cout<<"找到"<<endl;
else
cout<<"没找到"<<endl;
}void test6()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Remove(2);
cout<<list1<<endl;
void test5()
{
int ret=0;
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
ret=list1.Find(7);
if(ret==1)
cout<<"找到"<<endl;
else
cout<<"没找到"<<endl;
}void test6()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Remove(2);
cout<<list1<<endl;
}
int main()
{
test2();
getchar();
return 0;
}
int main()
{
test2();
getchar();
return 0;
}
1 0
- 【C++】实现顺序表
- 【c++】实现顺序表
- C语言实现顺序表
- 数据结构---顺序表c实现
- 顺序表c语言实现
- 顺序表的C实现
- c语言实现顺序表
- 顺序表实现-c
- 【C++】顺序表的实现
- 顺序表(C实现)
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- 【C++】顺序表的实现
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- 在PHP中如何使用redis
- python 学习(十八)函数再学习
- 可遍历的栈Stack
- Spring之IOC
- Spring之AOP
- C++实现顺序表
- cocos2d-x-3.0学习笔记之如何搭建安卓开发环境
- YII框架分析笔记1:YII执行流程
- android studio NDK开发环境配置
- Java学习(3)-增强for循环注意的问题
- Linux命令详解-----ls,find
- 系统学习安卓之路--重在坚持
- x264源码分析与应用示例(三)——浅谈码率控制的优化问题
- Hibernate 的Set、List、Map集合操作(添加,修改,查询)