数据结构之C++实现顺序表(SeqList)无主函数
2018-03-08 20:20
591 查看
#include <iostream> using namespace std; #define SIZE 10 class SeqList { public: SeqList() { m_capacity = SIZE; m_data = new int[m_capacity]; m_size = -1; } ~SeqList() { delete []m_data; m_data=NULL; m_capacity=0;//可有可无 m_size = -1;//同上注释 } void PushBack(int v); void PushFront(int v); void insertValue(int i,int v); void PopBack(); void PopFront(); void DeleteValue(int i); bool IsEmpty(){return m_size == -1 ? true : false;} bool IsFull(){return m_size == m_capacity-1 ? true:false;} void Clear(); void Destroy(); void Sort(); void Reverse(); int Find(int value); void print() { for(int i = 0;i<m_size+1;i++) cout<<m_data[i]<<" "; cout<<endl; } private: int *m_data; int m_capacity; int m_size; }; void SeqList::PushBack(int v) { if(!IsFull()) m_data[++m_size] = v; } void SeqList::PushFront(int v) { if(!IsFull()) { for(int i = m_size+1;i>0;i--) m_data[i] = m_data[i-1]; m_data[0] = v; ++m_size; } } void SeqList::insertValue(int i,int v) { if(i>=0&&i<=m_size+1 && !IsFull()) { for(int j = m_size+1;j>i;j--) m_data[j] = m_data[j-1]; m_data[i] = v; ++m_size; } } void SeqList::PopBack() { if(!IsEmpty()) m_size--; } void SeqList::PopFront() { if(!IsEmpty()) { for(int i = 0;i<m_size;i++) m_data[i] = m_data[i+1]; m_size--; } } void SeqList::Reverse() { if(IsEmpty() || m_size == 0) return; for(int i = 0;i<=m_size/2;i++) { int t = m_data[i]; m_data[i] = m_data[m_size-i]; m_data[m_size-i] = t; } } void SeqList::DeleteValue(int i) { if(i >=0 && i<=m_size&&!IsEmpty()) { for(int j = i;j<m_size;j++) m_data[j] = m_data[j+1]; m_size--; } } void SeqList::Clear() { m_size = -1; } void SeqList::Destroy() { free(m_data); m_data = NULL; } void SeqList::Sort() { if(IsEmpty() || m_size == 0) return; for(int i = 0;i<m_size;i++) { for(int j = 0;j<m_size-i;j++) { if(m_data[j] < m_data[j+1]) { int t = m_data[j]; m_data[j] = m_data[j+1]; m_data[j+1] = t; } } } } int SeqList::Find(int value) { if(!IsEmpty()) { for(int i = 0;i<=m_size;i++) { if(m_data[i] == value) return i; } return -1; } }
相关文章推荐
- 数据结构之C++实现无头节点链表(List)(无主函数)
- 数据结构之C++实现顺序队列(SeqQueue)(无主函数)
- 数据结构之C++实现链式队列(LinkQueue)(无主函数)
- 数据结构之C++实现图的遍历哈夫曼树(Haff)(无主函数)
- C/C++函数参数的入栈顺序,计算顺序和可变参数的实现
- 《数据结构、算法与应用》9.(C++实现顺序表)
- C语言中的可变参数-printf的实现原理 在C/C++中,对函数参数的扫描是从后向前的。C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出
- C++类模板 实现顺序表 从《数据结构》(C++版) 北京科海摘抄
- C++数据结构 顺序表的实现(模板类的实现)
- 数据结构之C++实现图(Graph)(无主函数)
- 【数据结构】用C++实现顺序表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
- 数据结构笔记之用C++实现顺序栈和链式栈
- SeqList 顺序表的静态实现
- 【c++版数据结构】之顺序表的实现
- 顺序存储线性表的C++实现——严蔚敏版《数据结构》
- C++学习总结——顺序存储,链式存储,索引存储,哈希存储的优缺点,以及vector数组,list链表,十字链表,索引结构,hash表的实现
- 数据结构-栈:顺序栈与链栈的C++模板类实现
- 循序表的(SeqList.c)(函数实现)
- 数据结构与算法之—顺序栈c++面向对象实现