zoukankan      html  css  js  c++  java
  • 数据结构之队列c代码实现

    一学期的数据结构,总不能毫无收获吧,因为书上的很多代码并不能实现,我一个编程小白可怎么过呢,难得假期有时间,于是我寻求度娘,从四面八方找了些可以编译通过的源码,这一次是队列,后面我还会逐渐补充,如果有什么差错,欢迎大佬们来留言啊。

    交一下代码:

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #define QUEEN_SIZE 50
     4 
     5 typedef struct SeqQueue
     6 {
     7     int data[QUEEN_SIZE];
     8     int front;
     9     int rear;
    10 }Queue;
    11 
    12 Queue *initQueue()
    13 {
    14     Queue *q=(Queue*)malloc(sizeof(Queue));
    15     if(q==NULL)
    16     {
    17         printf("malloc failed!");
    18         exit(-1);
    19 
    20     }
    21     q->front = 0;
    22     q->rear = 0;
    23     return q;
    24 }
    25 int IsFull(Queue *q)
    26 {
    27     return ((q->rear+1)%QUEEN_SIZE == q->front);
    28 }
    29 int IsEmpty(Queue *q)
    30 {
    31     return (q->rear == q->front);
    32 }
    33 void EnQueue(Queue *q,int n)
    34 {
    35     if(IsFull(q))
    36     {
    37         return;
    38     }
    39     q->data[q->rear] = n;
    40     q->rear = (q->rear+1)%QUEEN_SIZE;
    41 }
    42 int Dequeue(Queue *q)
    43 {
    44    if(IsEmpty(q))
    45         return 0;
    46     int temp=q->data[q->front];
    47     q->front = (q->front+1)%QUEEN_SIZE;
    48     return temp;
    49 }
    50 int main()
    51 {
    52     Queue *q = initQueue();
    53     int i;
    54     for(i=0;i<10;i++)
    55     {
    56         EnQueue(q,i);
    57     }
    58     while(!IsEmpty(q))
    59     {
    60         int data=Dequeue(q);
    61         if(IsEmpty(q))
    62             printf("%d",data);
    63         else
    64         printf("%d-> ",data);
    65     }
    66 }

    队列嘛,先进先出,添加元素时,先给rear赋值,然后移动向后rear,减少元素时,也是先赋值,再移动front指针,队列为空时rear==front,队列满时(rear+1)%MAXSIZE== front。

    好了,附一张运行结果。

  • 相关阅读:
    mysql常用方法案例
    springboot整合mybatis
    mysql自定义函数统计订单状态:GET_ORDER_STATUS()
    mysql计算时间差-本例为计算分钟差然后/60计算小时保留一位小数,由于直接得小时只会取整
    mysql字段值为null时排序问题
    对象与内存(一)
    java基础提升(关于数组)
    项目的部署
    myeclipse中ssm的搭建
    ui自动化笔记 selenium_webdriver,ui自动化框架(web)
  • 原文地址:https://www.cnblogs.com/2206411193qzb/p/7291301.html
Copyright © 2011-2022 走看看