标签:
顺序表作业:
#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; typedef int T; class SeqList{ private: T *data; int MaxSize; ///顺序表最多可以存放的元素个数。 int last; ///顺序表最后一个元素的下标,初始值为-1。 public: SeqList(int sz); void Input();///首先输入元素的个数,然后顺次输入元素的值。 void Output();///输出线性表的所有元素。 void Insert(const T x, int i );///在线性表中第i个位置插入值为x的元素。 void Remove ( T x );///从线性表中删除第一个值等于x的元素。 }; SeqList::SeqList(int sz) { data = new T[sz]; MaxSize = sz; last = -1; } void SeqList::Input() { int n; cin >> n; int value; for(int i = 0; i < n; ++i){ cin >>value; *(data+i) = value; } last=n-1; } void SeqList::Output(){ cout <<"The elements are:" <<endl; for(int i = 0; i <= last; ++i){ cout <<*(data+i) <<endl; } } void SeqList::Insert(int value, int locate){ if(last == -1){ *data = value; last = 0; } else if(locate > last){ ++last; *(data + last) = value; } else{ ++last; int i; for(i = last; i > locate; --i){ *(data+i) = *(data+i-1); } *(data+i) = value; } } void SeqList::Remove(int value){ int i;--last; for(i = 0; i <= last&&*(data+i)!=value; ++i){ *(data+i) = *(data+i+1); } for(i = 0; i <= last; ++i){ *(data+i) = *(data+i+1); } } int main(){ SeqList myList(100); myList.Input(); myList.Output (); int i; for( i=0; i<5; i++) myList.Insert(i+10,i); myList.Output (); for( i=10; i<15; i++) myList.Remove(i); myList.Output (); return 0; }
标签:
原文地址:http://www.cnblogs.com/Kurokey/p/5883163.html