数据结构之队列(C语言)

原创 2007年09月26日 10:14:00

#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语言系列之 队列与特殊链表

-
  • 1970年01月01日 08:00

数据结构之队列(C语言实现)

数据结构之队列(C语言实现) 在这里将介绍三种队列:数组实现的循环队列、链表队列和具有实用价值的优先级队列。本次只介绍前两种,优先级队列在下一次博客中再单独说明。...
  • kang___xi
  • kang___xi
  • 2016-12-01 19:24:23
  • 727

数据结构之 队列(C语言实现)

数据结构之 队列(C语言实现)1. 队列ADT1.1 介绍队列(queue)属于表,使用队列时插入在一端进行而删除在另一端进行。 1.2 队列模型队列的基本操作是Enqueue(入队),它是在表的末端...
  • men_wen
  • men_wen
  • 2017-03-14 09:51:58
  • 519

数据结构-顺序队列(C语言)

队列:插入数据只在队尾进行,删除数据只在队头进行。 顺序队列操作会出现 假溢出(tail指向队列最后,进行入队操作时,即使前面有空位置也显示队列已满)...
  • Yeziquanquan
  • Yeziquanquan
  • 2016-09-09 00:10:45
  • 2277

C语言数据结构-顺序队列

顺序队列顺序队列与顺序表相似,只不过其具有队列的运算规则。数据只能从队尾进,对头出,为先进先出方式。 分别用两个数来表示队头front和队尾rear的位置,其只能向前增加,不能退后,这样容易溢出且浪...
  • ahafg
  • ahafg
  • 2015-10-11 11:59:37
  • 1771

数据结构之队列(C实现)

一、队列是什么     队列是一种可以实现“先进先出”的存储结构。其实,说简单点,队列就是排队,跟我们日常生活中到银行取钱排队,排队打饭在道理上是一样的。     队列通常可以分为两种类型...
  • l494926429
  • l494926429
  • 2016-08-14 15:34:29
  • 4030

数据结构之---C语言实现链式队列

//链式队列的存储 //杨鑫 #include #include typedef int QElemType; //定义节点 typedef struct QNode { QElemType...
  • u012965373
  • u012965373
  • 2015-05-19 20:54:57
  • 2794

c语言数据结构实现-数组队列/环形队列

队列的数据结构其实非常简单,实现方式主要为动态的链式结构或者为静态的数组结构,本文介绍一种静态的数组结构 使用数组队列类似于牺牲空间换时间的方法,实现简单。但要求用户数据必须定长,并且会出现队列满的情...
  • stayneckwind2
  • stayneckwind2
  • 2016-12-15 22:50:23
  • 1938

数据结构-队列-顺序表实现-C语言

队列定义对于一个存取的n个内容,最先进入的最先出去(First In,First Out:FIFO),即称为队列. 比如,食堂排队,最先去的,最先得到饭菜; 关键步骤:入队出队代码实现//循环队列...
  • cyzyfs
  • cyzyfs
  • 2017-10-15 16:43:49
  • 284

<C/C++数据结构>队列(C++模板实现)

一,队列的基本概念 队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。...
  • EbowTang
  • EbowTang
  • 2015-02-01 23:21:34
  • 1428
收藏助手
不良信息举报
您举报文章:数据结构之队列(C语言)
举报原因:
原因补充:

(最多只允许输入30个字)