没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
7页
//用链栈实现链队列逆置 //Wpl #include "linkstack.h" //将链栈基本操作包括进来 typedef struct node /*定义链队列结点类型*/ { datatype data; struct node *next; }linkqueue; typedef struct /*封装队头指针和队尾指针*/ { linkqueue *front; /*定义队头指针*/ linkqueue *rear; /*定义队尾指针*/ }Lqueue; //链队列的初始化 Lqueue *InitQueue() { Lqueue *Q; linkqueue *q; Q=(Lqueue *)malloc(sizeof(Lqueue)); //为链队列类型分配空间 q=(linkqueue *)malloc(sizeof(linkqueue)); if(!Q) printf("内存空间不足\n"); /*存储分配失败*/ else { q->next=NULL; Q->rear=Q->front=q; //注意此处初始化时q而不是NULL } return Q; }
资源推荐
资源详情
资源评论
//用链栈实现链队列逆置
//Wpl
#include "linkstack.h" //将链栈基本操作包括进来
typedef struct node /*定义链队列结点类型*/
{
datatype data;
struct node *next;
}linkqueue;
typedef struct /*封装队头指针和队尾指针*/
{
linkqueue *front; /*定义队头指针*/
linkqueue *rear; /*定义队尾指针*/
}Lqueue;
//链队列的初始化
Lqueue *InitQueue()
{
Lqueue *Q;
linkqueue *q;
Q=(Lqueue *)malloc(sizeof(Lqueue)); //为链队列类型分配空间
q=(linkqueue *)malloc(sizeof(linkqueue));
if(!Q)
printf("内存空间不足\n"); /*存储分配失败*/
else
{
q->next=NULL;
Q->rear=Q->front=q; //注意此处初始化时q而不是NULL
}
return Q;
}
//入队列
//Wpl
#include "linkstack.h" //将链栈基本操作包括进来
typedef struct node /*定义链队列结点类型*/
{
datatype data;
struct node *next;
}linkqueue;
typedef struct /*封装队头指针和队尾指针*/
{
linkqueue *front; /*定义队头指针*/
linkqueue *rear; /*定义队尾指针*/
}Lqueue;
//链队列的初始化
Lqueue *InitQueue()
{
Lqueue *Q;
linkqueue *q;
Q=(Lqueue *)malloc(sizeof(Lqueue)); //为链队列类型分配空间
q=(linkqueue *)malloc(sizeof(linkqueue));
if(!Q)
printf("内存空间不足\n"); /*存储分配失败*/
else
{
q->next=NULL;
Q->rear=Q->front=q; //注意此处初始化时q而不是NULL
}
return Q;
}
//入队列
Lqueue *EnQueue(Lqueue *Q, datatype x)
{
linkqueue *p; //定义一个链表接点指针
p=(linkqueue *)malloc(sizeof(linkqueue));/*开辟新链表结点*/
if(!p)
printf("内存空间不足\n"); /*存储分配失败*/
else
{
p->data=x; //就是建立链表时候的尾插法
p->next=NULL;
Q->rear->next=p; //把新插入接点放在队尾
Q->rear=p; //移动队尾指针
}
return Q;
}
//出队列
datatype DeQueue(Lqueue *Q)
{
datatype y;
linkqueue *p;
if(Q->rear==Q->front) //或者Q->front和Q->rear为空也可以判断链队列为空
{
return 0;
}
else
{
p=Q->front->next;
y=p->data; /*队头元素出队,存入y中*/
Q->front->next=p->next; /*队头指针后移*/
if(Q->rear==p) /*原来只有一个结点,出队后为空队列*/
{
linkqueue *p; //定义一个链表接点指针
p=(linkqueue *)malloc(sizeof(linkqueue));/*开辟新链表结点*/
if(!p)
printf("内存空间不足\n"); /*存储分配失败*/
else
{
p->data=x; //就是建立链表时候的尾插法
p->next=NULL;
Q->rear->next=p; //把新插入接点放在队尾
Q->rear=p; //移动队尾指针
}
return Q;
}
//出队列
datatype DeQueue(Lqueue *Q)
{
datatype y;
linkqueue *p;
if(Q->rear==Q->front) //或者Q->front和Q->rear为空也可以判断链队列为空
{
return 0;
}
else
{
p=Q->front->next;
y=p->data; /*队头元素出队,存入y中*/
Q->front->next=p->next; /*队头指针后移*/
if(Q->rear==p) /*原来只有一个结点,出队后为空队列*/
剩余6页未读,继续阅读
资源评论
orangecoffee
- 粉丝: 0
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功