数据结构实验一

来源:互联网 发布:12345网络举报平台 编辑:程序博客网 时间:2024/06/09 15:42

一、实验目的

(1)掌握线性表的顺序储存结构;

(2)验证顺序表及其基本操作的实现;

(3)理解算法与程序的关系,能够将顺序表算法转换为对应的程序。

二、实验内容

1)建立含有若干个元素的顺序表;

2)对已建立的顺序表实现插入、删除、查找等基本操作

三、实验心得

    这次实验是本学期数据结构的第一次上机实验,顺序表的实验难度不大,运用上学期已学的C++语言来实现操作,实验算得上上手。但是在调试的过程中还是有许多的小错误,我根据调试提示来更改错误,最终完成。


源代码:

#ifndef SeqList_H#define SeqList_Hconst int MaxSize=10;class SeqList{public:SeqList(){length=0;}SeqList(int a[],int n);~SeqList(){}void Insert(int i,int x);int Delete(int i);int Locate(int x);void PrintList();private:int data[MaxSize];int length;};#endif#include<iostream>using namespace std;SeqList::SeqList(int a[],int n){if(n>MaxSize)throw"参数非法";for(int i=0;i<n;i++)data[i]=a[i];length=n;}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-1]=data[j];length--;return x;}int SeqList::Locate(int x){for(int i=0;i<length;i++)cout<<data[i]<<" ";cout<<endl;}#include<iostream>using namespace std;void main(){int r[5]={1,2,3,4,5};SeqList L(r,5);cout<<"执行插入操作前数据为:"<<endl;L.PrintList();try{L.Insert(2,3);}catch(char *s){cout<<s<<endl;}cout<<"执行插入操作后数据为:"<<endl;L.PrintList();cout<<"值为3的元素的位置为:";cout<<L.Locate(3)<<endl;cout<<"执行删除第一个元素操作,删除前数据为:"<<endl;L.PrintList();try{L.Delete(1);}catch(char *s){cout<<s<<endl;}cout<<"删除后数据为:"<<endl;L.PrintList();}