数据结构10分钟入门--队列

本文介绍了队列的基本概念,它是一种先进先出(FIFO)的线性存储结构,通过链表实现。文章详细讲解了队列的结构体定义、创建、入队、出队和释放队列的步骤,并提供了相关函数清单。同时,文章提供了一个简单的源码示例供读者学习和测试。
摘要由CSDN通过智能技术生成

一、队列是什么

队列是一种先进先出(First In First Out, FIFO)的线性存储结构,限定只能在表的一端(队尾)进行插入元素,表的另一端(队头)进行删除元素,数据元素进队列的过程称为入队,出队列的过程称为出队。

队列实现方式有数组和链表两种方式,本文介绍基于链表的实现方式,可以将队列理解为特殊的链表,只能在链表的头尾两端进行操作。在这里插入图片描述

二、队列的结构体定义

typedef struct node {
    int data;     /**数据域*/
    struct node *next;    /**指向下一个节点*/
}queue_node;

typedef struct head {
    int len;    /**队列长度*/
    queue_node *head;    /**指向队头*/
    queue_node *tail;    /**指向队尾*/
}queue_head;

1、新定义了一个结构体queue_head用来表示队列头,两个指针分别指向队列的两端,len表示队列长度;

2、在单链表与栈中,由于无需双端操作,头指针的结构体定义与节点一致,所以复用节点的结构体,没有再重新定义。

三、函数清单

函数 描述 算法复杂度
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值