链表操作总结:基于C++

前言:

大三就开始了实习,但是刚刚发现居然连链表的操作都不会写,早就忘得一干二净了,脑海里好像也只有点链表的印象,果然基础不牢地动山摇,总结一遍链表的操作也帮助自己今后复习。

强烈建议参考文献(从初学者的角度来说):《大话数据结构》

1. 开始:

首先确认节点node的数据结构

typedef struct node{
   
    int value;
    struct node *next;
}node;

然后我们要做的事就是生成第一个节点(我取名为head):

   node *head;
   head = new node;
   head->value = 0;//给他的数据域赋值为0
   head->next = NULL;//指定他的下一个节点为空

2.在这之后新建一个节点

在这里插入图片描述

   node *pnew;
   pnew = new node;
   pnew->value = 1;
   pnew->next = NULL;
   head->next = pnew;//这里之前是重复的操作,我们就只是将刚才的节点的next指向了这个节点

觉得好简单是不是,哈哈哈哈哈,可能有人说随便一个计算机在读的本科生都能写出来是不是,我也不敢信长时间不看链表操作的时候我居然会一头蒙,唉,果然看别人的代码和自己能写出来的代码完全就是两回事,真的是基础不牢地动山摇

3.从中插入一个节点

在这里插入图片描述
(我们假设不知道pnew,只知道head)我们从中插入一个新节点pnew2,首先插入将新节点pnew的next指向head的下一个节点pnew,然后将head的next指向插入节点pnew2:

1.pnew2->next = head->next;
2.head->next = pnew2;  

这里能不能转换呢?答案肯定是:不行的🙅‍♂️

因为在CPP里,=是赋值操作,但我更喜欢将她理解为copy,拷贝操作,也就是传值,如果我们反过来

-----错误示范-----
1.head->next = pnew2; 
2.pnew2->next = head->n
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值