数据结构之队列(C语言)
来源:互联网 发布:mac日历邀请怎么删除 编辑:程序博客网 时间:2024/05/16 10:03
#include<stdio.h>
#include<malloc.h>
typedef struct node{
int data;
struct node *next;
}NODE;
typedef struct qnode{
NODE *front;
NODE *rear;
}QNODE;
void InitQueue(QNODE *Q){
NODE *p;
p=(NODE *)malloc(sizeof(NODE));
Q->front=p;
Q->front->next=NULL;
Q->rear=Q->front;
printf("The init is complete!");
}
void *QueuePush(QNODE *Q){
NODE *p; p=(NODE *)malloc(sizeof(NODE));
printf("Please input a number :");
scanf("%d",&p->data);
p->next=NULL;
Q->rear->next=p;
Q->rear=p;
printf("The %d has been pushed into the Queue!",p->data);
return 0;
}
void *QueuePop(QNODE *Q){
NODE *p;
if(Q->front->next==NULL) return 0;
p=Q->front->next;
Q->front->next=p->next;
if(Q->rear==p) Q->rear=Q->front;
printf("The %d has been pop from the queue! /n",p->data);
free(p);
return 0;
}
void *PrintQueue(QNODE *Q){
NODE *p;
p=Q->front->next;
while(p!=NULL){
printf("%5d",p->data);
p=p->next;}
return 0;
}
void main(){
QNODE *T;
int i=0;
printf("1.InitQueue 2.QueuePush 3.QueuePop 4.PrintQueue 5.Quit /n");
while(i!=5){
printf("Please choose the gongneng:");
scanf("%d",&i);
printf("/n");
switch(i){
case 1: InitQueue(T); printf("/n"); break;
case 2: QueuePush(T); printf("/n"); break;
case 3: QueuePop(T); printf("/n"); break;
case 4: printf("The queue's numbers are:");
PrintQueue(T); printf("/n"); break;
case 5: printf("/n"); break;}
}
}
- 数据结构之队列(C语言)
- 数据结构之 队列(C语言实现)
- C语言数据结构之-队列
- C语言数据结构之队列
- 数据结构之顺序队列的操作(C语言)
- 数据结构之顺序队列的操作(C语言)
- 数据结构之队列的实现(c语言)
- C语言数据结构之循环队列
- 数据结构C语言实现之循环队列
- 数据结构C语言实现之链队列
- 数据结构(C语言描述)读书笔记之队列
- 数据结构C语言实现之循环队列
- 数据结构之---C语言实现链式队列
- 数据结构之---C语言实现循环队列
- 数据结构之队列(C语言实现)
- C语言数据结构之队列篇
- 数据结构---C语言之队列的链式表示和实现(链队列)
- 数据结构---C语言之队列的顺序表示和实现(循环队列)
- 什么是W3C标准
- 出现蓝屏后的九个常规解决方案
- 中秋大暴动纪实
- Qt的事件处理机制分析
- javaScript中下拉菜单操作
- 数据结构之队列(C语言)
- WINDOWS 蓝屏错误代码说明一览表
- 国庆is coming...
- javascript小技巧
- Wii和我的游戏心情
- Win2000蓝屏STOP故障现象解析
- [我的ASP.net学习历程]编码转换http://www.21tx.com/dev/2004/09/21/12011.html
- 游戏外挂设计技术探讨
- Web2.0的商业模式:网络社区与嵌入式营销