民生阳光消费卡:c++结构体相关

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 06:39:03
typedef struct LNode
{
int data;
struct LNode *next;
} LNode, *LinkList;

请问以上程序是怎么运行的,其中相互包含是如何进行分配,以及最后能得到什么样的效果.
谢谢
以上为一个建立链表程序中的开头,但是我看了还是感觉有点迷惑,请前辈多多指点,谢谢:)

struct LNode *next只是一个指向LNode的指针
例如:
LNode *head=new LNode;
则head->next并没有指向任何东西,只有当
head->next=new LNode;后next才指向一个新的LNode,一般最后一个next指针让它指向null则可构成一个单向链表,指向head则构成一个循环链表。

typedef struct LNode
{
int data;
struct LNode *next;
} LNode, *LinkList;
<===>
typedef struct LNode
{
int data;
LNode *next;
} LNode, *LinkList;

上面两个等价
加上typedef 相当于使struct LNode ==LNode

1. 单独一个结构体并不能够运行;
2. “相互包含”这个提法可能有问题,应该是多个LNode如何关联起来吧,是通过next指针关联起来的。