LNode和*LinkList区别
时间: 2024-04-21 18:23:00 浏览: 725
`LNode` 和 `*LinkList` 是两个不同的类型。
`LNode` 是一个结构体类型,表示链表的节点。它通常包含一个数据域和一个指向下一个节点的指针域。例如,可以定义如下的 `LNode` 结构体:
```c
struct LNode {
int data;
struct LNode *next;
};
```
`*LinkList` 则是指向链表头节点的指针。它是一个指针类型,指向存储链表节点的内存空间的起始地址。在链表操作中,通过 `*LinkList` 可以访问链表的头节点,从而遍历或修改整个链表。
通常情况下,我们会使用 `typedef` 来简化 `*LinkList` 的定义,例如:
```c
typedef struct LNode* LinkList;
```
这样,我们可以直接使用 `LinkList` 来声明链表的头指针,如:
```c
LinkList head;
```
总结来说,`LNode` 是链表节点的类型,而 `*LinkList` 是指向链表头节点的指针类型。
相关问题
typedef int ElemType; typedef int Status; typedef struct Lnode { ElemType data; struct Lnode *next; }Lnode, *LinkList;
这其实是一段 C 语言代码,用于定义一个链表数据结构。具体来说,这段代码分别定义了如下内容:
1. `typedef int ElemType;`:定义了一个别名 `ElemType`,它代表了链表节点中存储的数据类型,这里是整型(int)。
2. `typedef int Status;`:定义了一个别名 `Status`,它代表了函数返回值类型,这里也是整型(int)。
3. `typedef struct Lnode`:定义了一个结构体类型 `Lnode`,它表示链表节点的结构。
4. `{ ElemType data; struct Lnode *next; }`:定义了结构体 `Lnode` 的成员变量,即节点的数据域 `data` 和指向下一个节点的指针域 `next`。
5. `Lnode, *LinkList;`:定义了两个别名 `Lnode` 和 `LinkList`,它们都是指向 `struct Lnode` 的指针类型。其中,`Lnode` 表示链表节点的类型,`LinkList` 表示链表的头指针类型。
这段代码的作用是方便定义和使用链表数据结构。通过定义别名 `ElemType` 和 `Status`,可以方便地更改节点数据类型和函数返回值类型。通过定义结构体 `Lnode` 和指针类型 `LinkList`,可以方便地创建和操作链表。
typedef struct LNode { ElemType data; struct LNode* next; LNode(ElemType x):data(x){} } LNode, * LinkList;
这段代码定义了一个单链表的结点类型 LNode,其中包含了一个数据成员 data 和一个指向下一个结点的指针 next。同时,定义了一个 LinkList 类型,它是一个指向 LNode 的指针,用于表示单链表的头指针。
在 LNode 的构造函数中,使用了初始化列表,将 data 初始化为 x。这是 C++ 中的一种初始化方式,可以避免在构造函数体中再次对 data 进行赋值操作,提高效率。
阅读全文