用循环单链表实现循环队列,写出插入,和删除的算法,只要这两个函数的算法就行了,有头尾指针.主函数什么的都不用写,只写这两个算法!急!急!急!

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 03:46:45
用循环单链表实现循环队列,写出插入,和删除的算法,只要这两个函数的算法就行了,有头尾指针.主函数什么的都不用写,只写这两个算法!急!急!急!

用循环单链表实现循环队列,写出插入,和删除的算法,只要这两个函数的算法就行了,有头尾指针.主函数什么的都不用写,只写这两个算法!急!急!急!
用循环单链表实现循环队列,写出插入,和删除的算法,只要这两个函数的算法就行了,有头尾指针.
主函数什么的都不用写,只写这两个算法!急!急!急!

用循环单链表实现循环队列,写出插入,和删除的算法,只要这两个函数的算法就行了,有头尾指针.主函数什么的都不用写,只写这两个算法!急!急!急!
先写个循环链表的实现
然后 C++ 用继承
C就组合吧,下面写个C的实现
typedef struct CircleListNode{
Datatype d;
struct CircleList *pre,*nxt;
}*CircleList,CirListNode;
typedef struct
{
CircleList Head;
int num;
}CircleQueue;
void insertFront(CircleList *L,d);
{
if(!L)return NULL;
if(*L==NULL)
{
*L=(CircleList) malloc(sizeof(CirListNode));
*L->nxt= *L->pre=*L ;
*L->d=d;
}
else
{
CircleList p =(CircleList) malloc(sizeof(CirListNode));
p->nxt=*L;
p->pre=*L->pre;
*L->pre->nxt=p;
*L->pre=p;
*L=p;
}
}
void DeleteBack(CircleList *L)
{ CircleList r=*L->pre;
if(*L->nxt =*L){ free(*L);*L=NULL;return ;}
r->pre->nxt =*L;
*L->pre=r->pre;
free(r);
}
void InsertQueue(CircleQueue *que,Datatype d)
{
if(!que)return;
insertFront(&que->Head,d);
que->num ++;
}
void DeletQueue(CircleQueue *que)
{
if(que->num>0)
{
DeleteBack(&que->Head);
que->num--;
}
}
void InitQueue(CircleQueue *que)
{
if(!que)return;
que->Head=NULL;
que->num=0;
}
Datatype * GetBackData(const CircleQueue *que)
{
if(!que)return NULL;
if(!que->Head)return NULL;
if(que->numHead->pre->d);
}
void ClearQueue(CircleQueue *que)
{
if(!que)return ;
while(que->num>0)
{
DeletQueue(que);
}
}

用循环单链表实现循环队列,写出插入,和删除的算法,只要这两个函数的算法就行了,有头尾指针.主函数什么的都不用写,只写这两个算法!急!急!急! 设用一个循环链表来表示一个队列,该队列只设一个尾指针,试分别编写向循环队列插入和删除一个结点的算法 数据结构关于循环队列的问题若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再插入两个元素后,rear和front的值分别为多少? 循环队列 对于循环队列,试写出求队列长度的算法. 循环队列采用设置标志的方法来区分队列的满和空 实现这个算法! 数据结构中 循环队列用取模运算实现怎么理解啊 2.约瑟夫环的实现:设有n个人围坐在圆桌周围,现从某个位置 i 上的人开始报数,数到1.任意输入队列长度和队列中的元素值,构造一个顺序循环队列,对其进行清空、插入新元素、返回队头元素 数据结构求指导:循环队列若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0和3.当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少? 说明顺序循环队列的构造方法.用什么方法解决顺序循环队列的队满和队空判断问题? 求循环队列中元素个数使用一个元素个数为100的数组存储循环队列,如果采取少用一个元素空间来区别循环队列空和满,约定队列首指针front等于队列尾指针rear时表示队列空,如果front=8 rear=7 则 C语言实现循环列表,存放数字,中文,字母都能存放怎么用C语言实现循环列表来存放长度不等的数字、中文、字母,(循环队列) 循环队列属于什么结构? 循环队列的优点是什么 假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen分别指示循环队列中的队尾元素的位置和队列中内含元素的个数,试给出判别次循环队列中的堆满条件,并写出相应的入队和出队的 假设循环队列中只设rear和length来分别指示队尾元素和队中元素的个数,试给出半判断此循环队列的队满条件并写出相应的入队和出队算法 如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,而改置计数器count用以记录队列中结点的个数.编写实现队列的基本运算:判空,入队,出队(3分)队列中 循环队列的优点是什么?如何判断它的空和满?假设循环队列只设rear和quelen来分别指示队尾元素的位置和队中元素的个数,试给出判断此循环队列的队满条件,并写出相应的入队和出队算法,要求