《数据结构》实验二:
线性表综合实验
一.实验目的
巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题
二.实验内容
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<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<
执行结果截图:
1)录入并输出学生成绩
2)输出表长
3)按位查找
4)按值查找
5)插入操作
6)插入成功后输出成绩
7)
删除操作
8)插入成功后输出成绩