数据结构 循环队列入门问题 一个有关循环队列的问题,数据结构与算法
\u6570\u636e\u7ed3\u6784\u5faa\u73af\u961f\u5217\u95ee\u9898typedef struct LNode {
//\u5b9a\u4e49\u94fe\u8868\u8282\u70b9
int data;
struct LNode *next;
}LNode, *LinkList;
LinkList Head; //\u5b9a\u4e49\u5168\u5c40\u53d8\u91cf\u94fe\u8868\u5934
//\u6784\u9020\u7a7a\u94fe\u8868
LinkList InitList( )
{
static LinkList head;
head = (LinkList) malloc (sizeof(LNode));
if( ! head) exit (OVERFLOW);
head->next = NULL;
return head;
}
//\u8f93\u5165\u6570\u636e\u63d2\u5165\u5230\u94fe\u8868\u540e\uff0c\u521b\u5efa\u5faa\u73af\u94fe\u8868
Status CreateList(LinkList head ,int m)
{
LinkList p,q;
int i;
p = head;
for(i=1;i<m+1;i++) {
q = (LinkList)malloc(sizeof(LNode));
q->data = i;
q->next = NULL;
p->next = q;
p = p->next;
if(i == m) { p->next = Head->next; } //\u94fe\u6210\u5faa\u73af\u94fe\u8868
}
return OK;
}
\u662f\u8fd9\u6837\u7684 \u6240\u8c13\u5faa\u73af\u961f\u5217\u662f\u4e00\u4e2a\u5708\u5f62\u7684\uff0c\u4f60\u7684\u961f\u5c3e\u4e0d\u65ad\u7684\u5411\u5185\u52a0\u5165\u6570\u636e\uff0c\u961f\u5934\u4e0d\u65ad\u8f93\u51fa\u6570\u636e\uff0c\u7136\u540e\u73b0\u5728\u4f60\u8003\u8651\u4e00\u79cd\u60c5\u51b5\uff0c\u5982\u679crear \uff08\u5c3e\u6307\u9488\uff09\u53ea\u57286\u4e0a\u9762\uff0c\u7136\u540e\u5934\u6307\u9488\u6307\u57285\u4e0a\u9762\uff0c\u73b0\u5728\u518d\u5f80\u91cc\u9762\u52a0\u5165\u4e00\u4e2a\u6570\u636e\uff0c\u6309\u7167\u5faa\u73af\u961f\u5217\u7684\u5b9a\u4e49\uff0c\u5c3e\u6307\u9488\u5c06\u6307\u54111\uff0c\u5934\u6307\u9488\u6307\u54115\uff0c\u6b64\u65f6\u5728\u8f93\u51fa\u4e00\u4e2a\u5143\u7d20\uff0c\u5373\u5934\u6307\u9488\u5411\u540e\u79fb\u4e00\u4f4d\uff0c\u5c31\u53d8\u6210\u4e862\u56fe\u7684\u610f\u601d\u4e86\u3002
按你数法的话如果头尾都指向8了那队列到底是空的还是满就不能判断了按照一般约定你从front数到rear的前一个也就是data2就行了,所以就因该是13+3=16
循环队列长度的计算公式为
Length=(rear-front+Maxsize)%Maxsize
rear和front是头尾指针,Maxsize为存储空间长度
用上面的公式算会更快一点
队头指针始终指向头结点,队尾指针指向当前最后一个元素.空的链队列的队头指针和队尾指针均指向头结点.
你数错了, 若头指针和尾指针的值分别为8和9长度为一,按你数的长度就为2了 应该是12+4=16
21-(8-3)
date[3] 不在队列中 你应该是把date[3]也计算在内了
扩展阅读:2024年保密观25道题 ... 保密观app全部答案2024 ... 扫一扫题目出答案 ... 搜题拍照秒出答案 ... 安全试题扫一扫出答案 ... 为什么引入循环队列 ... 扫一扫一秒出答案 ... 特色专项 语文答案 ... 队列指挥科目 要求 内容 ...