怎么做一个商城网站,家如何网站,医疗类网站,龙岗做网站链式队列实现#xff1a;
1.创建一个空队列
2.尾插法入队
3.头删法出队
4.遍历队列 一、main函数 #include stdio.h #include ./3.linkqueue.h int main(int…链式队列实现
1.创建一个空队列
2.尾插法入队
3.头删法出队
4.遍历队列 一、main函数 #include stdio.h #include ./3.linkqueue.h int main(int argc, const char *argv[]) { linkpos* pos create_linkqueue(); show_linkqueue(pos);insertENd_linkqueue(pos,111); insertENd_linkqueue(pos,222); insertENd_linkqueue(pos,333); insertENd_linkqueue(pos,444); insertENd_linkqueue(pos,555); show_linkqueue(pos); dataType num output_linkqueue(pos); printf(出队的数据为%d\n,num); show_linkqueue(pos); return 0; }
二、功能函数
#include stdio.h
#include stdlib.h
#include ./3.linkqueue.h //创建
linkpos* create_linkqueue()
{ linkpos* pos (linkpos*)malloc(sizeof(linkpos)); pos-front (linkqueue*)malloc(sizeof(linkqueue)); if(NULL pos-front) { printf(队列创建失败\n); return NULL; } pos-front-next NULL; pos-rear pos-front; pos-front-text.len 0; return pos;
} //判空
int isEmpty_linkqueue(linkpos*pos)
{ return pos-front pos-rear?1:0;
} //遍历
void show_linkqueue(linkpos*pos)
{ if(isEmpty_linkqueue(pos)) { printf(队列为空\n); return ; } linkqueue* p pos-front-next; while(p ! pos-rear) { printf(%d ,p-text.data); pp-next; } printf(\n); return ;
} //尾插 入队
void insertENd_linkqueue(linkpos*pos,dataType num)
{ linkqueue* temp (linkqueue*)malloc(sizeof(linkqueue)); if(NULL temp) { printf(结点创建失败入队失败\n); return; } temp-next NULL; temp-text.data num; temp-next pos-rear-next; pos-rear-next temp; pos-rear pos-rear-next; pos-front-text.len; return; } //头删 出队
dataType output_linkqueue(linkpos*pos)
{ if(isEmpty_linkqueue(pos)) { printf(队列为空无法出队\n); return (dataType)-1; } linkqueue* temp; temp pos-front-next; pos-front-next temp-next; dataType num temp-text.data; if(pos-front-next NULL) {pos-rear pos-front;} free(temp); return num;
}
三、头文件 #ifndef __LINKQUEUE_H__#define __LINKQUEUE_H__typedef int dataType;union msg{dataType data;int len;};typedef struct node{union msg text;struct node* next;}linkqueue;typedef struct{linkqueue* front;linkqueue* rear;}linkpos;linkpos* create_linkqueue();void insertENd_linkqueue(linkpos*pos,dataType num);dataType output_linkqueue(linkpos*pos);void show_linkqueue(linkpos*pos); #endif
四、运行结果