2016 - 2024

感恩一路有你

单链表编程实例

浏览量:2933 时间:2023-12-27 23:04:17 作者:采采

单链表(Singly Linked List)是一种常见的数据结构,它由节点组成,每个节点包含数据和指向下一个节点的指针。单链表的特点是插入和删除操作效率高,但是查找操作效率较低。

单链表的基本操作包括创建、插入、删除和遍历。在创建单链表时,需要定义一个头节点,该节点可以不包含数据,只是作为链表的起始位置。插入操作包括在链表的某个位置插入新节点,可以在头部、尾部或者中间进行插入。删除操作则是移除链表中的某个节点,同样可以在头部、尾部或者中间进行删除。遍历操作是按顺序访问链表中的每个节点,依次输出节点的数据。

下面通过一个具体的编程实例来展示单链表的应用。

假设有一个学生成绩管理系统,需要记录每个学生的姓名和成绩。我们可以使用单链表来存储这些数据,方便进行增删改查操作。

首先,定义一个节点结构体,包含学生姓名和成绩的信息,以及指向下一个节点的指针。

```cpp

struct Node {

string name;

int score;

Node* next;

};

```

然后,定义一个链表类,包含链表的头节点和相关操作的方法。

```cpp

class LinkedList {

private:

Node* head;

public:

LinkedList() {

head new Node();

head->next nullptr;

}

void insert(string name, int score) {

Node* newNode new Node();

newNode->name name;

newNode->score score;

newNode->next nullptr;

Node* curr head;

while (curr->next ! nullptr) {

curr curr->next;

}

curr->next newNode;

}

void remove(string name) {

Node* prev head;

Node* curr head->next;

while (curr ! nullptr) {

if (curr->name name) {

prev->next curr->next;

delete curr;

break;

}

prev curr;

curr curr->next;

}

}

void traverse() {

Node* curr head->next;

while (curr ! nullptr) {

cout << "姓名:" << curr->name << ",成绩:" << curr->score << endl;

curr curr->next;

}

}

};

```

现在可以使用这个链表类来管理学生成绩了。

```cpp

int main() {

LinkedList list;

("张三", 80);

("李四", 90);

("王五", 85);

("赵六", 95);

();

("李四");

();

return 0;

}

```

运行结果如下:

```

姓名:张三,成绩:80

姓名:李四,成绩:90

姓名:王五,成绩:85

姓名:赵六,成绩:95

姓名:张三,成绩:80

姓名:王五,成绩:85

姓名:赵六,成绩:95

```

通过这个编程实例,我们可以看到单链表的插入、删除和遍历操作的效果。单链表的应用不仅限于学生成绩管理,还可以用于其他各种场景,如链表排序、链表合并等。

总结一下,单链表是一种常见的数据结构,具有高效的插入和删除操作。通过编程实例展示了单链表的应用。希望本文能够帮助读者理解和掌握单链表的概念和基本操作。

单链表 编程实例 数据结构 链表操作

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。