实验一线性表的基本操作实现及其应用
2017-09-21 10:49
375 查看
一、实验目的
1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。
2、巩固 C++相关的程序设计方法与技术。
3、学会使用顺序表解决实际问题。
二、实验内容
顺序表的建立与操作实现建立 n 个元素的顺序表,实现相关的操作:输出,插入,删除,查找等功能。编写完整程序实现,程序语言不限定,使用技术形式不定。
三、实验步骤
1、依据实验内容分别说明实验程序中用到的数据类型的定义;
2、相关操作的算法表达;
3、完整程序。
四、实验心得
参考课本的代码,然后自己加以修改一些,最终形写成这个程序。写完程序后再运行过程中,还是会出现一些情况,比如一些细节:忘记定义数据类型,还有出现漏分号这样的低级错误。另外,程序要多些注释,这样方便别人阅读。
*源程序代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
const int MaxSize = 20;
class SeqList
{
public:
SeqList(){ length = 0; }
SeqList(inta[], int n);
~SeqList(){}
int Get(int i);
int Locate(int x);
void Insert(int i, int x);
int Delete(int i);
void PrintList();
private:
int data[MaxSize];
int length;
};
SeqList::SeqList(int a[], int n)
{
if(n>MaxSize)throw"参数非法";
for(int i = 0; i<n; i++)
data[i]= a[i];
length= n;
}
int SeqList::Get(int i)
{
if(i<1 && i>length) throw"查找位置非法";
else return data[i - 1];
}
int SeqList::Locate(int x)
{
for(int i = 0; i<length; i++)
if(data[i] == x)return i + 1;
return 0;
}
void SeqList::Insert(int i, int x)
{
if(length >= MaxSize)throw "上溢";
if(i<1 || i>length + 1)throw"位置";
for(int j = length; j >= i; j--)
data[j]= data[j - 1];
data[i- 1] = x;
length++;
}
int SeqList::Delete(int i)
{
if(length == 0)throw"下溢";
if(i<1 || i>length)throw"位置";
int x = data[i - 1];
for(int j = i; j<length; j++)
data[j- i] = data[j];
length--;
returnx;
}
void SeqList::PrintList()
{
for(int i = 0; i < length; i++)
cout<< data[i] << " ";
cout<< endl;
}
void main()
{
intr[10] = { 1,3,5,7,9,11,13,2,4,6 };
SeqListL(r, 10);
cout<< "执行前的数据为:" << endl;
L.PrintList(); //输出之前的数据
cout<< "第五个元素的值为:" << endl;
cout<< L.Get(5) << endl; //输出位置为5的数据
try
{
L.Insert(2,8); // 在第二位插入数据8
}
catch(char *s)
{
cout<< s << endl;
}
cout<< "执行插入操作后数据为:" << endl;
L.PrintList(); //输出插入新数据后的全部数据
cout<< "值为11的元素位置为:" << endl;
cout<< L.Locate(11) << endl; //输出数据值为11的所在位置
cout<< "执行删除第六个元素操作,删除前数据为:" << endl;
L.PrintList();
try
{
L.Delete(6);
}
catch(char *s)
{
cout<< s << endl;
}
cout<<"删除后数据为:" << endl;
L.PrintList(); //输出删除位置为6的数据后的全部数据
}
1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。
2、巩固 C++相关的程序设计方法与技术。
3、学会使用顺序表解决实际问题。
二、实验内容
顺序表的建立与操作实现建立 n 个元素的顺序表,实现相关的操作:输出,插入,删除,查找等功能。编写完整程序实现,程序语言不限定,使用技术形式不定。
三、实验步骤
1、依据实验内容分别说明实验程序中用到的数据类型的定义;
2、相关操作的算法表达;
3、完整程序。
四、实验心得
参考课本的代码,然后自己加以修改一些,最终形写成这个程序。写完程序后再运行过程中,还是会出现一些情况,比如一些细节:忘记定义数据类型,还有出现漏分号这样的低级错误。另外,程序要多些注释,这样方便别人阅读。
*源程序代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
const int MaxSize = 20;
class SeqList
{
public:
SeqList(){ length = 0; }
SeqList(inta[], int n);
~SeqList(){}
int Get(int i);
int Locate(int x);
void Insert(int i, int x);
int Delete(int i);
void PrintList();
private:
int data[MaxSize];
int length;
};
SeqList::SeqList(int a[], int n)
{
if(n>MaxSize)throw"参数非法";
for(int i = 0; i<n; i++)
data[i]= a[i];
length= n;
}
int SeqList::Get(int i)
{
if(i<1 && i>length) throw"查找位置非法";
else return data[i - 1];
}
int SeqList::Locate(int x)
{
for(int i = 0; i<length; i++)
if(data[i] == x)return i + 1;
return 0;
}
void SeqList::Insert(int i, int x)
{
if(length >= MaxSize)throw "上溢";
if(i<1 || i>length + 1)throw"位置";
for(int j = length; j >= i; j--)
data[j]= data[j - 1];
data[i- 1] = x;
length++;
}
int SeqList::Delete(int i)
{
if(length == 0)throw"下溢";
if(i<1 || i>length)throw"位置";
int x = data[i - 1];
for(int j = i; j<length; j++)
data[j- i] = data[j];
length--;
returnx;
}
void SeqList::PrintList()
{
for(int i = 0; i < length; i++)
cout<< data[i] << " ";
cout<< endl;
}
void main()
{
intr[10] = { 1,3,5,7,9,11,13,2,4,6 };
SeqListL(r, 10);
cout<< "执行前的数据为:" << endl;
L.PrintList(); //输出之前的数据
cout<< "第五个元素的值为:" << endl;
cout<< L.Get(5) << endl; //输出位置为5的数据
try
{
L.Insert(2,8); // 在第二位插入数据8
}
catch(char *s)
{
cout<< s << endl;
}
cout<< "执行插入操作后数据为:" << endl;
L.PrintList(); //输出插入新数据后的全部数据
cout<< "值为11的元素位置为:" << endl;
cout<< L.Locate(11) << endl; //输出数据值为11的所在位置
cout<< "执行删除第六个元素操作,删除前数据为:" << endl;
L.PrintList();
try
{
L.Delete(6);
}
catch(char *s)
{
cout<< s << endl;
}
cout<<"删除后数据为:" << endl;
L.PrintList(); //输出删除位置为6的数据后的全部数据
}
相关文章推荐
- 实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一:线性表的基本操作实现及其应用(C++)
- 实验一 线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一:线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用