21xrx.com
2024-12-29 04:24:51 Sunday
登录
文章检索 我的文章 写文章
C++实现学号或姓名删除功能
2023-07-13 06:08:32 深夜i     --     --
C++ 学号 姓名 删除功能

在C++中,对于学号或姓名的删除功能,通常采用删除链表节点的方法来实现。

首先,我们需要定义一个链表的节点结构体,包括学号、姓名等信息和指向下一个节点的指针。


struct Student {

  int num;    // 学号

  string name;  // 姓名

  Student *next; // 指向下一个节点

};

接着,我们需要定义一个函数来删除节点,其参数为要删除节点的学号或姓名。该函数需要遍历链表,找到要删除的节点,并将其从链表中删除。


void deleteNode(Student *head, int num) {

  Student *p = head;

  Student *q = p->next;

  while (q != nullptr) {

    if (q->num == num)

      p->next = q->next; // 将p指向q的下一个节点

      delete q;      // 释放q节点内存

      return;

    

    p = q;

    q = q->next;

  }

}

其中,head为链表的头节点,num为要删除的学号。在函数中,我们定义两个指针p和q,p指向要删除节点的前一个节点,q指向要删除的节点。通过遍历链表,找到要删除的节点后,将p节点的指针指向q的下一个节点,然后释放q所占内存即可。

除了按学号删除外,我们也可以通过姓名来删除节点,具体方法与按学号删除类似,只需要比较节点中的name属性即可。

总的来说,使用链表结构来存储学生信息,具有灵活性和可扩展性,可以随时添加、修改和删除节点,更好地满足实际需求。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复