数据结构------顺序队列《改进前》《改进后》

//改进前

#include <stdio.h>

//入队
int enQueue(int *a,int rear,int data)
{
    a[rear]=data;
    rear++;
    return rear;
}

void deQueue(int* a,int front,int rear)
{
    //如果 front==rear,表示队列为空
    while(front!=rear)
    {
        printf("出队元素:%d\n",a[front]);
        front++;
    }
}
int main()
{
    int a[100];
    int front;
    int rear;
    //设置队头指针和队尾指针,当队列中没有元素时,队头和队尾指向同一块地址
    front=rear=0;
    //入队
    rear=enQueue(a, rear, 1);
    rear=enQueue(a, rear, 2);
    rear=enQueue(a, rear, 3);
    rear=enQueue(a, rear, 4);

    //出队
    deQueue(a,front,rear);
    return 0;
}
root@book-virtual-machine:/mnt/hgfs/lua/C++# g++  -std=c++11 salman_0119.cpp -o salman_0119
root@book-virtual-machine:/mnt/hgfs/lua/C++# ./salman_0119
出队元素:1
出队元素:2
出队元素:3
出队元素:4
root@book-virtual-machine:/mnt/hgfs/lua/C++#

#include <stdio.h>
#define max 7   //表示顺序表申请的空间大小

int enQueue(int* a,int front,int rear,int data)
{
    //添加判断语句,如果 rear 超过 max,则直接将其从 a[0]重新开始存储,如果 rear+1 和 front 重合,则表示数组已满
    if((rear+1)%max==front)
    {
        printf("空间已满");
        return rear;
    }
    a[rear%max]=data;
    rear++;
    return rear;
}
int deQueue(int* a,int front,int rear)
{
    //如果 front==rear,表示队列为空
    if(front==rear%max)
    {
        printf("队列为空");
        return front;
    }
    printf("%d ",a[front]);
    //front 不再直接 +1,而是+1 后同 max 进行比较,如果=max,则直接跳转到 a[0]
    front=(front+1)%max;
    return front;

}
int main()
{
    int a[max];
    int front;
    int rear;
    //设置队头指针和队尾指针,当队列中没有元素时,队头和队尾指向同一块地址
    front=rear=0;
    //入队
    rear=enQueue(a,front,rear, 1);
    rear=enQueue(a,front,rear, 2);
    rear=enQueue(a,front,rear, 3);
    rear=enQueue(a,front,rear, 4);
    //出队
    front=deQueue(a, front, rear);
    //再入队
    rear=enQueue(a,front,rear, 5);
    //再出队
    front=deQueue(a, front, rear);
    //再入队
    rear=enQueue(a,front,rear, 6);

    //再出队
    front=deQueue(a, front, rear);
    front=deQueue(a, front, rear);
    front=deQueue(a, front, rear);
    front=deQueue(a, front, rear);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/aa804738534/article/details/113750529