《数据结构》实验二:
线性表综合实验
一.实验目的
巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题
二.实验内容
1.建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。
要求如下:
1)用顺序表来实现。
2)用单链表来实现。
3)用双链表实现。
4)用静态链表实现。
5)用间接寻址实现。
静态链表的实现
#include
using namespace std;
const int MaxSize=100;
struct SNode
{
int data;
int next;
};//建立静态链表
class SLList{
public:
SLList();
SLList(int a[],int n);
int Length();
int Get(int i);
int Locate(int x);
void Insert(int i,int x);
int Delete(int i);
void PrintList();
private:
SNode SList[MaxSize];
int first,avail;
};
void SLList::PrintList()
{
int p;
int i=0;
p=SList[first].next; //使其指向第一个元素
while(p!=-1)
{
i=i+1;
cout<
<<"\t\t\t\t\t第"<
<<"个学生成绩"<
<<" ";
p=SList[p].next; //指针后移
}
cout<
MaxSize||a<=0) throw"错误"; first=0;avail=1; SList[0].next=avail; for(int i=0;i
>n; for(j=0;j
>d[j]; } SLList SLL(d,n); while (1) { cout<<"\t\t\t\t\t********** 静态链表的实现 **********"<
>tab; switch(tab) { case 1: { cout<<"\t\t\t\t\t1.输出学生成绩 :"; SLL.PrintList(); cout<
>loc; x=SLL.Get(loc); cout <<"\t\t\t\t\t要查找的成绩是:"<
<
>x; loc=SLL.Locate(x); cout<<"\t\t\t\t\t输入要查找成绩的位置是:"<
<
>loc; cout<<"\t\t\t\t\t输入要插入的成绩:"; cin>>x; SLL.Insert(loc,x); cout<
>loc; x=SLL.Delete(loc); cout<
<<"\t\t\t\t\t已被删除√"<
<
执行结果截图:
1)录入并输出学生成绩
![](https://img-blog.csdn.net/20171011232958252?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYzc3Nzc3Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2)输出表长
![](https://img-blog.csdn.net/20171011233009920?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYzc3Nzc3Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3)按位查找
![](https://img-blog.csdn.net/20171011233019645?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYzc3Nzc3Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4)按值查找
![](https://img-blog.csdn.net/20171011233029673?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYzc3Nzc3Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
5)插入操作
![](https://img-blog.csdn.net/20171011233042137?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYzc3Nzc3Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
6)插入成功后输出成绩
![](https://img-blog.csdn.net/20171011233051972?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYzc3Nzc3Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
7)
删除操作
![](https://img-blog.csdn.net/20171011233103643?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYzc3Nzc3Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
8)插入成功后输出成绩
![](https://img-blog.csdn.net/20171011233111723?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYzc3Nzc3Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)