【C++】顺序表的实现
来源:互联网 发布:js去除数组的重复元素 编辑:程序博客网 时间:2024/05/17 01:04
#include<iostream>#include<assert.h>using namespace std;//typedef struct FindRet//{//bool isFind;// 是否找到的标示//size_t index;// 找到数据的下标//}Findret;typedef int DataType;class SeqList{public:SeqList(){ _array = new int[10]; _size = 0; _capicity = 10;}SeqList(const SeqList& sList){_array = new int [sList._capicity] ;_size = sList._size ;_capicity = sList._capicity ;}SeqList& operator=(const SeqList& sList){if(this != &sList){delete []_array;_array = new int [sList._capicity];_size = sList._size ; _capicity = sList._capicity ; }return *this;}~SeqList(){delete []_array;}void PushBack(const DataType& x) //尾插{ _CheakCapicity();_array [_size] = x; _size ++; } void PushFront(const DataType& x)//头插{_CheakCapicity();int i=_size; for(i=_size; i > 0; i--){_array[i] = _array[i-1];} _array[0] = x; _size++;}void PopFront()//头删{if(_size == 0){cout<<"顺序表为空"<<endl;}else{int count = 1;for(count = 1; count<_size; count++){_array[count-1] = _array[count];}_array[_size - 1] = 0;_size--;}}void PopBack(){if(_size == 0){cout<<"顺序表为空"<<endl;}else{_array[_size - 1] = 0;_size--;}}void Print(){int count = _size;for(_size= 0; _size < count ; _size++){cout<<_array[_size]<<" ";}cout<<endl;}// 实现上面的函数void Insert(size_t index, const DataType& x){ _CheakCapicity();int i = _size;for(i = _size; i >= index; i--){_array[i]= _array[i-1];}_array[index-1]=x;_size++;}void Modified (size_t index, const DataType& x){if(index < 0 && index >_size -1){cout<<"不合法的位置"<<endl;}else{_array[index - 1] = x;}}void Remove(size_t index){if(index < 0 && index >_size -1){cout<<"不合法的位置"<<endl;}else{int count = index;for(count = index; count <=_size - 1; count++){_array[count-1]=_array[count]; }_array[_size-1] = 0;_size--;}}bool Find(const DataType& x, size_t findIndex){if(findIndex <0||findIndex >_size-1){return false;}if(_array[findIndex]==x){return true;}return false;}private:bool _CheakCapicity(){if(_size == _capicity){ DataType* tmp = new DataType [_capicity * 2]; memcpy(tmp,_array,sizeof(_size * 4)); delete []_array; _array = tmp; return true;}}private:DataType* _array;size_t _size;size_t _capicity;};int main(){SeqList s1;s1.PushBack(1);s1.PushBack(2);s1.PushBack(3);s1.PushBack(4);s1.PushBack(5);s1.PushFront(6);s1.PushFront(7);s1.PushFront(8);s1.Insert(3,2);s1.Modified(3,7); s1.Remove(3); s1.PopFront();s1.PopBack(); s1.Print ();getchar();return 0;}
0 0
- 顺序表的C实现
- 【C++】顺序表的实现
- 【C++】顺序表的实现
- 【C++】实现顺序表
- 【c++】实现顺序表
- 顺序表的类C实现
- 数据结构(C++)顺序表的实现
- 线性表的顺序实现(C语言)
- 线性表的顺序实现(C++)
- 顺序表的C语言实现
- 数据结构的C实现_顺序表
- 线性表的顺序实现(c语言)
- 顺序表的实现(C语言)
- [c语言]数据结构 顺序表的实现
- 顺序表的C语言实现
- c语言中顺序表的实现
- 顺序表的C语言实现
- C语言顺序表的简单实现
- HDU 4334 & BNU 126130 -- Trouble
- android 应用架构之MVC
- 自定义可点击 富文本组件
- ZOJ_1295解题报告
- linux查看tcp的状态命令
- 【C++】顺序表的实现
- Python eval()函数
- java 学习笔记基础
- 机器学习之神经网络
- 【java】网络
- pat(B)1016. 部分A+B
- Myeclipse中使用svn
- 1589: 奖学金 (结构体)
- android使用全局变量的两种方法