实验二:     线性表实验 第一部分 顺序表

来源:互联网 发布:周克华事件真相知乎 编辑:程序博客网 时间:2024/06/04 09:06
 一.<span style="font-family:Arial;">.</span><span style="font-family:宋体;">实验目的</span>

     巩固线性表的数据结构,学会线性表的应用。

1.回顾线性表的逻辑结构,线性表的物理存储结构和常见操作。

2.学习运用线性表的知识来解决实际问题。

3.进一步巩固程序调试方法。

4.进一步巩固模板程序设计。

二.实验时间

   准备时间为第2周到第4周,具体集中实验时间为第4周第2次课。2个学时。

三..实验内容

1.建立一个N个学生成绩的顺序表,对表进行插入、删除、查找等操作。分别输出结果。

要求如下:

1)用顺序表来实现。

2)用单链表来实现。

 

 

# 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;# include"SeqList.h" 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<i||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<i||i>length+1 )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++)if(data[i]==x) return i+1;return 0;}void SeqList  :: PrintList(){for(int i=0; i<length; i++)cout << data[i]<<" ";cout << endl;}# include<iostream>using namespace std;# include "SeqList.h"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<<"执行删除第一个元素操作,删除前数据为:"<<endl;L.PrintList();try{L.Delete(1);}catch(char * s){cout<<s<<endl;}cout<<"删除后数据为:"<<endl;L.PrintList();}


 

运行结果截图为:

 

 

0 0
原创粉丝点击