C++实现顺序表
来源:互联网 发布:hr抢购软件 编辑:程序博客网 时间:2024/06/03 14:39
顺序表:用一段地址连续的存储单元一次存储数据元素的线性结构。
目的:比较数组
下来用代码来实现顺序表的各个功能:
#include<iostream>using namespace std;typedef int DataType;class Seqlist{public:Seqlist()//构造函数:_a(NULL),_size(0),_capacity(0){}Seqlist(const Seqlist& s)//拷贝构造函数{if(_a){_a=(DataType*)malloc(sizeof(DataType)*s._size);memcpy(_a,s._a,sizeof(DataType)*s._size);}else_a=NULL;_size=s._size;_capacity=s._capacity;}~Seqlist()//析构函数{if(_a!=NULL){free(_a);}}Seqlist& operator=(const Seqlist&s) //赋值运算符的重载 { if (this != &s) { if (s._a != NULL) { DataType* tmp = (DataType*)malloc(sizeof(DataType)*s._size); memcpy(tmp, s._a, sizeof(DataType)*s._size); free(_a); _a = tmp; } else { free(_a); _a = NULL; } _size = s._size; _capacity = s._size; } return *this; }void PushBack(DataType x)//尾插{CheekCapacity();_a[_size] = x;_size++;}void PopBack()//尾删{if(_size == 0){cout<<"顺序表为空"<<endl;}else{--_size;}}void Insert(size_t pos,DataType x)//指定位置插入元素{if(pos>0 && pos<=_size){size_t i = _size;while(i >= pos){_a[i] = _a[i-1];i--;}_a[pos-1] = x;_size++;}}void Delete(size_t pos) //删除指定位置元素{ if(pos>0 && pos < _size){for (size_t i = pos - 1; i < _size; i++){_a[i] = _a[i + 1];} } _size--;}void CheekCapacity()//检查函数容量{if(_size == _capacity){_capacity = _capacity*2+3;_a = (DataType*)realloc(_a,_capacity*sizeof(DataType));}}void Swap(Seqlist& s) //交换函数{ swap(_a, s._a); swap(_size, s._size); swap(_capacity, s._capacity);}int Find(DataType x)//查找函数{for (size_t i = 0; i < _size; i++) { if (_a[i] == x) { return i + 1; } else continue; }} void Print() //打印显示函数{for (size_t i = 0; i < _size; ++i){cout << _a[i] << " ";}cout << endl; }private:DataType *_a;//数据块指针size_t _size;//当前有效数据个数size_t _capacity;//容量};void TestSeqlist()//测试函数 {Seqlist l1;Seqlist l2;l1.PushBack(1);l1.PushBack(2);l1.PushBack(3);l1.PushBack(4);//l2=l1;//l1.Insert(3,3);//l1.PopBack();//l1.Find(3);//cout << s1.Find(1) << endl;//l1.Delete(2);l1.Print();//l2.operator=(l1);//l2.Print();}int main(){ TestSeqlist();return 0;}
阅读全文
0 0
- 【C++】实现顺序表
- 【c++】实现顺序表
- C语言实现顺序表
- 数据结构---顺序表c实现
- 顺序表c语言实现
- 顺序表的C实现
- c语言实现顺序表
- 顺序表实现-c
- 【C++】顺序表的实现
- 顺序表(C实现)
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- 【C++】顺序表的实现
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- next_permutation与使用
- Java之JFileChooser设置窗体打开路径
- php 注册email激活账号技术
- Codeforces 4A
- 【Android 从入门到放弃】 ButterKnife 使用
- C++实现顺序表
- 正则表达式
- 产品分析和深度学习资料(持续补充)
- JAVA NIO(二):小端字节顺序
- Java.util.Arrays.deepToString(Object[])
- CentOS配置服务器常用指令
- oracle---合并geometry
- Mongodb从0到1系列五: 主从复制
- leetcode 466. Count The Repetitions