关于链式结构的问题
本帖最后由 cheyhu 于 2019-12-12 20:53 编辑有一下几个问题麻烦各位指点指点
1.链表如果有头结点是不是可以用头结点代表整个结构?没有头结点那比如LinkList L中这个L到底是什么方式存在的?
2.链式队列的头结点问题,一般是不是队首front就是头结点?怎么知道题目中说的是有没有带头结点?
3.链式队列的销毁:
int DestoryQueue(LinkQueue &Q){
while(Q.front){
Q.rear = Q.front ->next;
free(Q.front);
Q.front = Q.rear;
}
return OK;
}
上面这段代码Q.front这个代表的是头结点吗?如第1个问题所问的,头结点代表整个结构,那如果头结点被删了,那是不是整个结构都没有了?那Q.xxx是不是也没法用了?
4.队列的初始化
typedef struct QNode{ //队列中 结点 的数据结构类型
QElemType date;
struct QNode *next;
}QNode, *QueuePtr;
typedef struct{ //队列的数据结构类型
QueuePtr front;
QueuePtr rear;
}LinkQueue;
int InitQueue(LinkQueue *Q)
{
Q->front = (LinkQueueNode *)malloc(sizeof(LinkQueueNode));
if (Q->front != NULL)
{
Q->rear = Q->front;
Q->front->next = NULL;
return TRUE;
}
上面队列的初始化为什么开辟的是数据结点类型的?而不是头结点类型的? 有大神吗?急求
页:
[1]