(三)链式队列基本操作 1、队列结点定义 根据实际处理数据的类型定义链队中结点
(三)链式队列基本操作1、队列结点定义根据实际处理数据的类型定义链队中结点的值域类型ElemTypetypedefstructnode//队列结点类型定义{ElemTyp...
(三)链式队列基本操作
1、队列结点定义
根据实际处理数据的类型定义链队中结点的值域类型ElemType
typedef struct node //队列结点类型定义
{ ElemType data; //队列的数据元素类型
struct node *link; //指向后继结点的指针
}NODE;
struct QueueLk{ //定义链队
//定义链队队头和队尾指针
}
2、入队
NODE *ldcr(struct QueueLk *QL,Elemtype x) //将元素x插入到链队列rear中,作为rear的新队尾
{
NODE *p;
p->data=x;
p->link=NULL; //置新结点的指针为空
if(QL->front==NULL) //队列为空
else
//将链队列中最后一个结点的指针指向新结点
//将队尾指向新结点
return QL->rear;
}
3、出队
ElemType ldsc(struct QueueLk *QL) //若链队列不为空,则删除队头元素,返回其元素值
{ NODE *s;
ElemType x;
if( ) //队空,退出程序
exit(1);
s=QL->front; //取队头保存在s中
//删除队头结点
if( ) //如果删除后队列为空,则处理队尾指针
QL->rear=QL->front;
x=s->data; //将刚才出队的结点值给x
//释放出对结点的空间
return x;
}
4、编写主函数验证上述子函数是否正确。
void main() //自己设计主函数完成
{ 展开
1、队列结点定义
根据实际处理数据的类型定义链队中结点的值域类型ElemType
typedef struct node //队列结点类型定义
{ ElemType data; //队列的数据元素类型
struct node *link; //指向后继结点的指针
}NODE;
struct QueueLk{ //定义链队
//定义链队队头和队尾指针
}
2、入队
NODE *ldcr(struct QueueLk *QL,Elemtype x) //将元素x插入到链队列rear中,作为rear的新队尾
{
NODE *p;
p->data=x;
p->link=NULL; //置新结点的指针为空
if(QL->front==NULL) //队列为空
else
//将链队列中最后一个结点的指针指向新结点
//将队尾指向新结点
return QL->rear;
}
3、出队
ElemType ldsc(struct QueueLk *QL) //若链队列不为空,则删除队头元素,返回其元素值
{ NODE *s;
ElemType x;
if( ) //队空,退出程序
exit(1);
s=QL->front; //取队头保存在s中
//删除队头结点
if( ) //如果删除后队列为空,则处理队尾指针
QL->rear=QL->front;
x=s->data; //将刚才出队的结点值给x
//释放出对结点的空间
return x;
}
4、编写主函数验证上述子函数是否正确。
void main() //自己设计主函数完成
{ 展开
展开全部
压栈和出栈。压栈是将数据存入栈区,出栈是提取存进去的数据。堆栈的操作特点是,先进先出。谢谢采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |