数据结构-线性表-顺序表示 (二)
2011-09-24 15:47
274 查看
线性表的顺序表示(二):
头文件:seqlist.h
#include "linearlist.h" template <class T> class SeqList:public LinearList<T> { private: int maxLength; // 顺序表的最大长度 T *elements; // 动态一维数组的指针 public: SeqList(int mSize); ~SeqList(); bool IsEmpty() const; int Length() const; bool Find(int i, T &x) const; int Search(T x) const; bool Insert(int i, T x); bool Delete(int i); bool Update(int i, T x); void Output(ostream &out) const; }; template <class T> SeqList<T>::SeqList(int mSize) { maxLength = mSize; elements = new T[maxLength]; n = 0; } template <class T> SeqList<T>::~SeqList() { delete[] elements; } template <class T> bool SeqList<T>::IsEmpty() const { return n == 0; } template <class T> int SeqList<T>::Length() const { return n; } template <class T> bool SeqList<T>::Find(int i, T &x) const { if (i < 0 || i > n-1) { cout << "Out of Bounds"<<endl; return false; } x = elements[i]; return true; } template <class T> int SeqList<T>::Search(T x) const { for(int i = 0; i < n; i++ ) { if(elements[i] == x) { return i; } } return -1; } template <class T> bool SeqList<T>::Insert(int i, T x) { if(i < -1 || i > n-1) { cout<<"Out Of Bounds"<<endl; return false; } if(n == maxLength) { cout<<"OverFlow"<<endl; return false; } for( int j = n-1; j>i; j--) { elements[j+1] = elements[j]; } elements[i+1] = x; n++; return true; } template <class T> bool SeqList<T>::Delete(int i) { if(n == 0) { cout << "UnderFlow" <<endl; return false; } if(i < -1 || i > n-1) { cout<<"Out Of Bounds"<<endl; return false; } for( int j = i + 1; j < n; j++) { elements[j-1] = elements[j]; } n--; return true; } template <class T> bool SeqList<T>::Update(int i, T x) { if(i < -1 || i > n-1) { cout<<"Out Of Bounds"<<endl; return false; } elements[i] = x; return true; } template <class T> void SeqList<T>::Output(ostream &out) const { for(int i = 0; i < n; i++ ) { out << elements[i]; if(i != n-1) { out<<" "; } } out << endl; }
相关文章推荐
- 数据结构链表习题2.27,假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合,现要求另辟空间构成一个顺序链表
- 数据结构-线性表-顺序表示 (一)
- 数据结构-线性表-顺序表示 (三)
- 数据结构 线性表 顺序表示和实现
- 数据结构线性表之定长顺序表
- 数据结构习题分析:已知由一个线性链表表示的线性表中含有三类字符的数据元素,是编写算法将该线性表分割为三个循环链表,其中每个。。。。。
- 数据结构之队列顺序表示与实现2
- 数据结构线性表—静态顺序表的实现
- 数据结构线性表之不定长顺序表
- 数据结构线性表之顺序表实作
- 数据结构线性表之顺序表的基本操作插入、删除、遍历、初始化
- 数据结构线性表的动态顺序实现增删改查
- 线性表(顺序表,链表的表示和实现)
- 线性表的顺序表示和实现(数据结构)
- 数据结构 顺序线性表
- 基本数据结构——队列的顺序表示
- 数据结构线性表之顺序表
- 数据结构之队列的顺序表示及其实现(循环队列)
- 数组表示的线性表(顺序表)的基本操作,以及合并两个非递减数组线性表
- php实现数据结构线性表(顺序和链式)