您当前的位置: 首页 >  flashinggg 链表

C++学习链表过程

flashinggg 发布时间:2021-12-20 15:53:18 ,浏览量:3

由于学习邓俊辉《数据结构》中第二章列表里仅仅提到了linked list这一个动态储存结构,并没有对链表进行过多介绍。在跟着《代码随想录》刷题的过程中,第二部分就是链表,因此写这篇链表学习过程为自己做一个刷提前的梳理。ps:之前学过MOCC上的C++课程。

链表 头文件
#include
#include
using namespace std;
链表的定义

链表分为:单链表、双链表、循环链表,根据字面意思就能理解是什么。

力扣做题中,一般都给出了链表的定义,所以不需要写,导致掌握不熟练。

//数据集(data):储存本结点的数据
//指针(next):存放下一个结点的地址
struct node{
  int data;
  struct node *next;
  node(int 
};

——这是我随便摘抄的一个对链表的定义,乍一看又有struct又有data、next指针不知道什么意思

一起来理解链表定义

c++链表(详解版)_slandarer的博客-CSDN博客_c++链表

【C++】链表及基本操作_程序媛养成记-CSDN博客_c++ 链表

——这部分参考了以上两篇文章

① 实物理解:现在有个小纸条,纸条写着一个抽屉的地址,这个抽屉里有一些数据,以及又有个新的纸条,这个纸条指向下一个抽屉。

② 作一些注释:现在有个小纸条,纸条写着一个抽屉的地址,这个抽屉里有一些东西(data),以及又有个新的纸条(*next),这个纸条指向下一个抽屉。 //做的注释看下面的代码就明白了

构建抽屉/定义链表
typedef struct node{
  int data;
  node *next;
  node(int x) : data(x),next(NULL){
  }
}node;

data — 抽屉里的东西,即数据集

*next — 指向下一个抽屉的新纸条,即指针

data(x) — 把data赋值为x

next — 把next赋值为NULL

(1)可以加入:上一个抽屉的指针 *last

typedef struct node{
  int data;
  node *next;
  node *last;
}node;
(2)抽屉里的东西可以是另一个大收纳盒,即另一个结构体struct
typedef struct data{
  int number;
  string name;
  string sex;
}studentdata;
typedef struct node{
  data *information;
  node *next;
  node *last;
}node;

——这里的 int data换成了data *information,指向结构data中的信息。

typedef struct和struct

浅析 typedef struct 和 struct在定义结构体和链表中的作用_谜题未解-CSDN博客_typedef链表

——这一部分参考了以上这篇文章

1.type这是一种C语言的关键字,作为一种数据类型定义一个新名字,能起到简化声明的作用。

2.C和C++都是用标准定义“struct node{};”的形式,C++更简便:

C语言:用了"typedef struct node{}Node;"之后,要想用Node,就可以直接用"Node node1;",这里"Node node1"等价于"struc node node1"

关注
打赏
1688896170
查看更多评论

flashinggg

暂无认证

  • 3浏览

    0关注

    83博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0484s