第2个回答 2013-04-02
这位兄台,正好我写了一个链表玩玩的,就拿给你看看吧!!!
#include <iostream>
using namespace std;
class student
{
private:
class node
{
public:
int num;
int grade;
node* next;
node(int m,int n):num(m),grade(n),next(NULL){}
};
node* head;
public:
student():head(NULL){}
~student(void)
{
clear();
}
void clear(void)
{
node* p = head;
while(p != NULL)
{
node* q = p->next;
delete p;
p = q;
}
}
void create(int n,int m)//插入学生编号和成绩
{
node* p = new node(n,m);
p->next = head;
head = p;
}
void del(int m)//删除成绩低于M的学生
{
node* p = head;
while((p->grade)<m)
{
head = p->next;
delete p;
p = head;
}
for(;(p->next)!=NULL;)
{
if((p->next->grade) < m )
{
node* q = p->next;
p->next = q->next;
delete q;
continue;
}
p=(p->next);
}
}
void print(void)//输出学生信息
{
node* p = head;
for(;p!=NULL;p=p->next)
{
cout << "编号:" << p->num << "成绩:" << p->grade << endl;
}
}
void del_chain(void)
{
clear();
}
};
int main()
{
student stu;
stu.create(1,500);//参数1:编号 2:成绩
stu.create(2,450);
stu.create(3,700);
stu.create(4,600);
stu.create(5,500);
stu.create(6,500);
stu.create(7,560);
stu.create(8,500);
stu.create(9,300);
stu.create(10,400);
stu.print();
cout << endl;
stu.del(500);//参数:合格分数线
stu.print();
return 0;
}