21xrx.com
2024-11-10 00:19:12 Sunday
登录
文章检索 我的文章 写文章
C++实现单链表的增删改查
2023-06-30 18:19:22 深夜i     --     --
单链表 C++ 增加 删除 修改 查询

单链表是一种只能单向访问的链式数据结构,它由一系列节点组成,每个节点包含一个数据域和一个指向下一个节点的指针域。单链表支持插入、删除和查找等基本操作,是编程中常用的数据结构之一。

1. 定义节点结构体

在C++中,我们可以使用结构体来定义单链表的节点。结构体中包含两个成员,分别表示数据域和指针域。


struct ListNode {

  int val;

  ListNode* next;

  

  ListNode(int x) : val(x), next(NULL) {}

};

2. 创建节点并插入链表

我们使用new运算符动态创建节点,并使用指针指向新创建的节点。插入新节点时,我们需要将新节点的指针域指向下一个节点,并将上一个节点的指针域指向新节点。


ListNode* head = NULL;

// 在链表头插入一个节点

ListNode* newNode = new ListNode(1);

newNode->next = head;

head = newNode;

// 在链表尾插入一个节点

ListNode* tail = head;

while (tail->next != NULL)

  tail = tail->next;

ListNode* anotherNode = new ListNode(2);

tail->next = anotherNode;

3. 删除链表中节点

要删除链表中的一个节点,我们需要找到该节点的前一个节点,然后将前一个节点的指针域指向该节点的下一个节点。然后删除该节点即可。


// 删除链表中的一个节点

ListNode* prevNode = head;

while (prevNode->next != NULL && prevNode->next->val != 2)

  prevNode = prevNode->next;

ListNode* tempNode = prevNode->next;

prevNode->next = tempNode->next;

delete tempNode;

4. 修改链表中节点

要修改链表中的一个节点,我们需要找到该节点,然后修改该节点的数据域即可。


// 修改链表中的一个节点

ListNode* updateNode = head;

while (updateNode != NULL && updateNode->val != 1)

  updateNode = updateNode->next;

updateNode->val = 0;

5. 查找链表中节点

要查找链表中是否存在某个值为x的节点,我们可以通过遍历链表来查找。当找到该节点时,返回节点指针;否则返回NULL。


// 在链表中查找某个节点

ListNode* findNode = head;

while (findNode != NULL && findNode->val != 1)

  findNode = findNode->next;

if (findNode != NULL)

  cout << "找到节点:" << findNode->val << endl;

else

  cout << "未找到节点" << endl;

总结

我们可以使用C++语言来实现单链表的增删改查等基本操作。单链表是一种常用的数据结构,具有插入、删除和查找等功能,对于解决实际问题非常有帮助。通过掌握单链表的实现方法,可以提高程序编写的效率和质量。

  
  

评论区

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