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++链表的基本操作。如果你有任何问题或建议,请随时留言。

C++链表操作:创建、删除和打印节点

原文地址: https://www.cveoy.top/t/topic/QF8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录