本文介绍: 【代码】数据结构:队列的链表结构(含完整代码,可复制)
1.输出队列
void outlin(LinkQueue qq)
{
p=qq.front->next;
while(p!=NULL)
{printf(" data=%4dn",p->data);
p=p->next;}
printf("n outend nn");
}
2.入队一个元素
void insert(LinkQueue *qe,int x)
{
s=(NodeType *)malloc(sizeof(NodeType));
s->data=x;s->next=NULL;
qe->rear->next=s;
qe->rear=s;
}
3.出队一个元素
void dele(LinkQueue *qe)
{
ElemType x;
if(qe->front==qe->rear){printf("队列为空。n");x=0;}
else
{
p=qe->front->next;
qe->front->next=p->next;
if(p->next==NULL) qe->rear=qe->front;
x=p->data;printf("%dn",x);free(p);
}
}
5.建立链表队列
void creat(LinkQueue *qe)
{
int i,n,x;
h=(NodeType *)malloc(sizeof(NodeType));
h->next=NULL;qe->front=h;qe->rear=h;
printf("n=");scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("n data=");scanf("%d",&x);
insert(qe,x);
}
}
6.完整代码
#include "stdio.h"
#include "stdlib.h"
typedef int ElemType;
typedef struct NodeType
{
ElemType data;
struct NodeType *next;
}NodeType;
typedef struct
{
NodeType *front,*rear;
}LinkQueue;
NodeType *p,*s,*h;
void outlin(LinkQueue qq);
void creat(LinkQueue *qe);
void insert(LinkQueue *qe,ElemType x);
void dele(LinkQueue *qe);
main()
{
LinkQueue que;ElemType x,y;
int cord;
do
{
printf("n 主菜单n");
printf("n 1 建立链表队列n");
printf("n 2 入队一个元素 X n");
printf("n 3 出队一个元素n");
printf("n 4 程序结束运行n");
printf("n-------------------n");
printf("请输入您的选择(1,2,3,4)");scanf("%d",&cord);
switch(cord)
{
case 1:{creat(&que);
outlin(que);
}break;
case 2:{printf("n x=?");scanf("%d",&x);
insert(&que,x); outlin(que);
}break;
case 3:{dele(&que);
outlin(que);
}break;
case 4:exit(0);
}
}while(cord<=4);
}
void outlin(LinkQueue qq)
{
p=qq.front->next;
while(p!=NULL)
{printf(" data=%4dn",p->data);
p=p->next;}
printf("n outend nn");
}
void insert(LinkQueue *qe,int x)
{
s=(NodeType *)malloc(sizeof(NodeType));
s->data=x;s->next=NULL;
qe->rear->next=s;
qe->rear=s;
}
void dele(LinkQueue *qe)
{
ElemType x;
if(qe->front==qe->rear){printf("队列为空。n");x=0;}
else
{
p=qe->front->next;
qe->front->next=p->next;
if(p->next==NULL) qe->rear=qe->front;
x=p->data;printf("%dn",x);free(p);
}
}
void creat(LinkQueue *qe)
{
int i,n,x;
h=(NodeType *)malloc(sizeof(NodeType));
h->next=NULL;qe->front=h;qe->rear=h;
printf("n=");scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("n data=");scanf("%d",&x);
insert(qe,x);
}
}
原文地址:https://blog.csdn.net/m0_75115696/article/details/135608150
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_56532.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。