队列的核心是链表,包括栈也是,所以写一个队列最基础的是写好链表。
通常初学者在使用链表写队列的时候喜欢定义全局变量,但是局部变量比全局变量弊端小,不会存在野指针问题。
那么问题来了,学c语言的时候指针是一个难点,链表的局部变量函数调用之间指针应该怎么写呢?怎么去理解呢?
下面是我写的队列的形成:
# include <stdio.h>
# include <stdlib.h>
typedef struct DL
{
int data;
struct DL *next;
}Qnode,*Queueptr; /*----------------------------(1)之所以是 Qnode,*Queueptr; 为什么有Qnode又有一个*Queueptr ? Qnode是为了队列新的结点申请内存方便,用*Queueptr怎 么申请内存啊?*Queueptr是一个指向结构的指针。*/
typedef struct M
{
Queueptr front;
Queueptr rear;
}