C++SeqList
来源:互联网 发布:网络舆情网 编辑:程序博客网 时间:2024/06/14 15:58
C++实现顺序表的若干功能
1.CheckCapacity 容量函数
2.PushBack/PushFront 插入数据和头插函数
3.PopBack/PopFront 删除数据和头删函数
4.Insert函数在指定的节点插入数据,Erase函数删除指定节点的数据
5.Print打印函数
6.测试函数
程序代码:
#pragma oncetypedef 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._size;}void CheckCapacity(){if (_size == _capacity){_capacity = _capacity * 2 + 3;_a = (DataType*)realloc(_a, _capacity*sizeof(DataType));}}void PushBack(DataType x){CheckCapacity();_a[_size] = x;_size++;}void PushFront(DataType x){CheckCapacity();int i = _size;for (; i > 0; i--){_a[i] = _a[i - 1];}_a[0] = x;_size++;}void PopBack(){if (_size == 0){cout << "顺序表为空:" << endl;return;}_size--;}void PopFront(){if (_size == 0){cout << "顺序表为空:\n" << endl;return;}else{for (size_t i = 0; i < _size - 1; i++){_a[i] = _a[i + 1];}_size--;}}void Insert(size_t pos, DataType x){assert(pos<_size);for (size_t i = _size; i > pos; i--){_a[i] = _a[i - 1];}_a[pos] = x;_size++;}void Erase(size_t pos){assert(pos <_size);for (size_t i=pos-1; i < _size - 1; i++){_a[i] = _a[i + 1];}_size--;}void Print(){if (_size == 0){cout << "顺序表为空请添加元素:\n" << endl;return;}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 mylist;mylist.PushBack(1);mylist.PushBack(4);mylist.PushBack(5);mylist.Insert(1,33);mylist.Erase(2);/*mylist.PushFront(2);*//*mylist.PopBack(1);mylist.PopFront(2);*/mylist.Print();}
测试函数代码:
程序运行结果:
0 0
- C++SeqList
- SeqList
- seqlist
- Seqlist
- SeqList.
- SeqList
- 顺序表实现(SeqList C++)
- 链表线性表的c语言实现方式 seqlist.h 和 seqlist.c
- 循序表的(SeqList.c)(函数实现)
- Seqlist 代码
- 数据结构与算法(C++)之一——顺序表(SeqList)
- 【数据结构】顺序表seqlist
- SeqList——顺序表
- SeqList(顺序表的实现)
- SeqList 顺序表的实现
- 顺序表类:class SeqList
- 错误 1 无法将带 [] 的索引应用于“StrigDs.SeqList”类型的表达式 C:/Inetpub/wwwroot/StrigDs/StrigDs/Form5.cs 39 13 StrigDs
- SeqList.h (顺序表及其简单应用)
- 漫步数学分析三十七——极大值与极小值
- ubuntu系统及软件安装相关知识
- pyqt开发笔记
- http学习
- opencv学习之Mat数据类型
- C++SeqList
- centos 安装TensorFlow
- PHP使用curl伪造IP地址和header信息
- Zigbee学习之路1(初识Zigbee)
- JAVA虚拟机体系结构
- VmWare安装Ubuntu出现'SMBus Host Controller not enabled'
- CCF CSP试题 201609-3 炉石传说
- 利用FFmpeg玩转Android视频录制与压缩(一)
- Oracle解决关于密码输入错误也能进system,sys用户的问题