求助!!!
在队列中typedef struct Node
{
ElemType date;
struct QNode *next;
}QNode, *QueuePrt;
typedef struct
{
QueuePrt front, rear;
}LinkQueue;
这个结构体的变量名的*QueuePrt和LinkQueue有什么区别,为什么下面的这个LinkQueue不加*,是因为之前的QueuePrt已经表明是指针了,这里只是原本QueuePrt指向的一个变量吗,所以不需要。还有这里的QNode有什么作用呢 首先我们要知道Queue是指向队列时才有的对吧,然后NODE是节点的意思对吧,然后QNODE就是队列的节点(大概这么理解)对吧,好了那么我们接下来就来开始剖析。
*QueuePrt我们知道,是一个指针类型,也就是说,这是一个指向struct NODE结构体类型的指针,因为它前面加了typedef嘛(要是不知道就回去复习一下)
OK我们来讲讲LinkQueue,我们通过typedef这个关键字知道了LinkQueue其实是这个没有名字的结构体的“别名”(大概这么理解就好了),而这里之所以没有加*号,是因为它这里并不需要为指向这个结构体类型的指针起一个别名,它只需要让编译器知道说,我定义了一个叫LinkQueue的类型名字,而这个类型里面,包含着两个结构体变量:QueuePrt front和QueuePrt rear。
好了来解答一下你的第一个问题(其实上面要是理解透了也就懂了),*QueuePrt是一个指向某个结构体类型的指针类型的名字,而LinkQueue是另外一个不同的结构体类型的名字了。
然后第二个问题,其实我们反过来想,这个LinkQueue加了*号有什么作用。这个作用就是说,当我们用这个名字的时候,就相当于自己定义了一个指向这个结构体类型的指针类型(也可以理解为起个别名)
第三个问题,在LinkQueue里面定义的两个变量其实是指针变量(什么类型的指针变量回顾我上面)。也就是说,这个叫做LinkQueue的结构体里面只有两个变量,这两个变量是指向队列的节点的指针类型。
第四个问题,QNODE有啥作用??QNODE就是NODE的别名呀,大概这么理解就好了,,,
好了不知道有没有帮到你,如果有什么不懂再回复我把。。。。。。。。。。。。。。。
页:
[1]