以下运算实现在循环队上判队空,请在______处用适当的语句予以填充。 int EmptyCycQueue(Cycqcleu
以下运算实现在循环队上判队空,请在______处用适当的语句予以填充。
int EmptyCycQueue(CycqcleueTp sq)
{ if(______)retum(1);
else return(0);
}
以下运算实现在循环队上判队空,请在______处用适当的语句予以填充。
int EmptyCycQueue(CycqcleueTp sq)
{ if(______)retum(1);
else return(0);
}
以下运算实现在循环队上的入队列,请在______处用适当的语句予以填充。
int EnCycQueue(CycquetaeTp*sq,DataType x)
{ if((sq—>rear+1)%maxsize==______)
{error("队满");return(0);)
else{______;
______;
return(1);
}
}
以下运算实现在链队上的入队列,请在______处用适当的语句予以填充。
void EnQueue(QueptrTp*lq,DataType x)
{ LqueueTp*P;
p=(LqueueTp*)malloc(sizeof(LqueueTp));
______=x;
p—>next=NULL;
(1q—>rear)—>next=______;
______;
}
以下运算实现在链栈上的初始化,请在______处用适当的语句予以填充。
void InitStack(LStackTp*ls){______;)
以下运算实现在顺序栈上的退栈,请在______处用适当的语句予以填充。
int Pop(SqStackTp*sq,DataType*x)
{ if(sq—>top==0){error("下溢");return(0);)
else{*x=______;
______;
return(1);
}
}
以下运算实现在链栈上的进栈,请在______处用适当的语句予以填充。
void Push(LStackTp*ls,DataType x)
{ LStackTp*p;p=malloc(sizeof(LStackTp));
______;
p—>next=ls;
______;
}
以下运算实现在链栈上的退栈,请在______处用适当的语句予以填充。
int Pop(LStackTp*is,DataType*x)
{ LStackTp*P;
if(1s!=NULL)
{ p=ls;
*x=______;
ls=ls—>next;
______;
return(1);
} else return(0);
}
【习题3-2】设一维数组elem[maxSize]存放循环队列的元素,同时以rear和length分别指示循环队列中的队尾位置和队列中所含元素的个数。下面算法的功能是:插入(EnQueue)和删除(DeQueue)元素的操作。请在空白处填入正确的语句。//设该循环队列的结构定义为 #define maxSize 100 typedef int ElemType; typedef struct { //循环队列的结构定义 ElemType elem[maxSize]; //队列存储数组 int rear, length; //队列的队尾指针和队列长度。rear是实际的队尾位置。 } CircQueue; int EnQueue(CircQueue &Q, ElemType x) { //元素x存放到队列尾部。若进队列成功,函数返回true,否则返回false。 if(___________①_____________) return flase; //判队列是否不满,满则出错 Q.rear = __________②__________; //队尾指针进1 _________③__________; //进队列 _________④__________; //队列长度加1 return true; } int DeQueue(CircQueue &Q, ElemType &x) { //从队列队头退出元素由x返回。若退队列成功,函数返回true,否则返回false。 if(__________⑤__________) return false; //判断队列是否不空,空则出错 Q.length--; //队列长度减1 x = elem[(Q.rear - Q.length + 1 + maxSize) % maxSize]; //返回原队头元素值 return true; }
【Test-3-2】设一维数组elem[maxSize]存放循环队列的元素,同时以rear和length分别指示循环队列中的队尾位置和队列中所含元素的个数。下面算法的功能是:插入(EnQueue)和删除(DeQueue)元素的操作。请在空白处填入正确的语句。(每空4分) //设该循环队列的结构定义为 #define maxSize 100 typedef int ElemType; typedef struct { //循环队列的结构定义 ElemType elem[maxSize]; //队列存储数组 int rear, length; //队列的队尾指针和队列长度。rear是实际的队尾位置。 } CircQueue; //设该循环队列的结构定义为 #define maxSize 100 typedef int ElemType; typedef struct { //循环队列的结构定义 ElemType elem[maxSize]; //队列存储数组 int rear, length; //队列的队尾指针和队列长度 } CircQueue; //rear是实际的队尾位置。其队空条件和队满条件分别为Q.length == 0和Q.length == maxSize。 int EnQueue(CircQueue &Q, ElemType x) { //元素x存放到队列尾部。若进队列成功,函数返回true,否则返回false。 if(___________①_____________) return flase; //判队列是否不满,满则出错 Q.rear = __________②__________; //队尾指针进1 _________③__________; //进队列 _________④__________; //队列长度加1 return true; } int DeQueue(CircQueue &Q, ElemType &x) { //从队列队头退出元素由x返回。若退队列成功,函数返回true,否则返回false。 if(__________⑤__________) return false;//判断队列是否不空,空则出错 Q.length--;//队列长度减1 x = elem[(Q.rear - Q.length + 1 + maxSize) % maxSize]; //返回原队头元素值 return true; }
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!