作业0:顺序表的基本操作
2016-05-24 19:43
851 查看
有以下程序段,先改错,最后再编程实现所有函数的功能。
注:main()函数已给出,不得修改,提交时也不需要提交main函数。
#include<iostream.h>
#include<stdlib.h>
typedef int T
class SeqList
{
private:
T data;
int MaxSize; //顺序表最多可以存放的元素个数。
int last; //顺序表最后一个元素的下标,初始值为-1。
void SeqList(int sz);
void Input();//首先输入元素的个数,然后顺次输入元素的值。
void Output();//输出线性表的所有元素。
void Insert(const T& x, int i );//在线性表中第i个位置插入值为x的元素。
int Remove ( T & x );//从线性表中删除第一个值等于x的元素。
}
SeqList(int sz){data = new T[sz];MaxSize = sz; SeqList.last = -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;
}
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
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;
}
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
注:main()函数已给出,不得修改,提交时也不需要提交main函数。
#include<iostream.h>
#include<stdlib.h>
typedef int T
class SeqList
{
private:
T data;
int MaxSize; //顺序表最多可以存放的元素个数。
int last; //顺序表最后一个元素的下标,初始值为-1。
void SeqList(int sz);
void Input();//首先输入元素的个数,然后顺次输入元素的值。
void Output();//输出线性表的所有元素。
void Insert(const T& x, int i );//在线性表中第i个位置插入值为x的元素。
int Remove ( T & x );//从线性表中删除第一个值等于x的元素。
}
SeqList(int sz){data = new T[sz];MaxSize = sz; SeqList.last = -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;
}
预设代码
后置代码/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
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;
}
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
#include<iostream> #include<stdlib.h> using namespace std; typedef int T; class SeqList { public: T *data; //存放数组 int MaxSize; //最大可容纳表项的项数 int last; //当前已存表项的最后位置(从0开始) SeqList(int sz); //构造函数 void Input(); //首先输入元素的个数,然后顺次输入元素的值 void Output(); //输出线性表的所有元素 void Insert(const T & x,int i); //从线性表中第i个位置插入值为x的元素 int Remove(T & x); //从线性表中删除第一个值等于x的元素 }; SeqList::SeqList(int sz) //构造函数,通过指定参数sz定义数组的长度 { MaxSize = sz;last = -1; //置表的实际长度为空 data = new T[sz]; //创建顺序表存储数组 } void SeqList::Input() //输入 { int a; cin>>a; for(int i=0;i<a;i++) { cin>>data[i]; last++; } } void SeqList::Output() //输出 { cout<<"The element are:"<<endl; for(int i=0;i<=last;i++) { cout<<data[i]<<endl; } } void SeqList::Insert(const T & x,int i) //将新元素插入到第i个表项之后 { if(last == MaxSize-1) { cout<<"顺序表已无法插入"<<endl; } if(i<0||i>last+1) { cout<<"i越界"<<endl; } else { last++; for(int j=last;j>i;j--) data[j] = data[j-1]; data[i] = x; } } int SeqList::Remove(T & x) //从表中删除第i个表项 { for(int i=0;i<=last;i++) { if(data[i]==x) { last--; for(int j=i;j<=last;j++) data[j] = data[j+1]; return 1; } } return 0; } 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; }
相关文章推荐
- Android中从service中向另外一个应用包跳转的问题
- 借用栈实现表达式的转换与计算
- 快速排序
- java中的sleep()和wait()的区别
- h.264优化笔记
- Partition List
- mysql auto_increment 的坑
- HDU 1257---最少拦截系统
- 两个时间相加
- 立体类族共有的抽象类
- POJ 1008 Maya Calendar GCC编译
- Codevs_2102_石子归并2_(环状动态规划)
- c++第六次作业
- 多线程(5)等待唤醒机制
- 文件上传(AFN GCD)
- 浏览器野史 UserAgent列传(下)
- 栈的实现——顺序表示
- 安装Microsoft office2010出现需要msxml文件问题
- vector有reserve何resize,二者的不同?
- O1--Oracle11g (OCP考试) 知识结构图-P160524