c++单链表的创建、输出、插入、删除操作

混子来了

单链表的创建:

首先单链表的定义就不再赘述了,本文利用带头节点,尾插法的方法进行创建,同时注意头节点在此的重要性,即所有操作都要通过头节点来实现,头节点的值绝对不能被改变

  1. 结点的定义
struct ListNode//定义节点
{
   
    int m_key;
    ListNode* next;
}A;
  1. 由于我们需要一个头节点,所以我们就先创建一个头节点
    ListNode* head = NULL;
    head = new ListNode;
    head->next = NULL;
  1. 接下来就是创建一个单链表了
void createList(ListNode* pHead,int n)//创建单链表
{
   
   ListNode* p = pHead;//不能改变头节点
   for (int i = 1; i <= n; ++i)
   {
   
       ListNode* pNewNode = new ListNode;//申请一个新节点
       cin>>pNewNode->m_key; // 将新节点的数据域赋值
       pNewNode->next = NULL;//新节点的指针域置为空
       p->next = pNewNode; // 上一个节点的指针域指向这个新节点
       p = pNewNode; // p节点指向这个新节点
   }
}

单链表的输出:

单链表的输出比较简单,就是利用头节点,找到第一个节点,当节点不为空时,输出数据域,然后节点后移

void print(ListNode*phead)
{
   
    ListNode*p=phead->next;
    while
以下是C++实现单链表插入删除操作的示例代码: ```c++ #include<iostream> using namespace std; //定义链表结构体 struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; //链表插入操作 void insertNode(ListNode* &head, int val) { ListNode* newNode = new ListNode(val); if(head == NULL) { head = newNode; } else { ListNode* cur = head; while(cur->next != NULL) { cur = cur->next; } cur->next = newNode; } } //链表删除操作 void deleteNode(ListNode* &head, int val) { if(head == NULL) return; if(head->val == val) { head = head->next; } else { ListNode* cur = head; while(cur->next != NULL && cur->next->val != val) { cur = cur->next; } if(cur->next != NULL) { cur->next = cur->next->next; } } } //链表遍历 void printList(ListNode* head) { ListNode* cur = head; while(cur != NULL) { cout << cur->val << " "; cur = cur->next; } } int main() { ListNode* head = NULL; insertNode(head, 1); insertNode(head, 2); insertNode(head, 3); insertNode(head, 4); cout << "插入操作后的链表为:"; printList(head); deleteNode(head, 2); deleteNode(head, 4); cout << "\n删除操作后的链表为:"; printList(head); return 0; } ``` 在上述代码中,我们首先定义了一个链表结构体 `ListNode`,其中包含节点的值 `val` 和指向下一个节点的指针 `next`。然后,我们实现了链表插入操作 `insertNode` 和删除操作 `deleteNode`。最后,我们通过 `printList` 函数遍历链表输出链表中的每个节点的值。 在 `main` 函数中,我们先创建一个空链表 `head`,然后依次插入节点,最后输出插入节点后的链表。然后,我们删除链表中的节点2和节点4,并输出删除节点后的链表。 运行上述代码,输出结果如下: ``` 插入操作后的链表为:1 2 3 4 删除操作后的链表为:1 3 ``` 可以看到,我们成功地实现了单链表插入删除操作,并正确输出链表中节点的值。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值