zoukankan      html  css  js  c++  java
  • 【数据结构第二周】队列知识点整理

    队列(Queue):具有一定操作约束的线性表

    插入和删除操作:只能在一端插入,而在另一端删除

    先进先出

    1、队列的顺序存储实现

    队列的顺序存储结构通常由一个一维数组和一个记录队列头元素位置的变量front以及

    一个记录队列尾元素位置的变量rear组成

    (1)初始化

    #define MaxSize <储存数据元素的最大个数> 
    typedef struct {
    	ElementType Data[ MaxSize ]; 
    	int rear;
        int front;
    } Queue;

    (2)入队列

    void AddQ( Queue *PtrQ, ElementType item) 
    {
    	if ( (PtrQ->rear+1) % MaxSize == PtrQ->front ) 
    	{ 
    		printf(“队列满”);
    		return;
    	}
    	PtrQ->rear = (PtrQ->rear+1)% MaxSize; 
    	PtrQ->Data[PtrQ->rear] = item;
    }
    

    Front和rear指针的移动采用”加一取余“法,体现了顺序存储的”循环使用“。

    (3)出队列

    ElementType DeleteQ ( Queue *PtrQ ) 
    {
    	if ( PtrQ->front == PtrQ->rear ) 
    	{ 
    		printf(“队列空”);
    		return ERROR;
    	} else 
    	{
    		PtrQ->front = (PtrQ->front+1)% MaxSize; 
    		return PtrQ->Data[PtrQ->front];
    	} 
    }
    
  • 相关阅读:
    数据库字段包含反斜杠的查询处理
    sql中的日期时间处理
    查询时间的测试
    group by 和 聚合函数的使用
    比较版本号
    sql IIF函数的应用
    win10系统杀毒功能
    php性能的问题
    linux 下ab压力测试
    datatables的学习总结
  • 原文地址:https://www.cnblogs.com/acmsummer/p/4214026.html
Copyright © 2011-2022 走看看