Problem H: 线性表的基本操作
2017-05-09 17:50
239 查看
Problem H: 线性表的基本操作
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 481 Solved: 265
[Submit][Status][Web
Board]
Description
线性表是一类重要的且基础的数据结构。请定义MyList类,来模拟针对线性表的插入、删除等操作:1. 数据成员int *elements:线性表元素。
2. 数据成员int len:线性表容量,即线性表的最大长度。
3. 数据成员int curLen:线性表的当前容量,即当前拥有的元素个数。
4. 构造函数MyList(int _len):构造最大容量为_len的线性表。
5. void append(int d):在线性表的末尾追加元素d。
6. void insert(int p, int d):在线性表的第p个位置(0<=p<curLen)插入元素d。
7. void erase(int p):删除线性表的第p个位置(0<=p<curLen)上的元素。
8. void set(int p, int d):设置线性表的第p个位置(0<=p<curLen)元素为d。
9. void show():显示当前线性表的所有元素。输出时,两两之间用一个空格隔开,首尾不能有空格。
上述“p”是指下标,从0开始计算。
Input
第1行的整数N>0,表示线性表的最大容量。第2行的整数M>0,表示之后有M个操作。
每个操作的类型用字母A、I、E、S分别表示追加、插入、擦除和设置。
如果操作是A,则之后输入追加的元素值。
如果操作是I,则之后输入插入的位置及元素值。
如果操作是E,则之后输入擦除的位置。
如果操作是S,则之后输入设置的位置及元素值。
所有输入均在针对线性表的合法操作范围内。
Output
每次操作后,输出线性表的所有元素。Sample Input
1010A 1A 2A 3A 4A 5A 6A 7I 3 10E 6S 1 15Sample Output
11 21 2 31 2 3 41 2 3 4 51 2 3 4 5 61 2 3 4 5 6 71 2 3 10 4 5 6 71 2 3 10 4 5 71 15 3 10 4 5 7HINT
不能使用vector、set等容器。Append Code
append.cc,#include <bits/stdc++.h> using namespace std; class MyList { public: int *elements; int len; int curLen; MyList(int _len):len(_len){elements = new int[len];curLen=0;} void append(int d) { elements[curLen]=d; curLen++; } void insert(int p,int d) { for(int i=curLen;i>=p;i--) elements[i+1]=elements[i]; elements[p] = d; curLen++; } void erase(int p) { for(int i=p;i<=curLen;i++) elements[i]=elements[i+1]; curLen--; } void set(int p,int d) { elements[p]=d; } void show() { for(int i=0;i<curLen;i++) { cout<<elements[i]; if(i!=curLen-1) cout<<" "; } cout<<endl; } }; int main() { int cases, len, data, pos; char op; cin>>len; MyList myList(len); cin>>cases; for (int i = 0; i < cases; i++) { cin>>op; switch (op) { case 'A': cin>>data; myList.append(data); break; case 'I': cin>>pos>>data; myList.insert(pos, data); break; case 'E': cin>>pos; myList.erase(pos); break; case 'S': cin>>pos>>data; myList.set(pos, data); } myList.show(); } return 0; }
相关文章推荐
- Problem D: 线性表的基本操作
- Problem D: 线性表的基本操作
- Problem C: 线性表的基本操作
- 线性表的基本操作
- 线性表之顺序表基本操作实现
- 线性表上的基本操作实现标准版
- 数据结构中线性表的一些基本操作
- 线性表的基本操作
- 数据结构 - C语言版 - 线性表 所有基本操作
- 试用多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作:插入,删除,测长等。
- [C++]数据结构实验03:链式结构线性表的基本操作
- 线性表的基本操作
- 线性顺序表的基本操作
- 带头结点的链表实现线性表的基本操作
- 线性表的基本操作
- [C++]数据结构:线性表的公式化描述和链式描述的结构特点与基本操作
- 顺序表示的线性表的基本操作
- 数据结构类型定义及基本操作汇总(一)--线性表,单链表,栈和队列
- 线性结构的一些基本操作
- 线性表_顺序存储/基本操作