#include<iostream>
using namespace std;
const int maxsize = 10;
struct Node
{
double data;
Node *prior, *next;
};
class scorelist
{
private:
Node * p;
public:
scorelist()
{
p = new Node;
p->next=NULL ;
}
~scorelist()
{
Node *q = NULL;
while (p != NULL)
{
q = p;
p = p->next;
delete p;
}
}
scorelist(double a[], int n)
{
Node *r, *s;
p = new Node;
r = p;
for (int i = 0; i < n; i++)
{
s = new Node;
s->prior = r;
s->data = a[i];
r->next = s;
r = s;
}
r->next = NULL;
}
void insert(int i, double x)
{
Node *o = p, *s = NULL;
int count = 0;
while (o != NULL && count < i - 1)
{
o = o->next;
count++;
}
if (o == NULL) throw"位置异常";
else
{
s = new Node;
s->data = x;
s->prior = o;
s->next = o->next;
(o->next)->prior = s;
o->next = s;
}
}
void printlist()
{
Node *o = p->next;
while (o != NULL)
{
cout << o->data << " ";
o = o->next;
}
cout << endl;
}
};
void main()
{
double stu[6] = { 25,65,75,85,95,100 };
scorelist student(stu,6);
student.printlist();
student.insert(3, 60);
cout << "插入成绩后的列表:" << endl;
student.printlist();
}
实验3:双链表
最新推荐文章于 2020-10-24 13:21:35 发布