数据结构中的typedef struct问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 03:05:30
为什么数据结构中的线性表的单链表存储结构:
typedef struct LNode
{
ElemType data;
struct Lnode *next;//这一句是什么意思,为什么也要struct???
}LNode,*LinkList;
为什么{}前后都有一个LNode,是什么意思,课本没有详细讲述这个用法。

1、定义结构体:
struct LNode
{
ElemType data;
struct Lnode *next;
};

至于struct Lnode *next;是定义一个struct Lnode结构体类型的指针,当然要有struct Lnode了。就像定义int型,要用int一样。

2、定义类型:
typedef struct LNode LNode;
就是定义新的类型LNode,即:struct LNode的别名。为了方便调用,少打字。

这其实是两步:
1、定义结构体:
struct LNode
{
ElemType data;
struct Lnode *next;
};

至于struct Lnode *next;是定义一个struct Lnode结构体类型的指针,当然要有struct Lnode了。就像定义int型,要用int一样。

2、定义类型:
typedef struct LNode LNode;
就是定义新的类型LNode,即:struct LNode的别名。为了方便调用,少打字。