C++链表操作:创建、删除和打印节点
C++链表操作:创建、删除和打印节点
链表是一种常用的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。本篇文章将介绍如何使用C++实现链表的基本操作,包括创建链表、删除指定值的节点以及打印链表内容。
#include <iostream>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}ListNode;
typedef ListNode * LinkList;
// 创建链表
LinkList CreatList(void);
// 删除指定值的节点
void DeleteList(LinkList L);
// 打印链表内容
void PrintList(LinkList L);
int main()
{
LinkList head;
head = CreatList();
DeleteList(head);
PrintList(head);
return 0;
}
// 创建链表
LinkList CreatList(void)
{
int val;
LinkList head,p,r;
head = new ListNode;
head->next=NULL;
r=head;
while(1)
{
scanf('%d',&val);
if(val==-1){
break;
}
p= new ListNode;
p->next=NULL;
p->data=val;
r->next=p;
r=p;
}
return head;
}
// 删除指定值的节点
void DeleteList(LinkList L)
{
int val;
scanf('%d',&val);
LinkList p,r;
p=L;
while(p->next)
{
if(p->next->data==val)
{
r=p->next;
p->next=p->next->next;
delete r;
}
p=p->next;
}
}
// 打印链表内容
void PrintList(LinkList L)
{
LinkList p;
p=L->next;
while(p)
{
printf('%d ',p->data);
p=p->next;
}
}
代码说明:
CreatList()函数创建一个链表,用户可以输入一系列整数,以 -1 结束输入。DeleteList()函数删除链表中所有数据域等于指定值的节点。PrintList()函数遍历链表并打印每个节点的数据域。
注意:
- 在删除节点时,需要处理好指针的指向,避免出现内存泄漏或野指针问题。
- 在实际应用中,可以根据需要对链表进行扩展,例如添加插入节点、查找节点等操作。
希望这篇文章能够帮助你理解C++链表的基本操作。如果你有任何问题或建议,请随时留言。
原文地址: https://www.cveoy.top/t/topic/QF8 著作权归作者所有。请勿转载和采集!