顺序表实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
try{
sq.Insert(4,9);
}
catch(char *s){
cout<<s<<endl;
}
sq.printList();
return 0;
}
3:编码:
#include<iostream>
using namespace std;
#include"seqList.cpp"
int main(){
2:设计了哪些测试数据?测试结果是什么?
位置,数值,空间。
3:程序运行的结果如何?
五:总结与心得:
编写程序前应先在草稿纸上写一下程序的主干部分,特别值得注意的是要下备注和容易发生错误的地方,以免在编写的过程中遗忘,而增加了日后再次检查的工作量,影响了工作效率.在输入代码的时候要细心,注意标点符号这些小细节。在发现错误的时候要耐心,慢慢的仔细的回头检查一遍。在编写程序的时候,试着自己找到问题的根源。遇到超过自己能力之外的问题,应当与老师,同学们交流。在上机操作之后,及时的与老师同学交流,及时的为心中的疑惑解答,并及时的编写实验报告,记录当时的感受。
}
return 0;
}
template<class DataType>
void SeqList<DataType>::Insert(int i, DataType x){
if(length >= MAXSIZE) throw "表满,不能插入";
if(i < 1 || i > length + 1) throw "插入位置不合理";
for(int j = length ; j >= i; j--){
data[j] = data[j - 1];
}
四:运行与测试:
1:在调试过程中,遇到什么问题,是如何解决的?
在运行过程中会出现无法执行程序的状况,通过建立新的程序来解决。也会出现有一个错误,一般情况下会仔细检查,特别是标点符号,然后再检查程序的建立。
sq.printList();
cout<<"线性表的长度为:"<<sq.Length()<<endl;
try{
cout<<"第8个元素是:"<<sq.Get(8)<<endl;
}
catch(char *s){
cout<<s<<endl;
}
cout<<"10位于第"<<sq.Locate(10)<<"个元素"<<endl;
void SeqList<DataType>::printList(){
for(int i = 0; i < length; i++){
cout<<data[i]<<" ";
}
cout<<endl;
}
template<class DataType>
int SeqList<DataType>::Length(){
SeqList<DataType>::SeqList(DataType a[], int n){
for(int i = 0; i < n; i++){
data[i] = a[i];
}
length = n;
}
template<class DataType>
void SeqList<DataType>::printList(){
DataType SeqList<DataType>::Get(int i){
if(i >= 1 && i <= length)
return data[i - 1];
else
throw "输入不合法";
}
template<nt i = 0; i < length ; i++){
if(data[i] == x) return i + 1;
return length;
}
template<class DataType>
DataType SeqList<DataType>::Get(int i){
if(i >= 1 && i <= length)
return data[i - 1];
else
throw "输入不合法";
}
template<class DataType>
}
template<class DataType>
SeqList<DataType>::SeqList(DataType a[], int n){
for(int i = 0; i < n; i++){
data[i] = a[i];
}
length = n;
}
template<class DataType>
};
#endif
类中函数实现的源文件SeqList.cpp
#include<iostream>
using namespace std;
#include"seqList.h"
template<class DataType>
SeqList<DataType>::SeqList(){
length = 0;
for(int i = 0; i < length; i++){
cout<<data[i]<<" ";
}
cout<<endl;
}
template<class DataType>
int SeqList<DataType>::Length(){
return length;
}
template<class DataType>
int SeqList<DataType>::Locate(DataType x){
for(int i = 0; i < length ; i++){
if(data[i] == x) return i + 1;
}
return 0;
}
template<class DataType>
void SeqList<DataType>::Insert(int i, DataType x){
public:
SeqList();
SeqList(DataType a[], int n);
void printList();
int Length();
DataType Get(int i);
int Locate(DataType x);
void Insert(int i, DataType x);
length = length + 1;
}
包含mani函数的源文件SeqList_main.cpp
#include<iostream>
using namespace std;
#include"seqList.cpp"
int main(){
int a[5] = {1,4,3,2,5};
SeqList<int> sq(a,5);
2、验证顺序表及其基本操作的实现;
3、理解算法与程序的关系,能够将顺序表算法转换为对应的程序。
二、实验内容
1、建立含有若干个元素的顺序表;
2、对已建立的顺序表实现插入、删除、查找等基本操作。
三、实现提示
定义顺序表的实验类型——顺序表类SeqList,包括题目要求的插入、删除、查找等基本操作,为便于查看操作结果,设计一个输出函数依次输出顺序表的元素。顺序表类SeqList的定义以及基本操作的算法请参照主教材2.2节。
算法设计:
头文件SeqList.h
#ifndef SEQLIST_H
#define SEQLIST_H
const int MAXSIZE = 100;
template<class DataType>
class SeqList{
private:
DataType data[MAXSIZE];
int length;
int a[5] = {1,4,3,2,5};
SeqList<int> sq(a,5);
sq.printList();
cout<<"线性表的长度为:"<<sq.Length()<<endl;
try{
cout<<"第8个元素是:"<<sq.Get(8)<<endl;
}
catch(char *s){
cout<<s<<endl;
void printList();
int Length();
DataType Get(int i);
int Locate(DataType x);
void Insert(int i, DataType x);
};
#endif
class DataType>
int SeqList<DataType>::Locate(DataType 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;
for(i#include<iostream>
using namespace std;
#include"seqList.h"
template<class DataType>
SeqList<DataType>::SeqList(){
length = 0;
}
template<class DataType>
}
cout<<"10位于第"<<sq.Locate(10)<<"个元素"<<endl;
try{
sq.Insert(4,9);
}
catch(char *s){
cout<<s<<endl;
}
sq.printList();
return 0;
}
#ifndef SEQLIST_H
#define SEQLIST_H
const int MAXSIZE = 100;
template<class DataType>
class SeqList{
private:
DataType data[MAXSIZE];
int length;
public:
SeqList();
SeqList(DataType a[], int n);
简单起见,本实验假定线性表的数据元素为int型,要求学生:
1、将实验程序调试通过后,用模板类ቤተ መጻሕፍቲ ባይዱ写;
2、加入求线性表的长度等基本操作;
3、重新给定测试数据,验证抛出异常机制。
四、实验程序
在VC++编程环境下创建一个工程“顺序表验证实验”,在该工程中新建一个头文件SeqList.h,该头文件中包含顺序表类SeqList的定义.
江西理工大学软件学院
《数据结构C++》课程设计报告
2013—2014学年第一学期
课程名称数据结构C++
设计题目顺序表的实现
专业班级ppppppppppppppp
姓名ppppppp
学号pppppppp
指导教师ppppppp
2013年9月11日
实验题目:顺序表的实现
一、实验目的
1、掌握线性表的顺序存储结构;
sq.Insert(4,9);
}
catch(char *s){
cout<<s<<endl;
}
sq.printList();
return 0;
}
3:编码:
#include<iostream>
using namespace std;
#include"seqList.cpp"
int main(){
2:设计了哪些测试数据?测试结果是什么?
位置,数值,空间。
3:程序运行的结果如何?
五:总结与心得:
编写程序前应先在草稿纸上写一下程序的主干部分,特别值得注意的是要下备注和容易发生错误的地方,以免在编写的过程中遗忘,而增加了日后再次检查的工作量,影响了工作效率.在输入代码的时候要细心,注意标点符号这些小细节。在发现错误的时候要耐心,慢慢的仔细的回头检查一遍。在编写程序的时候,试着自己找到问题的根源。遇到超过自己能力之外的问题,应当与老师,同学们交流。在上机操作之后,及时的与老师同学交流,及时的为心中的疑惑解答,并及时的编写实验报告,记录当时的感受。
}
return 0;
}
template<class DataType>
void SeqList<DataType>::Insert(int i, DataType x){
if(length >= MAXSIZE) throw "表满,不能插入";
if(i < 1 || i > length + 1) throw "插入位置不合理";
for(int j = length ; j >= i; j--){
data[j] = data[j - 1];
}
四:运行与测试:
1:在调试过程中,遇到什么问题,是如何解决的?
在运行过程中会出现无法执行程序的状况,通过建立新的程序来解决。也会出现有一个错误,一般情况下会仔细检查,特别是标点符号,然后再检查程序的建立。
sq.printList();
cout<<"线性表的长度为:"<<sq.Length()<<endl;
try{
cout<<"第8个元素是:"<<sq.Get(8)<<endl;
}
catch(char *s){
cout<<s<<endl;
}
cout<<"10位于第"<<sq.Locate(10)<<"个元素"<<endl;
void SeqList<DataType>::printList(){
for(int i = 0; i < length; i++){
cout<<data[i]<<" ";
}
cout<<endl;
}
template<class DataType>
int SeqList<DataType>::Length(){
SeqList<DataType>::SeqList(DataType a[], int n){
for(int i = 0; i < n; i++){
data[i] = a[i];
}
length = n;
}
template<class DataType>
void SeqList<DataType>::printList(){
DataType SeqList<DataType>::Get(int i){
if(i >= 1 && i <= length)
return data[i - 1];
else
throw "输入不合法";
}
template<nt i = 0; i < length ; i++){
if(data[i] == x) return i + 1;
return length;
}
template<class DataType>
DataType SeqList<DataType>::Get(int i){
if(i >= 1 && i <= length)
return data[i - 1];
else
throw "输入不合法";
}
template<class DataType>
}
template<class DataType>
SeqList<DataType>::SeqList(DataType a[], int n){
for(int i = 0; i < n; i++){
data[i] = a[i];
}
length = n;
}
template<class DataType>
};
#endif
类中函数实现的源文件SeqList.cpp
#include<iostream>
using namespace std;
#include"seqList.h"
template<class DataType>
SeqList<DataType>::SeqList(){
length = 0;
for(int i = 0; i < length; i++){
cout<<data[i]<<" ";
}
cout<<endl;
}
template<class DataType>
int SeqList<DataType>::Length(){
return length;
}
template<class DataType>
int SeqList<DataType>::Locate(DataType x){
for(int i = 0; i < length ; i++){
if(data[i] == x) return i + 1;
}
return 0;
}
template<class DataType>
void SeqList<DataType>::Insert(int i, DataType x){
public:
SeqList();
SeqList(DataType a[], int n);
void printList();
int Length();
DataType Get(int i);
int Locate(DataType x);
void Insert(int i, DataType x);
length = length + 1;
}
包含mani函数的源文件SeqList_main.cpp
#include<iostream>
using namespace std;
#include"seqList.cpp"
int main(){
int a[5] = {1,4,3,2,5};
SeqList<int> sq(a,5);
2、验证顺序表及其基本操作的实现;
3、理解算法与程序的关系,能够将顺序表算法转换为对应的程序。
二、实验内容
1、建立含有若干个元素的顺序表;
2、对已建立的顺序表实现插入、删除、查找等基本操作。
三、实现提示
定义顺序表的实验类型——顺序表类SeqList,包括题目要求的插入、删除、查找等基本操作,为便于查看操作结果,设计一个输出函数依次输出顺序表的元素。顺序表类SeqList的定义以及基本操作的算法请参照主教材2.2节。
算法设计:
头文件SeqList.h
#ifndef SEQLIST_H
#define SEQLIST_H
const int MAXSIZE = 100;
template<class DataType>
class SeqList{
private:
DataType data[MAXSIZE];
int length;
int a[5] = {1,4,3,2,5};
SeqList<int> sq(a,5);
sq.printList();
cout<<"线性表的长度为:"<<sq.Length()<<endl;
try{
cout<<"第8个元素是:"<<sq.Get(8)<<endl;
}
catch(char *s){
cout<<s<<endl;
void printList();
int Length();
DataType Get(int i);
int Locate(DataType x);
void Insert(int i, DataType x);
};
#endif
class DataType>
int SeqList<DataType>::Locate(DataType 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;
for(i#include<iostream>
using namespace std;
#include"seqList.h"
template<class DataType>
SeqList<DataType>::SeqList(){
length = 0;
}
template<class DataType>
}
cout<<"10位于第"<<sq.Locate(10)<<"个元素"<<endl;
try{
sq.Insert(4,9);
}
catch(char *s){
cout<<s<<endl;
}
sq.printList();
return 0;
}
#ifndef SEQLIST_H
#define SEQLIST_H
const int MAXSIZE = 100;
template<class DataType>
class SeqList{
private:
DataType data[MAXSIZE];
int length;
public:
SeqList();
SeqList(DataType a[], int n);
简单起见,本实验假定线性表的数据元素为int型,要求学生:
1、将实验程序调试通过后,用模板类ቤተ መጻሕፍቲ ባይዱ写;
2、加入求线性表的长度等基本操作;
3、重新给定测试数据,验证抛出异常机制。
四、实验程序
在VC++编程环境下创建一个工程“顺序表验证实验”,在该工程中新建一个头文件SeqList.h,该头文件中包含顺序表类SeqList的定义.
江西理工大学软件学院
《数据结构C++》课程设计报告
2013—2014学年第一学期
课程名称数据结构C++
设计题目顺序表的实现
专业班级ppppppppppppppp
姓名ppppppp
学号pppppppp
指导教师ppppppp
2013年9月11日
实验题目:顺序表的实现
一、实验目的
1、掌握线性表的顺序存储结构;