c++链表的操作
2015-01-04 15:57
239 查看
c++根据数据结构
实现了顺序表的倒置和表中数据的删除,很简单。
实现了顺序表的倒置和表中数据的删除,很简单。
#include<iostream> using namespace std; template <class T> class SeqList{ public: SeqList(int mSize); ~SeqList(){ delete [] elements; } bool Insert(int i,T x); void Delete_value(T value); void Output(ostream& out)const; void Invert(); private: int maxLength; T* elements; int n; }; template<class T> SeqList<T> :: SeqList(int mSize){ maxLength = mSize; elements = new T[maxLength]; n =0; } 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> void SeqList<T> :: Delete_value(T value){ int ncount = 0; for(int i = 0; i < n; i++){ if(ncount > 0) elements[i-ncount] = elements[i]; if(elements[i] == value){ ncount ++ ; } } n = n - ncount; } template<class T> void SeqList<T> :: Output(ostream& out)const{ for(int i =0; i < n; i++) out << elements[i] <<" "; out << endl; } template<class T> void SeqList<T> :: Invert(){ T temp; temp = elements[0]; for(int i = 0; i < n/2; i++){ temp = elements[i]; elements[i] = elements[n-i-1]; elements[n-i-1] = temp; } } int main(){ int mSize; cin >> mSize; SeqList<int> seq(mSize); int value,i; for(i = 0; i < mSize; i++){ cin >> value; seq.Insert(i - 1,value); } int deletenum ; cin >> deletenum; int cmSize; cin >> cmSize; SeqList<char> cseq(cmSize); char cvalue; for(i = 0; i < cmSize; i++){ cin >> cvalue; cseq.Insert(i - 1,cvalue); } char deletechar; cin >> deletechar; int dmSize; cin >> dmSize; SeqList<double> dseq(dmSize); double dvalue; for(i = 0; i < dmSize; i++){ cin >> dvalue; dseq.Insert(i - 1,dvalue); } double deletedouble; cin >> deletedouble; seq.Invert(); seq.Output(cout); seq.Delete_value(deletenum); seq.Output(cout); cseq.Invert(); cseq.Output(cout); cseq.Delete_value(deletechar); cseq.Output(cout); dseq.Invert(); dseq.Output(cout); dseq.Delete_value(deletedouble); dseq.Output(cout); return 0; }
相关文章推荐
- C/C++面试之算法系列--典型的几个链表操作-逆序和重排
- c/c++链表操作
- C++第十四周【任务2】建立专门的链表类处理有关动态链表的操作
- C++实现链表操作
- C++ 实现链表的基本操作之一:链表插入
- C++链表操作
- C++链表的创建与操作
- 详细的单链表基本操作C/C++实现
- c++链表操作
- c++链表基本操作
- C++链表基本操作
- c++链表的操作
- C++链表的创建与操作
- 链表的操作 C/C++
- 数据结构_队列_用链表动态建立释放节点实现队列各种操作_C++实现
- C++之链表操作
- 链表的相关操作查找插入删除(c++ 数据结构)
- C++ 链表操作
- 单向链表常用操作,C和C++版本(转载)
- [C++]数据结构:有序链表SortedChain的基本实现与操作