数据结构与算法——构造队列(顺序队列与循环队列)代码及演示结果

本文介绍了如何构造顺序队列和双向循环队列,包括定义结构、创建空队列、数据入队、出队、置空、销毁以及获取队列长度等功能,并通过代码演示了各个函数的使用,最后展示了逻辑分析图。
摘要由CSDN通过智能技术生成

 存储结构:  对数据 以及 数据关系的 存储 
            连续存储:  将所有数据放到一起  数组 
            离散存储:  数据可能分布在内存的 不同位置 

 对数的操作(算法): 
        不是简单的数值操作 而是一些 逻辑操作 
        增: 增加数据 
        删: 删除数据 
        改: 修改数据 
        查: 查找或遍历数据  

一.构造顺序队列

1.定义结构 定义队列 创建空队列

#include <stdio.h>
#include <stdlib.h>
//定义结构
typedef int  Data_t;

//定义循环队列
typedef struct queue_t
{
	Data_t *data; // 数组容器 堆区分配
	int max_len;  // 容器大小
	int push_i;   // 入口下标 
	int pull_i;   // 出口下标
}queue_t;

//创建空队列 初始化队列
int init_queue(queue_t *head, int size)
{
	if(head == NULL || size == 0) return -1;
	size += 1; // 实际存储空间 比真实需要的空间大一个
	head->data = (Data_t *)malloc(size * sizeof(Data_t));
	if(head->data == NULL) return -2;
	head->max_len = size;
	head->push_i = 0;
	head->pull_i = 0;
	return 0;
}

2.数据入队列 数据出队列

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值