21xrx.com
2025-03-31 21:15:57 Monday
文章检索 我的文章 写文章
C++编写学生链表
2023-07-02 11:27:20 深夜i     7     0
C++ 学生链表 编写

C++是一种十分强大且普遍使用的编程语言,它可以为我们提供各种各样的数据结构,例如学生链表,它可以帮助我们管理学生的信息并对其进行各种操作。下面,我们将介绍如何使用C++编写学生链表。

首先,我们需要定义一个学生类,它包括学生的姓名、年龄、性别等信息。我们可以使用以下代码来定义一个学生类:

class Student {
public:
  string name;
  int age;
  char gender;
  Student* next;
};

在这个类中,我们定义了学生的姓名、年龄、性别,以及一个next指针,用来指向下一个学生节点。

接下来,我们需要定义一个链表类,用于管理所有的学生信息。我们可以使用以下代码来定义一个链表类:

class StudentList {
public:
  Student* head;
  StudentList()
    head = new Student;
    head->next = NULL;
  
  void addStudent(Student* student)
    student->next = head->next;
    head->next = student;
  
  void deleteStudent(Student* student) {
    Student* p = head->next;
    Student* q = head;
    while (p) {
      if (p == student)
        q->next = p->next;
        delete p;
        break;
      
      q = p;
      p = p->next;
    }
  }
  void printList() {
    Student* p = head->next;
    while (p) Age: " << p->age << "
  }
};

在这个类中,我们定义了一个头指针head,表示链表的起始位置,并在构造函数中初始化它。addStudent()方法用来添加新的学生节点,deleteStudent()方法用来删除指定的学生节点,printList()方法用来打印出所有学生的信息。

最后,我们可以使用以下代码来测试我们的链表:

int main() {
  StudentList list;
  Student* s1 = new Student;
  s1->name = "John";
  s1->age = 20;
  s1->gender = 'M';
  list.addStudent(s1);
  Student* s2 = new Student;
  s2->name = "Alice";
  s2->age = 19;
  s2->gender = 'F';
  list.addStudent(s2);
  Student* s3 = new Student;
  s3->name = "Bob";
  s3->age = 21;
  s3->gender = 'M';
  list.addStudent(s3);
  list.printList();
  list.deleteStudent(s2);
  list.printList();
  return 0;
}

在这个测试代码中,我们创建了三个学生节点并向链表中添加它们。然后我们打印了所有学生的信息并删除了其中一个学生,最后再次打印出所有学生的信息。

通过以上的演示,我们可以看到,使用C++编写学生链表是十分简单的。我们只需要定义一个学生类和一个链表类,然后通过各种方法对学生节点进行添加、删除、查找等操作即可。

  
  

评论区

请求出错了